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

Страницы: 1 2 3 4 5 6 7 След.
Объединение всех cтолбцов в PQ, Объединение всех cтолбцов в PQ
 
Добрый день! Еще вариант массовой замены null во всех столбцах:
Код
let
    from = Excel.CurrentWorkbook(){[Name="пример"]}[Content],
    repl = Table.TransformColumns(from, List.Transform(Table.ColumnNames(from), (x)=> {x,  each if _ <> null then _ else 0 } ))
in
    repl
Причины долгой работы макроса, Причины долгой работы макроса
 
Добрый день!
VBA только осваиваю, поэтому очень много вопросов.
Написал макрос (посмотрел кода на этом форуме), который чистит исходник из 1с.
Исходник порядка 450тыс.стр. После запуска макроса, в который добавил удаление строк по условию, Excel завис и провисел всю ночь.
Подскажите, пожалуйста, как оптимизировать код или может 450тыс.строк это слишком много для обработки.
Код
Sub OstMKDT()

    Dim wb As Workbook
    Dim wsh As Worksheet
    Dim lr As Long
    Dim lc As Integer
    Dim irow As Integer
    Dim par As Variant
    Dim rng As Range
    Dim i As Long
        
    Set wb = Workbooks.Open("файл")
    Set wsh = wb.ActiveSheet
    Set rng = Range("A1:P25")
    par = "Номенклатурная группа"
    lr = wsh.UsedRange.Rows.Count
    lc = wsh.UsedRange.Columns.Count
    
    wsh.Cells.ClearOutline
    
    irow = rng.Find(par, LookIn:=xlValues, SearchDirection:=xlPrevious).Row - 1
    Rows("1" & ":" & irow).EntireRow.Delete
    
    Application.ScreenUpdating = False

' УДАЛЯЕМ ПУСТЫЕ СТОЛБЦЫ
    Dim diapaz1 As Range
    Dim diapaz2 As Range
    Set diapaz1 = Application.Range(ActiveSheet.Range("A1"), _
    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
    For i = 1 To diapaz1.Columns.Count
        If WorksheetFunction.CountA(diapaz1.Columns(i).EntireColumn) = 0 Then
            If diapaz2 Is Nothing Then
            Set diapaz2 = diapaz1.Columns(i).EntireColumn
            Else
            Set diapaz2 = Application.Union(diapaz2, diapaz1.Columns(i).EntireColumn)
            End If
        End If
    Next
    diapaz2.[Delete]
    
   'УДАЛЯЕМ СТРОКИ ГДЕ КОЛИЧЕСТВО И СУММА равны 0
    Dim строка As LongPtr
    Dim строки As Range
    Dim строки2 As Range

     For строка = lr To 1 Step -1
        If Cells(строка, 7) = "" And Cells(строка, 8) = "" Then Set строки = Rows(строка)
            If строки2 Is Nothing Then Set строки2 = строки Else Set строки2 = Union(строки2, строки)
     Next строка
 
    If Not строки2 Is Nothing Then строки2.Delete Shift:=xlUp 'удалить со свигом вверх
    
        Application.ScreenUpdating = True
'    Debug.Print Rw
   

End Sub
Импортирование из папки с txt данными
 
Oleg25897, Добрый день. Указать путь именно на эту папку. Либо фильтровать.
Изменено: Andrey_S - 03.04.2025 12:03:06
Импортирование из папки с txt данными
 
Oleg25897,  Добрый день.
Попробуйте вот так.
Нереализованный товар текущего месяца
 
Kilych, Добрый день!
Код
СЧЁТЕСЛИМН(A3:A22;"*OMODA*";K3:K22;"";H3:H22;"< ="&КОНМЕСЯЦА(СЕГОДНЯ();0);H3:H22;"> ="&КОНМЕСЯЦА(СЕГОДНЯ();-1)+1)
Alex,  Мне кажется Ваша формула не будет проверять даты этого месяца, которые меньше "Сегодня". Хотя, возможно, вопрошаемому это и не нужно.
Изменено: Andrey_S - 27.03.2025 11:23:44
Импортирование из папки с txt данными
 
Посмотрите вот в эту сторону: Сюда
Думаю, можно по аналогии применить для Вашего вопроса.
Импортирование из папки с txt данными
 
Доброе утро!
Я бы сделал вот так:
Код
let
    Источник = Folder.Files("C:\Users\"),
    #"Отфильтрованные скрытые файлы1" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    fn = Table.TransformColumns(#"Отфильтрованные скрытые файлы1", {{"Content", each Table.FromColumns({Lines.FromBinary(_, null, null, 65001)})
}}),
    clean = Table.TransformColumns(fn, {{"Content", each let 
a = Table.SplitColumn(_, "Column1", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, true), {"Column1.1", "Column1.2"}),
b = Table.Transpose(a),
c = Table.PromoteHeaders(b, [PromoteAllScalars=true])
in
c
}})[[Content]],
    exp = Table.ExpandTableColumn(clean, "Content", {"Номер твэла", "Длинна столба", "Масса столба", "Оператор", "ОТК", "Остаточное давление", "Вакумирование", "Время сварки"}, {"Номер твэла", "Длинна столба", "Масса столба", "Оператор", "ОТК", "Остаточное давление", "Вакумирование", "Время сварки"})
