Power Query / Pivot Table как ссылка на проверку данных - PullRequest
0 голосов
/ 08 ноября 2019

ЧТО Я ИМЕЮ:

У меня есть большая динамическая таблица, созданная Power Query, похожая на следующий формат:

     X                     Y       
   [P27]  [M258]  [S1]  [ML06]  [RF01]
   [P27]  [M233]  [S2]  [ML08]  [RF01]
   [P27]  [M334]  [S1]  [ML10]  [RF03]
   [P32]  [M352]  [S1]  [ML01]  [RF01]
   [P32]  [M344]  [S2]  [ML01]  [RF01]

ЧТО Я ХОЧУ:

В другомна листе, я хочу, чтобы данные проверяли определенные ячейки с выпадающими списками (List1 & List2) на основе столбца X и столбца Y соответственно.

Это означает, что если я сначала выберу P27 в List1, то List2 будет отображаться толькомне варианты, связанные с P27, а именно ML06, ML08 и ML10.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ:

Я использую Excel 2016 и с удовольствием включил бы код VBA.

ЧТО Я ПОПРОБОВАЛ

  1. Я пытался преобразовать запрос в дизайн, подобный следующему.
    [P27]   [P32]
    [ML06]  [ML01]
    [ML08]  [ML01]
    [ML10]  

но безуспешно.

Я попытался сослаться на столбец Y в таблице запросов. Это работает, но это даст мне список ВСЕХ записей в столбце Y.

Я попытался создать сводную таблицу на основе таблицы запросов. Он может классифицировать мои данные, но мне не удается привести их в правильную структуру. На прикрепленном рисунке вы можете увидеть текущую структуру сводной таблицы и то, как я хотел бы ее структурировать. PivotTableStructure

Можно ли ссылаться на все записи данных в категориях P27 и P32 моей сводной таблицы и использовать ее в качестве списка проверки данных?

1 Ответ

1 голос
/ 08 ноября 2019

Предположим, что ваши данные начинаются в столбце A листа 1 (вы говорите, X и Y, но эти столбцы рядом друг с другом, а ваши данные нет). Кроме того, предположим, что ваша проверка данных List1 выполняется в ячейке Листа I5 (вам придется изменить приведенную ниже формулу, если вы поместите ее на другой лист).

Создайте именованный диапазон с именем dvList2 с помощью этой формулы

=OFFSET(INDEX(Sheet1!$D$1:$D$5,MATCH(Sheet1!I5,Sheet1!$A$1:$A$5,FALSE)),0,0,COUNTIF(Sheet1!$A$1:$A$5,Sheet1!I5),1)

Затем создайте проверку данных списка и = dvList2.

Это предполагает, что столбец X отсортирован. Это не будет работать, если это не так.

Формула находит первый экземпляр, скажем, P27 и расширяет этот список на количество P27 в списке.

...