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

Страницы: 1
Power query. Сборка таблиц из разных файлов с разными наименованиями листов.
 
mechanix 85, Михаил Л, Спасибо буду пробовать! :)  
Изменено: Максим - 26.11.2021 09:44:24
Power query. Сборка таблиц из разных файлов с разными наименованиями листов.
 
Доброго дня!
Исходные данные - имеются файлы с одним листом в книге, но наименование листа может быть разным.
Использую в работе прием https://www.planetaexcel.ru/techniques/24/2152/ с шага №3 (функцию не создаю, использую получить данные - из файла - из папки),  но этот прием работает только при одинаковом наименовании листа, который будет в примере преобразования.

Подскажите, как можно написать запрос, изменив [Item="Продажи",Kind="Sheet"] таким образом, чтобы ссылаясь на первый лист книги  (числовой указатель) или как-то подставлять данные через дополнительный столбец =Excel.Workbook([Content]) "Name".

Можно переименовать все листы в книгах, но это не выход из ситуации.
Исходный файл большого объема, приложить не могу.
VBA Функция.Заменить #НД на 0 и выделить ячейки с заменами
 
Цитата
vikttur написал:...тормоза при пересчетах функций будуть разносить нервы в клочки )
Пересчеты не планируются. Один раз рассчитались и превратил в значения и анализируются.
Для моей работы лучше одно действие даже если оно дольше выполняется excel'ем, чем несколько последовательных действий.
У функции есть свои преимущества, не надо рисовать форму ввода.

Дмитрий(The_Prist) Щербаков, Спасибо за ответ! Буду смотреть в сторону макросов.
VBA Функция.Заменить #НД на 0 и выделить ячейки с заменами
 
Msi2102,Для меня критично , чтобы было "0". "" или отрицательные значения не подходят.
Меня интересует, можно как-нибудь прописать два действия (замена на 0 и например закрасить ячейку) в рамках функции.
Изменено: Максим - 04.10.2021 13:11:07
VBA Функция.Заменить #НД на 0 и выделить ячейки с заменами
 
Цитата
vikttur написал:
очему на VBA? Функции листа, вызываемые из VBA, работают медленнее функций, прописанных в формулах. Почему не использовать УФ?Покажите пример.
Вариант максимально упрощен. УФ на большом кол-ве ячеек тормозит.
Цитата
Jack Famous написал:
не было проблемы - сам её создам  
на большом массиве данных - это критично. Искать НД, и потом их преобразовывать

Как можно "подсветить" нули, которые получились в случае замены?
Изменено: Максим - 04.10.2021 12:55:38
VBA Функция.Заменить #НД на 0 и выделить ячейки с заменами
 
Доброго дня!
Написал функцию если в случае возврата "НД", будет замена на "0".
Но теперь надо понимать где реально "0" от ВПР, а где НД=0.
Подскажите способ как в "Application.IfNa" указать несколько действий в случае возврата НД, 1 действие - заменить на "0", 2 действие - закрасить ячейку цветом или добавить примечание/заметку
Код
Function ВПР_ЕСЛИОШИБКА_0(что_искать, где_искать, столбец)
    ВПР_ЕСЛИОШИБКА_0 = Application.IfNa(Application.VLookup(что_искать, где_искать, столбец, 0), 0)
End Function
VBA. Преобразовать число в текст с учетом формата ячеек.
 
Итого получился код с % выполнения, может кому понадобиться
Код
Function VisualVal(rc As Range)
    VisualVal = Application.Text(rc.Value, rc.NumberFormat)
End Function

Sub Преобразование_число_в_текст()
Dim rc As Range, calc, ab, xy, a As Long, sres$
'начало отсчета времени
'a = Timer

    Application.CutCopyMode = False
    ab = Selection.Count
    ' Отключение пересчёта формул, чтобы ускорить макрос.
    ' Перед отключением запоминаем режим формул, чтобы потом его вернуть.
    calc = Application.Calculation
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False

For Each rc In Selection.Cells
    sres = VisualVal(rc)
    'назначаем текстовый формат ячейкам, чтобы избежать лишних преобразований
    rc.NumberFormat = "@"
    rc.Value = sres
    
    xy = xy + 1
'    Application.StatusBar = "Выполнено: " & xy & " из " & ab  ' кол-во обработанных ячеек
    Application.StatusBar = "Выполнено: " & Int(100 * xy / ab) & "%"  ' процент обработанных ячеек