in
    exp
Некорректная сортировка по дате, нужна идея как это устранить
 
kocogor, Можно сделать через дополнительный столбец, в котором прописать дату для каждой строки.
VBA. Оставить на листе только таблицу, удалив лишние строки и столбцы
 
asesja, Варианты выгрузок могут варьироваться в зависимости от настроек отчета, т.е. если добавить еще какой-то отбор (или удалить) или добавить сортировку  при формировании в 1с, меняется количество не нужных строк до шапки таблицы. Так же, обратил внимание, что 1с по своему настроению может сделать пустой столбец в начале листа, а может не делать.
Сейчас разбирал такой вариант: удаление строк, содержащих пустые ячейки в столбце (допустим в 5-ом). В принципе, удаляет строки до шапки таблицы, но наверное такой метод может привести к удалению нужных строк из таблицы, если она по какой-то причине окажется пустой в 5-ом столбце.
VBA. Оставить на листе только таблицу, удалив лишние строки и столбцы
 
Добрый день!
Приходится начинать изучать VBA ))). Мне нужно с помощью макроса очистить лист от лишних строк и столбцов. В данном случае это выгрузка из 1с. Мне нужно удалить верхние строки до шапки таблицы и удалить пустые столбцы. Как удалить заданное количество строк, я нашел. Но хотелось бы, что бы количество строк для удаления было не статичным числом, а динамическим. Так как очень часто при выгрузке из 1с количество не нужных строк может меняться. Для себя я определил следующий план действий: необходимо найти слово (слово сочетание) из шапки таблицы, узнать номер строки и удалить удалить количество строк, которое будет равно номер строки-1. Трудность возникла в том, что слово (слово сочетание) из шапки таблицы так же встречается в не нужных строках выше таблицы. Перерыл много примеров, но к сожалению, не нашел ответа, как получить все номера строк с искомым текстом. Возможно, я избрал не верный метод. Прошу помочь в решении данного вопроса или ткнуть в тему, где возможно это уже решалось.
Спасибо!
Импорт из текстового файла в таблицу
 
klio, Добрый день. Могу предположить, что нужно указать правильно 4 аргумент
Lines.FromBinary(File.Contents(""), null, null, 1251)
Вопрос о подборе формулы для поиска верного критерия из разных столбцов, Требуется найти определённый критерий из разных столбцов
 
Обрезал немного файл, не вмещался по объему.
В Вашем случае, правильнее на мой взгляд, использовать суммесли, так как у вас встречается задвоенная номенклатура в остатках. Индекс берет первое попавшееся совпадение.
Вопрос о подборе формулы для поиска верного критерия из разных столбцов, Требуется найти определённый критерий из разных столбцов
 
savgira, добрый день.
Вот такая формула у меня тянет все остатки:
=ИНДЕКС(ОСТАТКИ!B:B;ПОИСКПОЗ(ЦЕНА!A4;ОСТАТКИ!A:A;0))

В Вашей формуле перед протягиванием необходимо закреплять диапазоны.
$A$3:$A$799
Изменено: Andrey_S - 18.03.2025 11:54:41
Как дозаполнить ячейки в столбце на основании значения выше
 
Добрый день. Можно вот так. Для столбца Н:
Код
=ЕСЛИ(A2<>"";A2;H1)
PQ Сравнить знаки двух чисел
 
AlienSx,  Спасибо! Решение проблемы оказалось на поверхности, а не в глубине кода)))  
PQ Сравнить знаки двух чисел
 
Добрый день! При анализе ДЗ КЗ столкнулся с необходимостью сравнить знаки двух чисел. Это связано с тем, что в отчете ДЗ и КЗ отличаются знаком, т.е. если знак "+", то это ДЗ, а если "-", то это КЗ. При этом за период ДЗ может превратиться в КЗ и наоборот. На начало месяца сумма положительная, а на конец периода - отрицательная. Сравнение знаков необходимо для дальнейших расчетов. Можно конечно прописать через If Then Else, но запись получается очень длинная. Подумал, может знатоки знают, как сравнить именно знаки, а именно одинаковые они или разные. Файл не прикладываю, так как вопрос теоретический.  
Перевернуть верхнюю таблицу на листе вверх ногами
 
Тимофеев, Спасибо! Тоже хорошее решение вопроса.
Перевернуть верхнюю таблицу на листе вверх ногами
 
ZVI,  Спасибо! Буду пробовать.
Перевернуть верхнюю таблицу на листе вверх ногами
 
