Задать вопрос
Ответы пользователя по тегу Excel
  • Как создать таблицу из двух столбцов с критериями?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Принципиально - например, вот так:
    66a8a9f013465796321206.png
    Границы и константы задать вручную (либо получить формулой).

    Конечно, с одном столбце надо использовать остаток, а в другом - целочисленное деление, но это уже для самостоятельной работы...
    Ответ написан
    Комментировать
  • Заполнение столбца с данными по предыдущему столбцу excel/notepad/emeditor?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Только и исключительно VBA-макросом.
    Например, так:
    Public Sub process_data(index_range As Range, values_range As Range)
    Dim values()
    Dim i As Integer
    Dim coll As New Collection
    Dim onecell As Range
    values = values_range.Value
    For i = LBound(values, 1) To UBound(values, 1)
        coll.Add Item:=values(i, 1), Key:=Left(values(i, 1), 1)
    Next
    For Each onecell In index_range
        onecell.Offset(0, 1).Value = coll(onecell.Value)
    Next
    End Sub
    
    Sub test()
    Call process_data(ThisWorkbook.Sheets(1).Range("A1:A26"), ThisWorkbook.Sheets(1).Range("B1:B3"))
    End Sub
    Ответ написан
    Комментировать
  • Как сделать проверку на три условия?

    @Akina
    Сетевой и системный админ, SQL-программист.
    =ВЫБОР(2 * ЕПУСТО(A1) +  (A1 <> 0) + 1;"false";"publish";"")
    Ответ написан
    Комментировать
  • Нужна формула: узнать для приобретения скольких товаров хватит имеющейся суммы?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вот не вижу проблем.
    1. Есть количество товаров, приобретённых юзером. То есть, грубо говоря, известно, что пропустить и откуда считать.
    2. Если надо набрать указанную сумму, то по имеющимся товарам нужна сумма с накоплением. А чтобы не учитывать уже купленное - домножать на признак "ещё не куплено", являющийся результатом сравнения текущего номера товара и количества приобретённых товаров.
    3. Отдельно вспомним, что стоимость - штука сугубо положительная. А после домножения на признак - неотрицательная. И, значит, сумма с накоплением строго неубывающая на начальных нулях, а дальше так и вообще строго возрастающая. Иными словами - сортированная.
    4. Осталось вовремя остановиться. Но именно так работает ВПР()/ГПР() на сортированном списке при поиске ближайшего/неточного значения.
    Ответ написан
    5 комментариев
  • Есть ли в excel формула вставки строк?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Функция, встроенная или определённая пользователем, при использовании в формуле ячейки НЕ МОЖЕТ ИЗМЕНЯТЬ ЗНАЧЕНИЯ ЯЧЕЕК. В принципе не может. А любая такая попытка в определённой пользователем функции немедленно приводит к ошибке и аварийному завершению работы функции.
    Ответ написан
    Комментировать
  • Макросов VBA Excel?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Адреса диапазонов в константу, в коде парсим и используем.
    Const Addresses As String = "E7:E14,F7:F14,G7:G14,G21:G108,H7:H14"
    
    Sub ...
    ...
    For Each RangeAddress In Split(Addresses, ",")
        Workbooks("srcX.xlsx").Sheets("SheetY").Range(RangeAddress).Copy Workbooks("dst.xlsx").Sheets("SheetZ").Range(RangeAddress)    
    Next


    Адреса диапазонов назначения тоже могут быть собраны в константу. А для обработки нескольких файлов дополнительно считать смещение и задействовать метод Range.Offset.
    Ответ написан
    1 комментарий
  • В какой базе данных лучше всего хранить данные для дашбордов?

    @Akina
    Сетевой и системный админ, SQL-программист.
    а что делать с реляционной бд

    А ничего. НЕ хранить ежедневные итоги. Только приходы и уходы. И самая первая запись - только приход (начальный баланс), если начинаем не с пустой кассы. А сумму с накоплением считаем непосредственно в запросе, в тот момент, когда потребовался отчёт.

    Ну или как вариант - хранить в отдельной таблице базовую сумму (начальный баланс периода), скажем, на начало месяца или там года, и от неё уже начинать считать.
    Ответ написан
    1 комментарий
  • Как из word перенести таблицу в Excel с сохранением стилей и форматом?

    @Akina
    Сетевой и системный админ, SQL-программист.
    чтобы ничего не двигать не редактировать

    Нет, нельзя. Ширина колонки и высота строки - это именно атрибут колонки/строки. А не прямоугольного диапазона ячеек, в который выполнится вставка. Так что двигать - придётся.

    Всё остальное (шрифты, цвета, заливка, выравнивание и пр.) должно копироваться нормально. При условии, что задано явно, а не используется дефолтная настройка. И при условии, что диапазон назначения заранее настроен на тип данных текстовый. Иначе преобразований некоторых значений в даты, выравнивание чисел по правому краю и прочих прелестей не избежать...

    PS. Можно эту таблицу вставлять не как значения ячеек, а как объект Документ MS Word. Вот тогда точно ничего не уплывёт.
    Ответ написан
    4 комментария
  • Как подставить url на весь столбик?

    @Akina
    Сетевой и системный админ, SQL-программист.
    • Выделить диапазон с числами.
    • Alt-F11
    • Ctrl-G
    • ввести
      for each onecell in selection:onecell.value="https://d21skl.com/"&onecell.value:next

    • Enter
    • Alt-F4
    • Alt-F4

    Ответ написан
    Комментировать
  • Как сравнить данные в нескольких excel файлах?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Скопируйте данные из 2-4 файлов на листы 2-4 книги 1 (или сразу листы целиком). Можно и не копировать, но так проще, не надо держать открытыми 4 книги, да и финальная конструкция получается переносимой.
    Используя ВПР(), в дополнительные колонки на листе 1 скопируйте данные с листов 2-4.
    Окончательно в дополнительных колонках на листе 1 с помощью ЕСЛИ + ЕПУСТО/ЕНД соберите из 4 значений одно финальное для каждого атрибута.
    Замените формулы на значения.
    Удалите промежуточные колонки.
    Всё.

    Пример для 4 книг, без копирования. Приоритет - 1,2,3,4.
    64421a32e9e09520530134.png
    Ответ написан
    Комментировать
  • Какую роль выполняет команда Call в языке VBA?

    @Akina
    Сетевой и системный админ, SQL-программист.
    При использовании оператора Call с процедурой параметры вызываемой процедуры оборачиваются скобками. Если оператор опускаем, то опускаем и скобки.

    Call mysub(param_1, param_2) ' правильно
    mysub param_1, param_2       ' правильно
    mysub(param_1, param_2)      ' ошибка синтаксиса


    Оператор Call позволяет вызвать на исполнение не только процедуру, но и функцию - для выполнения заложенной в неё логики,- и при этом проигнорировать её результат. В случае функции параметры в любом случае обрамляются скобками.

    output = myfunc(param_1, param_2) ' правильно
    Call myfunc(param_1, param_2)     ' правильно
    Call myfunc param_1, param_2      ' ошибка синтаксиса
    myfunc(param_1, param_2)          ' ошибка синтаксиса
    Ответ написан
    Комментировать
  • Какое регулярное выражение использовать, что бы достать из текста все цифры?

    @Akina
    Сетевой и системный админ, SQL-программист.
    \S*\d\S*
    https://regex101.com/r/bzUbiN/1

    нужно из неё вытащить, то что выделено жирным

    Показанный результат не соответствует условию. С какого перепугу в последнем токене отрезан начальный символ "№"? а в третьем и четвёртом - финальное "г."?
    Ответ написан
    Комментировать
  • Как сделать поиск в ячейке по знаку " с помощью VBA?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Для поиска двойной кавычки используется строковый литерал из четырёх двойных кавычек
    Instr(start, variable, """")
    Первая и последняя обрамляют литерал, вторая и третья образуют удвоенную двойную кавычку, которая интерпретируется как квотированная/экранированная.

    Есть и более простой способ.
    Instr(start, variable, Chr(34))

    -=о=--=о=--=о=--=о=--=о=--=о=--=о=-

    У меня в ячейки есть текст:
    ДООП "Лабаратория Хлеба" естественно-научной направленности

    Надо что бы она в соседнюю ячейку написал:
    ДООП "Лабаратория Хлеба"

    Если ты точно знаешь, что значение содержит не менее 2 двойных кавычек, и нужно отделить именно до второй включительно, можно так:
    Function get2dquotes(source As String) As String
        Dim tmp() As String
        tmp = Split(source, Chr(34))
        get2dquotes = tmp(0) & Chr(34) & tmp(1) & Chr(34)
    End Function

    И соответственно потом B1=get2dquotes(A1).
    Ответ написан
    1 комментарий
  • Насчет экспорта таблицы MySQL в Excel средствами PHP?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Выполняем SELECT .. INTO OUTFILE, полученный CSV прекрасно читается в Excel. Т.е. PHP выполняет указанный запрос, а потом, если надо, организует перемещение полученного CSV в нужное место.
    Ответ написан
  • Как скопировать открытый файл vba скриптом?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Вот нафига было удалять предыдущую версию вопроса?

    Ладно, повторю. У FileSystemObject нет метода Copy, он есть у объектов Folder и File. Следовательно,

    Set File = fso.GetFile(ThisWorkbook.Path & "\doc.docm")
    Set File = fso File.Copy("%Temp%\d6c.docm")

    PS. Что такое "открытый файл", где, кем и вообще почему он открытый - так и не понял.
    Ответ написан
  • Сбор сведений в общую Excel-таблицу от нескольких работников без гугл-форм?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Начните с формализации данных. Хотя бы введите единообразие наименований (наименование должно выбираться из списка, а не вводиться в свободной форме, либо должна заполняться форма со всеми возможными наименованиями) и формата представления данных. Это задача 1.
    Задача 2 - решить, в каком виде будет заполняться ежедневная форма. Веб-форма тут в общем вполне подойдёт. На гугле свет клином не сошёлся - есть те же яндекс-документы, например...
    Задача 3 - передача готовой формы. Тут я бы рекомендовал выгрузку в локальный CSV и отправку по электронной почте. Это контролируемый и протоколируемый канал, бесполезно говорить, что письмо было отправлено вовремя, если его нет в отправленных или если дата отправки - безнадёжно просроченная.
    Задача 4 - загрузка полученных данных в единое хранилище. Тут уже можно думать о приличной СУБД. Ну а её штатных клиентских средств для загрузки - за глаза.
    Задача 5 - аналитика. Имея данные в БД, получать аналитику в любых формах и разрезах - не проблема.
    Ну и задача 6 - формирование красивых выходных документов с результатами анализа. Тоже не сказать что проблема.
    Ответ написан
    2 комментария
  • Нужно добавить текст к уже имеющемуся в ячейках Excel. Какую формулу использовать?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Никакую.
    Формула не может изменить другую ячейку. Формула не может именно изменить себя - только посчитать новое значение.
    Это делается либо формулой в отдельном столбце с последующей заменой исходного столбца на рассчитанные значения, либо процедурой на VBA.
    Ответ написан
    1 комментарий
  • Преобразование строк в столбцы?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Расписываю по шагам.

    1. В ячейку B1 вставить формулу =A2. В ячейку С1 вставить формулу =A3. И так далее до E1=A5.
    2. Выделить ячейки B1-E1.
    3. Выполнить двойной щелчок по маленькому кубику в нижнем правом углу выделения. Записи размножатся вниз.
    4. Не сбрасывая выделения, нажать "Копировать".
    5. Не сбрасывая выделения, нажать "Специальная вставка - значения".
    6. Выделить столбец A. Выполнить Сортировка от А до Я. Согласиться на авторасширение диапазона.
    7. Выделить и удалить все строки, которые НЕ начинаются с даты.

    Всё.

    Если надо делать регулярно - записать макрос. Строки для удаления тогда найти поиском (например, по слову "Продажа").
    Ответ написан
  • Как сделать модуль VBA по умолчанию при создании книги Excel?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Есть минимум два варианта.
    Первый - предпочтительный, но ссылку на него уже дал datka.
    Второй - откорректировать шаблон по умолчанию. См. тут
    Ответ написан
    Комментировать