Excel: сводная таблица фильтра «И» по значению, найденному в том же столбце - PullRequest
0 голосов
/ 03 октября 2019

Мне нужна сводная таблица, чтобы показать, сколько раз комбинация встречается в одном билете (столбец A).

Данные хранятся так:

ticket  item
10001   1422
10001   2031
10002   1769
10002   2102
10002   2348
10003   1806
10004   1076
10004   1492
10004   1494
10004   1496
10004   2096
10004   2119
10004   2375

Мне нужен Excelчтобы показать результаты, подобные этому:

item/item   1033    1036    1044    1051    1060    1095    1111    1113    1136    1139
1033    x   x   x   x   x   x   x   x   x   x
1036    x   x   x   x   x   x   x   x   x   x
1044    x   x   x   x   x   x   x   x   x   x
1051    x   x   x   x   x   x   x   x   x   x
1060    x   x   x   x   x   x   x   x   x   x
1095    x   x   x   x   x   x   x   x   x   x
1111    x   x   x   x   x   x   x   x   x   x
1113    x   x   x   x   x   x   x   x   x   x
1136    x   x   x   x   x   x   x   x   x   x
1139    x   x   x   x   x   x   x   x   x   x

Где «х» представляет, сколько билетов было найдено, которые включают оба продукта. Я считаю, что для того, чтобы сделать это в Excel, мне нужно было бы дважды отфильтровать по «элементу», используя фильтр «И» (не ИЛИ).

Я пробовал все, даже добавляя таблицу в модельа затем фильтрация из другой таблицы с теми же элементами. В настоящее время я могу сделать это с помощью формул, но из-за времени, которое требуется для этого, и количества различных наборов данных, которые мне нужно проанализировать, это просто не практично.

1 Ответ

1 голос
/ 03 октября 2019

Вы можете сделать это, используя Power Query . Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel. Он доступен в Excel 2010 Professional Plus и более поздних версиях . Моя демонстрация использует Excel 2016 .

Шаги:

  1. Использование функции из таблицы на вкладке Data для загрузки источникатаблица для редактора Power Query;
  2. Используйте функцию Merge Queries на вкладке Transform, чтобы объединить таблицу со своей собственной, как указано ниже:

Merging

Разверните объединенный столбец (который по сути является таблицей), нажав кнопку справа от заголовка столбца, и выберите Item only;

Expanding

Закрыть и загрузить новую таблицу на новый лист (по умолчанию), или вы можете изменить Query Options, выбрав Specify custom default load settings в Data Load, чтобы новая таблица не загружалась физическиа скорее создание соединения запроса; Если вы загрузили таблицу на новый лист, вы можете создать из нее сводную таблицу и поместить столбец двух элементов в поле Columns и Rowsи поместите столбец заявок в поле Values, но измените настройку на Количество вместо Сумма билетов. Если вместо этого вы создали соединение по запросу, вы можете щелкнуть правой кнопкой мыши соединение на панели Workbook Queries и выбрать его для загрузки в Модель данных , с которой, я полагаю, вы знакомы. Затем вы можете создать сводную таблицу, используя таблицу в модели данных с теми же настройками. Тогда у вас должно получиться что-то вроде следующего:

example

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

Здесь приведены Power Query M Codes за сценой только для справки. Я использовал только встроенные функции редактора запросов, который прост и понятен. Ура:)

let
    Source = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Ticket", Int64.Type}, {"Item", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Ticket"}, #"Changed Type", {"Ticket"}, "Changed Type", JoinKind.LeftOuter),
    #"Expanded Changed Type" = Table.ExpandTableColumn(#"Merged Queries", "Changed Type", {"Item"}, {"Changed Type.Item"})
in
    #"Expanded Changed Type"
...