Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
как интегрировать в гугл таблицу форму с вставкой файла без авторизации пользователя.
 
В общем. Сам спросил - сам отвечаю.
Можно.))
тут вот если интересно:
https://stackoverflow.com/questions/20769149/form-and-file-upload-with-htmlservice-and-app-script-not-working?rq=1
правда нужно еще навыки js
как интегрировать в гугл таблицу форму с вставкой файла без авторизации пользователя.
 
Всем привет.
нужно создать анонимный опрос, с возможностью прикрепления файлов.
Решили что на гугл формах можно. Но столкнулись с проблемой, что форма со вставкой файлов, не дает возможности заполнять себя неавторизованному пользователю.
Нарыл в интернете такое видео по созданию формы из google sheets:
https://www.youtube.com/watch?v=PsIuSwSj3CM
Все бы хорошо, но там не показана вставка файлов, и нужна ли авторизация.
Собственно вопрос.
Можно ли как-то разрешить заполнение неавторизованному пользователю.
и если нельзя, то может подскажите возможные пути создания опроса
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
AAF - это к новому году :).

Давно его использую, не раз он мне помогал даже на количестве строк 10млн+.
Вариант сортировки по нескольким столбцам также когда-то делал, для одного проекта... но уже не найду.
так что и Вам спасибо.

Все равно встроенную сортировку, к сожалению пока  не нашел как обогнать.
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
Лет 5-ь назад искал сортировщик - тогда перебрал кучу вариантов. "Пузырек" отпал сразу.
нашел для себя интересный вариант. Тут такого вроде пока не было:

Код
Sub aQSort2(ByRef a() As Variant, ByVal N As Integer, ByRef low As Long, ByRef high As Long)
Dim i As Long, j As Long, k As Long
Dim m As Variant, wsp As Variant
i = low
j = high
m = a(Round((i + j) \ 2), N)
Do Until i > j
    Do While a(i, N) < m
        i = i + 1
    Loop
    Do While a(j, N) > m
        j = j - 1
    Loop
    If (i <= j) Then
        For k = LBound(a, 2) To UBound(a, 2)
        wsp = a(i, k)
        a(i, k) = a(j, k)
        a(j, k) = wsp
        Next k
        i = i + 1
        j = j - 1
    End If
Loop
If (low < j) Then aQSort2 a(), N, low, j
If (i < high) Then aQSort2 a(), N, i, high
End Sub

Где нашел уже не упомню докинул его в файлы от oldy7 и AAF. В приложении.

Судя по всему, (если я все верно  вставил)  - работает хорошо :) .:

Скрытый текст


PS\
Перевложил один файл в архив  по указанию модератора.
Изменено: SLAVICK - 03.01.2018 18:23:03
Автоматизации фунцкии ВПР, Нужна помощь опытных пользователей ВПР и макросов
 
а зачем макрос  - обычные формулы вполне справляются :D
Так + формат ячейки "Y";;"N":
Код
=--(СУММ(I2:J2)>0) 
Или просто так:
Код
=ЕСЛИ((СУММ(I9:J9)>0);"Y";"N")
Конфигурация ПК для быстрой работы
 
Цитата
The_Prist написал:
однако такой объем данных можно смело хранить в БД Access и строить из этих данных сводную....
НЕ  Access  не тянет итоговую базу она больше 2-х гиг. У меня база продаж создана на локальном компе в sql сервере. а в файле excel  создано подключение на эту базу в модели данных. (т.е. из базы продаж нужные столбцы).
этот файл я могу открыть и дома, без родной базы sql  и делать отчеты в нужных разрезах :D
Что интересно база SQL занимает почти 3и гига а файл excel в модели данных которого импортирована эта база - меньше гига. + еще справочники клиентов, менеджеров, номенклатура - все вместе 1гиг.
Цитата
Johny написал:
но только не Access, ибо тормоз
100% - пройденный вариант.
Изменено: SLAVICK - 11.12.2015 21:33:17
Конфигурация ПК для быстрой работы
 
Цитата
TheBestOfTheBest написал: Можно в файл положить картинку размеров  гигабайт
Хотел бы я увидеть такую картинку  8-0
У меня там большая модель данных. База продаж больше 23 млн строк, справочники .... Формул на листах почти нет - все отчеты делаю сводными таблицами :D
Наперед отвечу - зачем база в файле - часто нужно сделать отчеты, где нету подключения к базе SQL.
Конфигурация ПК для быстрой работы
 
