[Добрый день уважаемые форумчане!!!
Хотел задать вопрос по поводу оператора If Then Else в запросе Power Query
Очень нужно сделать работающий код “If Then Else “ как на vba или ином языке. Принцип везде одинаков.
Создал специально простенькую задачку чтобы всем было понятно. Важен именно синтаксис, поэтому разобрав простую задачку и вникнув в синтаксис и реальные задачи смогу решать с большим количеством полей и условий.
Есть исходная таблица. Есть ячейка условия с выбором «1» или «0». В зависимости от заданного условия «1» или «0» в итоговом запросе происходит фильтрация по полю Флаг.
Ответы типа задать параметр и через него передавать в запрос «1» или «0» не устраивают. Так как задача не настоящая в реальных задачах есть условия не только фильтрации а допустим выполнять определенную операцию – шаг в коде запроса или нет.
Например -
Если истина тогда - Фиильтровать по определённой колонке
Иначе - удалить определённый столбец и всё в таком духе.
С обычной фильтрацией я конечно бы разобрался. Нужен именно синтаксис «If Then Else» .
Код типа
Не устраивает !!!!
Т.е. если выполняется условие то выполняется один запрос включающий много шагов. Иначе выполняется другой запрос так же состоящий из нескольких шагов.
Этот вариант я приложил. Код можете посмотреть в приложенном файле.
Он тоже не устраивает если много параметров по которым происходит выбор условий то код становится просто монструозным и не читабельным. Да и в принципе его тяжело создать а иногда и невозможно.
1 Пункт)
Нужен код типа
2 Пункт )
Также Хотелось при таком написании чтобы каждый шаг виделся так же в редакторе кода, чтобы оставалась возможность удобно просматривать и редактировать код.
Если же в оператор Then и Else прописывать целиком весь запрос то шаги этих запросов не видны и в сложном запросе где много шагов его невозможно будет отлаживать.
Если откроете во вложенном файле запрос «Запрос_Основной» то увидите следущую картину
А в «Применённые шаги» хотелось бы видеть именно все шаги
Например
Повторюсь пример простой и шагов мало но когда запрос сложный где много условий и шагов хотелось бы в условие не записывать весь запрос целиком а выбор конкретного шага в этом запросе в зависимости от условия !!!
Буду ОЧЕНЬ БЛАГОДАРЕН если кто-нибудь откликнется и поможет решить такую сложную для меня задачу !!!
PS
Прошу прощения что без картинок так и не разобрался как их прикрепить вместо них сайт отображает много-много текста. Хотя при редактировании темы картинки отображаются корректно.
Хотел задать вопрос по поводу оператора If Then Else в запросе Power Query
Очень нужно сделать работающий код “If Then Else “ как на vba или ином языке. Принцип везде одинаков.
Создал специально простенькую задачку чтобы всем было понятно. Важен именно синтаксис, поэтому разобрав простую задачку и вникнув в синтаксис и реальные задачи смогу решать с большим количеством полей и условий.
Есть исходная таблица. Есть ячейка условия с выбором «1» или «0». В зависимости от заданного условия «1» или «0» в итоговом запросе происходит фильтрация по полю Флаг.
Ответы типа задать параметр и через него передавать в запрос «1» или «0» не устраивают. Так как задача не настоящая в реальных задачах есть условия не только фильтрации а допустим выполнять определенную операцию – шаг в коде запроса или нет.
Например -
Если истина тогда - Фиильтровать по определённой колонке
Иначе - удалить определённый столбец и всё в таком духе.
С обычной фильтрацией я конечно бы разобрался. Нужен именно синтаксис «If Then Else» .
Код типа
Код |
---|
If a=1 then let Источник =…, #"Измененный тип" …, #"Строки с примененным фильтром" ..in #"Строки с примененным фильтром" else let Источник = … #"Измененный тип" = …, #"Удалённый Столбец" = Table.SelectRows(#"Измененный тип", each [Флаг] = 0)in #" Удалённый Столбец " |
Не устраивает !!!!
Т.е. если выполняется условие то выполняется один запрос включающий много шагов. Иначе выполняется другой запрос так же состоящий из нескольких шагов.
Этот вариант я приложил. Код можете посмотреть в приложенном файле.
Он тоже не устраивает если много параметров по которым происходит выбор условий то код становится просто монструозным и не читабельным. Да и в принципе его тяжело создать а иногда и невозможно.
1 Пункт)
Нужен код типа
Код |
---|
let Источник =…, #"Измененный тип" …, If a=1 then #"Строки с примененным фильтром" .. Else #"Удалённый Столбец" … #"Сортированные строки" #"Переупорядоченные столбцы"……… in #"Строки с примененным фильтром" |
2 Пункт )
Также Хотелось при таком написании чтобы каждый шаг виделся так же в редакторе кода, чтобы оставалась возможность удобно просматривать и редактировать код.
Если же в оператор Then и Else прописывать целиком весь запрос то шаги этих запросов не видны и в сложном запросе где много шагов его невозможно будет отлаживать.
Если откроете во вложенном файле запрос «Запрос_Основной» то увидите следущую картину
А в «Применённые шаги» хотелось бы видеть именно все шаги
Например
Повторюсь пример простой и шагов мало но когда запрос сложный где много условий и шагов хотелось бы в условие не записывать весь запрос целиком а выбор конкретного шага в этом запросе в зависимости от условия !!!
Буду ОЧЕНЬ БЛАГОДАРЕН если кто-нибудь откликнется и поможет решить такую сложную для меня задачу !!!
PS
Прошу прощения что без картинок так и не разобрался как их прикрепить вместо них сайт отображает много-много текста. Хотя при редактировании темы картинки отображаются корректно.