Спасибо, коллеги! Но я в списках не очень разбираюсь, поэтому сделал сам по-топорному)) Сделал две обработки таблицы: одну, когда в столбце "Аналитика Дт.4" все значения null, и вторую, когда в столбце "Аналитика Дт.4" есть непустые значения. Потом в зависимости от наличия null в столбце "Аналитика Дт.4" иду либо в первую таблицу, либо во вторую
Код |
---|
let Источник = Excel.Workbook(File.Contents("H:\Downloads\Действие при условии. Тест.xlsx"), null, true), #"Лист_4 аналитики_Sheet" = Источник{[Item="Лист_4 аналитики",Kind="Sheet"]}[Data], #"Удаленные верхние строки" = Table.Skip(#"Лист_4 аналитики_Sheet",5), #"Строки с примененным фильтром" = Table.SelectRows(#"Удаленные верхние строки", each ([Column1] <> null and [Column1] <> "Сальдо на начало")), #"Повышенные заголовки" = Table.PromoteHeaders(#"Строки с примененным фильтром", [PromoteAllScalars=true]), #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Период", type date}, {"Документ", type text}, {"Аналитика Дт", type text}, {"Аналитика Кт", type text}, {"Дебет", type text}, {"Column6", type text}, {"Column7", type text}, {"Кредит", Int64.Type}, {"Column9", type number}, {"Column10", type text}, {"Текущее сальдо", type text}, {"Column12", type number}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Период", "Аналитика Дт"}), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Другие удаленные столбцы", "Аналитика Дт", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.None), {"Аналитика Дт.1", "Аналитика Дт.2", "Аналитика Дт.3", "Аналитика Дт.4"}), #"Удаленные столбцы1" = Table.RemoveColumns(#"Разделить столбец по разделителю",{"Аналитика Дт.4"}), //конец стандартной обработки без подразделений в первой аналитике //начало обработки с подразделением в первой аналитике #"Удаленные столбцы" = Table.RemoveColumns(#"Разделить столбец по разделителю",{"Аналитика Дт.1"}), #"Переименованные столбцы" = Table.RenameColumns(#"Удаленные столбцы",{{"Аналитика Дт.2", "Аналитика Дт.1"}, {"Аналитика Дт.3", "Аналитика Дт.2"}, {"Аналитика Дт.4", "Аналитика Дт.3"}}), //конец обработки с подразделением в первой аналитике // определяем, есть ли непустые строки: если есть, значит, нужно нужно убирать первую аналитику, если нет, то остается стандартная обработка List.NonNullCount = List.NonNullCount(#"Разделить столбец по разделителю"[Аналитика Дт.4]), // если List.NonNullCount = 0, значит, стандартная обработка; если больше нуля, то убираем первую аналитику (нестандартная карточка) результат = if List.NonNullCount = 0 then #"Удаленные столбцы1" else #"Переименованные столбцы" in результат |