Цитата
Ёк-Мок написал: файлы Excel по 20-40 мб - вот где трабл. И улучшать нужно файлы
Вы не поверите - но у меня итоговый файл весит больше гига - и ничего шуршит потихоньку.
Тут вопрос скорее в том что задействовано много формул. Если обновление происходит постоянно - есть смысл перевести расчеты в макросы(или запросы). И не открывать сразу все файлы - поручите поочередное открытие и обновление программе(макросу). Ну и данные сводить в SQL- базу, как написал TheBestOfTheBest.
На работе у меня тоже 7-ка 64. Оперативы 6гб.  
Изменено: SLAVICK - 11.12.2015 17:04:37
Хитрое объединение таблиц
 
В общем на сколько я понял нужно так:
Код
Sub d()
    Dim a(), b(), c(), ax(), ay(), az()
    Dim full(), i&, ii&, iii&, t&
    Dim x&, y&, z&
    
    'задаем массивы
    With Sheets("Источник")
        i = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Row
        x = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Column
        a = Range(.Cells(2, 1), .Cells(i, x)).Value
        ax = Range(.Cells(1, 1), .Cells(2, x)).Value
    End With
    With Sheets("Источник 2")
        i = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Row
        y = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Column
        b = Range(.Cells(2, 1), .Cells(i, x)).Value
        ay = Range(.Cells(1, 1), .Cells(2, y)).Value
    End With
    With Sheets("Источник 3")
        i = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Row
        z = .Cells.Find("*", .[a1], xlFormulas, 1, 2, 2).Column
        c = Range(.Cells(2, 1), .Cells(i, z)).Value
        az = Range(.Cells(1, 1), .Cells(2, z)).Value
    End With
    ReDim full(1 To UBound(a) * UBound(b) * UBound(c), 1 To x + y + z)
    For i = 1 To UBound(a)
        For ii = 1 To UBound(b)
            For iii = 1 To UBound(c)
            t = t + 1
                Count = 1
                'заполняем элементы массива
                For g = 1 To x: full(t, Count) = a(i, g): Count = Count + 1: Next g
                For g = 1 To y: full(t, Count) = b(ii, g): Count = Count + 1: Next g
                For g = 1 To z: full(t, Count) = c(iii, g): Count = Count + 1: Next g
            Next iii, ii, i
            
    Sheets.Add
    With Sheets(1)
        .Activate
        .Cells(1, 1).Resize(UBound(ax), UBound(ax, 2)) = ax
        .Cells(1, 1 + x).Resize(UBound(ay), UBound(ay, 2)) = ay
        .Cells(1, 1 + x + y).Resize(UBound(az), UBound(az, 2)) = az
        .Cells(2, 1).Resize(UBound(full), UBound(full, 2)) = full
    End With
End Sub
Изменено: SLAVICK - 10.12.2015 22:17:28
Хитрое объединение таблиц
 
и зачем у Вас
Код
ReDim full(1 To UBound(a) * UBound(b) * UBound(c), 1 To 10)
если количество столбцов зависит от  x y z  - то лучше  сделать:
Код
ReDim full(1 To UBound(a) * UBound(b) * UBound(c), 1 To x + y + z)
Хитрое объединение таблиц
 
Цитата
volfram написал:
Как подменять [a3:c7] на нужные мне переменные,
Мне так нравится:
Код
With Sheets("Источник"): a = Range(.Cells(1, 1), .Cells(7, x)).Value: End With
Не заметил The_Prist практически так же написал :)
Изменено: SLAVICK - 10.12.2015 21:46:42
Поиск похожей цифры на листе/ в книге
 
Вводите искомое число в зеленую ячейку  :)
Добавил УФ для выделения найденной ячейки.
Изменено: SLAVICK - 10.12.2015 10:10:33
Поиск похожей цифры на листе/ в книге
 
Цитата
Nemtsev-A написал:
Однако требуется быстро найти данное число. Поможете?)
Пример нам вместо Вас придумывать?
Можно макросом, можно формулой попробовать ...  
Редактирование ячейки по маске (добавление символов)
 