Добрый день! Существует печатная форма (дали в виде распечатанного экземпляра), на которой две таблицы для заполнения. При этом верхняя таблица перевернута "вверх ногами". Возможно лист должен складываться пополам. На просторах интернета не смог найти как такое осуществить. В экселе и ворде можно повернуть текст на 90 или -90 градусов. Подскажите, пожалуйста, возможно ли такое осуществить в Excel. Пока вопрос решается через распечатку отдельно каждой таблицы.  
Изменено: Andrey_S - 23.12.2024 09:32:45
Столбец в заголовках другого столбца, Как сделать данные из одного столбца заголовками в другом в таблице с большим количеством столбцов?
 
Добрый день! Решение через PQ (на кнопках)
в редакторе power query не получается получить данные с помощью добавления нового столбца и вызова настраиваемой функции с переменными., не могу получить данные по минимальной дате, нужно посчитать сколько отработал каждый сотрудник. Редактирую в расширенном редакторе, добавляю переменные, но в итоге значения выводятся нулевые. Подскажите, пожалуйста, что я делаю не так.
 
Добрый день! Kotyn, Честно говоря, не совсем понял, что Вам нужно на выходе. Если первую и последнюю дату для каждого сотрудника в каждом городе, то попробуйте вот так (наклацал кнопками)
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Продолжительность_работ"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Город", type text}, {"Сотрудник", type text}, {"Дата", type date}}),
    #"Сгруппированные строки" = Table.Group(#"Измененный тип", {"Город", "Сотрудник"}, {{"Дата_начало", each List.Min([Дата]), type nullable date}, {"Дата_окончание", each List.Max([Дата]), type nullable date}})
in
    #"Сгруппированные строки"
Выборка данных по названию шапки
 
Вариант на PQ
Не могу разобраться как можно в Power Query отсортировать
 
Anton10111986, Я не далеко от Вас ушел. Думаю, данную задачу можно решить проще).
Теперь по шагам:
- подключился к файлу
- отфильтровал нужные листы (возможно Вам необходимо будет пересмотреть фильтрацию для реального файла)
- на каждом листе почистил пустые строки и заменил ошибки на null
- сгруппировал на каждом листе в виде таблицы, используя GroupKind.Local и параметр для группировки "№ п/п"
- поднял первую строку в заголовки, удалил не нужные столбцы и строки.
- опустил заголовки в первую строку, транспонировал таблицу и опять поднял первую строку в заголовки
- развернул сгруппированные таблицы  
Изменено: Andrey_S - 04.12.2024 09:10:09
Не могу разобраться как можно в Power Query отсортировать
 
Anton10111986, Посмотрите, думаю, подойдет Вам.
Не могу разобраться как можно в Power Query отсортировать
 
Добрый день. Запроса в Вашем файле не увидел. Так же создайте в файле - примере "что нужно", что бы наглядно было видно, что Вы хотите получить на выходе.
Среднее арифметическое значение оборачиваемости
 
Если для роста 4 значения, то можно попробовать вот так
Код
=ЕСЛИ(E2>0;СРЗНАЧ(A2:D2);(СУММ(A2:D2)-МИН(A2:D2))/3)
PQ Определить вид договора по условию
 
AlienSx, Спасибо! Буду изучать.
PQ Определить вид договора по условию
 
Добрый день!  Есть таблица с перечнем договоров. В названиях столбцов указан вид договора, а в ячейках признак Да или Нет. Так же есть дополнительный столбец с другим признаком договора. Необходимо добавить  столбец с указанием вида договора по условию, что если в каком-либо из столбцов указано "Да" - взять вид договора из названия столбца, если во всех столбцах "Нет" - взять вид договора из столбца с дополнительным признаком. Можно конечно прописать через If then else, но если добавятся другие виды - нужно будет переписывать запрос. Так же смотрел в сторону UnPivot, но пока "допилить" не получается. Прошу подсказать оптимальное решение.
Изменено: Andrey_S - 28.11.2024 14:52:25
Свод по периодам в DAX, Сумма количества дней отпуска в стыковочных периодах
 
AlienSx,
Цитата
написал:
[[Сотрудник], [Дата начала], [Дата окончания], [#"Кол-во дней"]]
Если не сложно, поясните, пожалуйста, данную запись в последней строке кода. Не могу понять как это работает.
Свод по периодам в DAX, Сумма количества дней отпуска в стыковочных периодах
 
AlienSx, к сожалению, более двух лет не было возможности практиковаться в данном направлении. Очень многое забылось. Теперь практикуюсь здесь ).  Идею Вы описали довольно точно. Затруднения у меня возникли, когда попадались два не связанных друг с другом периода, например, два периода в августе и следом два периода в сентябре. Мне было бы познавательно посмотреть на более оптимальное решение.
Страницы: 1 2 3 4 5 6 7 След.
Loading...