'    DoEvents 'чтобы форма перерисовывалась
Next

    'сбрасываем значение статусной строки
    Application.StatusBar = False
    ' Включение того, что отключили.
    Application.ScreenUpdating = True
    Application.Calculation = calc


'вывод затраченного времени
'MsgBox Timer - a

End Sub
VBA. Преобразовать число в текст с учетом формата ячеек.
 
Большое спасибо все участникам! Очень помогли.
Закраску я делал для визуализации, что цикл отработан.
Изменено: Максим - 09.09.2021 11:16:09
VBA. Преобразовать число в текст с учетом формата ячеек.
 
Спасибо всем! Но интересует именно преобразование текущих ячеек, без использования функций и добавления дополнительных столбцов.
Начал писать макрос, но остановился на том, что надо прочитать содержимое ячейки + использовать функцию + записать итоговый результат в ячейку. Я новичок в макросах по разному писал код, всякие ошибки выпадали. Помогите дописать. Или где-то есть уже готовый макрос.

Код
Function VisualVal(rc As Range)
    VisualVal = Application.Text(rc.Value, rc.NumberFormat)
End Function
Sub Преобразование()


'    On Error Resume Next
    Dim i, x, y As Long

    x = ActiveCell.Column
    y = ActiveCell.Row
    For i = 0 To Selection.Count - 1
    Cells(i + y, x).Select

???
    
    Selection.Value = Selection.Value ' преобразование формул в значение
    
' для визуализации
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With


Next
End Sub
VBA. Преобразовать число в текст с учетом формата ячеек.
 
Доброго дня!
Подскажите макрос, который преобразовывает число в текст с учетом формата ячеек.
Знаю, что в известных надстройках присутствует данный функционал, но избыточен для меня, например не нужен откат выполненных действий (это тоже потраченное время). Интересует максимальное быстродействие на большом массиве.

Какие команды могут прочитать формат ячеек?

Пример во вложении
Изменено: Максим - 08.09.2021 15:51:33
Сводная таблица по нескольким диапазонам данных, модернизация макроса
 
Цитата
sokol92 написал:  Не забудьте в сводной таблице перетянуть поля в область строк и значений.
Спасибо!
Сводная таблица по нескольким диапазонам данных, модернизация макроса
 
Цитата
Dima S написал:
в 2013 можно строить сводные по нескольких таблицах без макросов.
Это хорошо, когда мало вкладок в книге. У меня вкладки исчисляются десятками и кол-ом столбцов более 100.
Сводная таблица по нескольким диапазонам данных, модернизация макроса
 
sokol92, заменил и макрос перестал исполняться. Если что я не силен в макросах.
Скрытый текст

Изменено: Максим - 18.07.2019 15:32:44
Сводная таблица по нескольким диапазонам данных, модернизация макроса
 
Цитата
PooHkrd написал:
А макросом это делать принципиально?
К сожалению, да.
Корпоративный комп и офис установлен 2013.  
Сводная таблица по нескольким диапазонам данных, модернизация макроса
 
Добрый день!
Есть статья - https://www.planetaexcel.ru/techniques/8/133/ в ней есть макрос.
Подскажите как модернизировать макрос, чтобы он корректно собирал информации на листах, где порядок названий столбцов разный?

Например, если во вкладке "Лист1" Столбцы с данными "артикул" и "наименование", а во вкладке "Лист2" сначала "наименование", а потом "артикул", то макрос не корректно собирает данные.

Пример прилагаю
Изменено: Максим - 18.07.2019 13:13:28
Просчет рабочего времени с учетом 2 дат (от и до)
 
так?
=СЦЕПИТЬ(ТЕКСТ(ЧАС(J2-I2);"00");":"; ТЕКСТ(МИНУТЫ(J2-I2);"00"))
=ДНИ(Q2;J2)
про 8 часов не понятно... рабочее время со сколько до скольки?
Изменено: Максим - 14.05.2018 12:54:29
Построение сводной таблицы из двух разных источников данных, Построение сводной таблицы из двух разных источника данных, для вывода расчетов по нормативам
 
Михаил Комиссаров, а чем не устраивает формула СУММЕСЛИ (или СУММЕСЛИМН) для получения сумм из вкладки "Отчеты"? А потом написать итоговую формулу,которая в первом сообщении
Изменено: Максим - 19.04.2018 12:38:34
Сдаюсь. Подсчет кол-ва строк, где одно из условий - сумма значений ячеек (несколько столбцов) в такой строке >0.
 
Как вариант добавить доп столбец "квартал" и посчитать через формулу СЧЕТЕСЛИМН
Страницы: 1
Наверх