Либо формат ячейки: "0-000-000-00-00" НЕ заментил что нужно именно текст, тогда:
формула:
Код
=ТЕКСТ(B3;"0-000-000-00-00")
Изменено: SLAVICK - 09.12.2015 10:43:38
Заполнение пустых ячеек данными из верхних с помощью макроса
 
Цитата
justirus написал:
Это не универсальный подход, сработает только если сверху одна пустая ячейка.
Да ну :D
А чтобы работало даже с 1-й строки без ошибок- можно так:
Код
=ЕСЛИ(B1="";СМЕЩ(E1;-1;);B1) 
 Ran
Тогда уже так интереснее:
Код
Sub РРР()
    Dim arr, i&, ii&
    arr = Selection.Value
    For i = 2 To UBound(arr)
        For ii = 1 To UBound(arr, 2)
        If Len(arr(i, ii)) = 0 Then arr(i, ii) = arr(i - 1, ii)
    Next ii, i
    Selection = arr
End Sub
Изменено: SLAVICK - 08.12.2015 21:00:12
Хитрое объединение таблиц
 
Ну вот сделал на циклах - все просто летает  :)
Код
Sub d()
Dim a(), b(), c(), full(), i&, ii&, iii&, t&
a = [a2:b4].Value
b = [d2:e5].Value
c = [g2:h6].Value
ReDim full(1 To UBound(a) * UBound(b) * UBound(c), 1 To 6)
For i = 1 To UBound(a)
    For ii = 1 To UBound(b)
        For iii = 1 To UBound(c)
        t = t + 1
            full(t, 1) = a(i, 1): full(t, 2) = a(i, 2)
            full(t, 3) = b(ii, 1): full(t, 4) = b(ii, 2)
            full(t, 5) = c(iii, 1): full(t, 6) = c(iii, 2)
        Next iii, ii, i
Sheets.Add
[a1:f1] = Array("Город", "Транслит", "Транспорт", "Транспорт, Eng", "Цвет", "Цвет, англ")
[a2].Resize(UBound(full), 6) = full
End Sub
Заполнение пустых ячеек данными из верхних с помощью макроса
 
Самое простое сделать доп. столбец(ы) и вписать туда формулу:
Код
Если(a2="";f1;a2)
Ну или макрос, или как написал justirus
Удаление дубликатов макросом без помощи фильтра
 
Цитата
Юрий М написал: Никаких Славиков в файле не замечено )
А как же я? :D
Эта тема на нескольких форумах светилась - вот и я влез.
Ну коль влез - то продублирую здесь свое решение:
Код
Sub d()
Dim c As Range, cF As Range, b As Boolean
For Each c In Range("A1").CurrentRegion
    If c.Value = "Маша" Then
        If Not b Then b = True Else If cF Is Nothing Then Set cF = c Else Set cF = Union(c, cF)
    End If
Next
cF.EntireRow.Delete
End Sub
Изменено: SLAVICK - 03.12.2015 14:46:07
Перенести макросы с Windows 8 на 7
 
Цитата
Sanja написал:
Дело не в версии Windows. Макросы не сохраняются в файлах формата *.xlsx, они живут в *.xlsm или в старых *.xls
Скорее всего ТС имеет ввиду личную книгу макросов, которая запускается автоматически  ;)
Перенести макросы с Windows 8 на 7
 
c:\Users\ХХХХ\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL­.xlsb
где ХХХХ - пользователь.

Учтите, что папки - системные, поэтому нужно включить видимость системных файлов и папок.
Изменено: SLAVICK - 16.07.2015 11:15:55
Неактивна группировка в сводной таблице
 
Проще всего добавить вычисляемое поле(или поля) в модель данных.
Например есть поле "дата":
Добавляем поля:
Код
Year([Дата])
Month([Дата])
Или универсальной функцией "FORMAT"
Код
FORMAT([Дата];"YYYY")
FORMAT([Дата];"MMM")
А потом пользуемся этими полями для группировки;)
сводная таблица по сложной структуре, помощь сметчику при закупе оборудования
 
