Выполнение уникальных PowerQueries на основе значения ячейки - PullRequest
1 голос
/ 19 марта 2020

У меня есть довольно простой запрос в Excel, который берет несколько заданных областей данных и объединяет их, а затем группирует эти данные вместе. Объединенные запросы выглядят примерно так:

Description     Rate      Quantity             
Type 1           2          .1                
Type 1           2          .1
Type 1           3          .1
Type 2           3          .1
Type 2           3          .1

Когда они группируют эти данные вместе, это будет выглядеть так:

Description     Rate     Quantity             
Type 1           2          .2         
Type 1           3          .1
Type 2           3          .2

Все, что он делает, это группирует различные виды описания и тарифы, то есть с двумя «типами 1» по ставке 2, что составляет некоторое количество .2 и т. д.

Однако существует другой способ их объединения. Это было бы так:

Description     Rate     Quantity             
Type 1           2          .3         
Type 2           3          .2

То, что это делает, сводится на основе описания, но с использованием первой отображаемой ставки, вместо взимания двух разных ставок. Таким образом, три «Типа 1», когда первая частота, которая появляется, равна 2, всегда будут с той скоростью 2, даже если другая скорость появится позже.

Фактический способ заставить запросы делать это просто и кое-что я сделал. Однако я бьюсь над вопросом, можно ли сказать PowerQuery использовать этот первый метод группировки, когда конкретная ячейка в этой книге равна «1», и второй метод группировки, когда эта ячейка равна «2».

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

Спасибо вы.

1 Ответ

0 голосов
/ 20 марта 2020
  1. Сделать эту ячейку в именованном диапазоне.
  2. Ссылка на этот именованный диапазон с помощью Power Query
  3. Создать новый запрос, который переключает этот запрос на вывод на основе в именованном диапазоне.
let
    NamedRange = GetNamedRangeQuery
    Output = if NamedRange = 1 then Query1 else Query2
in
    Output
...