Можно и через формулы - как Вы будете организовывать массив - это уже другой вопрос. Я показал как примерно должен выглядеть итоговый массив - некоторые вычисляемые столбцы (расчет сумм) можно создать сразу в сводной, но обязательно должны быть количества для каждого уровня свои.
Т.е. для шкафа нужно 100 болтов модуль состоит из 8 шкафов - значить в количество запчастей ставим 100, в количество модулей ставим 8 напротив всех комплектующих этого модуля.
При такой структуре можно развернуть сводную и увидеть необходимое количество и модулей и запчастей, а не только запчастей.
сводная таблица по сложной структуре, помощь сметчику при закупе оборудования
 
Нет ничего сложного. :D
Нужно добавить несколько столбцов и "Развернуть" таблицы.
Я добавил еще несколько столбцов, но если правильно изначально ставить суммы (а не умножать потом на коэффициенты), можно обойтись и без них.
Пример с 2-х листов  
Сводная таблица на основе двумерного массива, кэш сводной таблицы на основе двумерного массива
 
C цифрами работает... а с текстом не хочет из за строки :
Код
pRSet.Fields.Append "F" & CStr(k), 5

Нужно задать свойства поля, и длину

Цитата
' Типы данных ADOX, доступные для Excel:
Const adDouble = 5, adDate = 7, adCurrency = 6, adBoolean = 11, adVarWChar = 202, adLongVarWChar = 203
т.е. должно для текста быть что-то вроде:
Код
pRSet.Fields.Append "F" & CStr(k), 203, 20

значит текст длиной 20 символов. Правильно я понимаю?  :D  
т.е. если у нас есть таблица то нужно для каждого поля определить тип данных и прописать его в свойства поля... т.к. если поставить этот формат на числа - сводная не поймет что это число...
Еще раз спасибо Вам. Очень многому научился.  :D
Изменено: SLAVICK - 03.10.2013 02:08:57
Сводная таблица на основе двумерного массива, кэш сводной таблицы на основе двумерного массива
 
Спасибо  :D , попробую...
С этим можно многое сделать :)
Поиск пары в диапазоне
 
Спасибо.
Цитата
Дело в использовании того, что номера кодов можно сделать равными индексам массивов, тогда будет прямой перебор по индексам массивов. Сортировку же можно сделать и в Excel (можно и самому QuickSort написать - не так это сложно, как кажется).
А это можно сделать в excel без выгрузки массива?
В данном случае, скорость 2 мин или 5 мин - для меня не столь существенна, это уже не 5-10 часов :)
А в моем примере не так уж много я поменял  :D  только добавил в запрос группу1 и группу2. Если Вы не сильны, то я и подавно  :)  
Попробую на днях(сейчас напряг)... отпишусь, и за Ваш пост в другой теме тоже спасибо  :D  
С этим можно многое сделать  :)
Изменено: SLAVICK - 02.10.2013 18:37:30
Заміна символу між двома числами
 
Ctrl+ h. Ну или формула подставить.
Сводная таблица на основе двумерного массива, кэш сводной таблицы на основе двумерного массива
 
Спасибо, как запрос передать в PivotCache.Recordset я уже нашел :D, даже нашел как запрос передать в массив, а вот как массив в тот же PivotCache.Recordset :?:
Поиск пары в диапазоне
 
Сортировать массив - долго и проблематично, насколько я знаю... и не уверен, что построчное сравнение массивов будет быстрее я заморачивался  этим, но
Ваш запрос в разы быстрее, я на основе его уже считываю данные в массив и делаю вывод сводной таблицы(без сравнения групп) и в массиве вывожу первые "n" товаров с указанием суммы и количества повторений...при чем сводную строю чтоб узнать количество строк, как по другому не нашел(и приходится запрос выполнять 2 раза)...
немного доработал Ваш код... кажется неправильно считается сумма... может я что-то напутал?
в итоге на листе "Результат" получаю сводную из подключения(a3), данные обработанного массива(f1) и выгрузку отработанного массива(BA1)
смущают одинаковые суммы... они по идее должны быть разными. и как правильно отсортировать так, чтобы
в итоге получалось :
Код1 10р
Код1 9р
Код1 8р...
Поиск пары в диапазоне
 
памяти хватит :D 6гб + ОС*64. а в csv сколько максимум строк?
Страницы: 1 2 3 След.
Наверх