Создание индекса (Match ()) для нескольких критериев с несколькими результатами для нескольких дат - PullRequest
0 голосов
/ 09 ноября 2018

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

Однако проблема заключается в том, что набор данных содержит несколько повторяющихся дат (даты в столбце) и иногда повторяющиеся идентификаторы. Таким образом, идентификатор 1 может появиться три раза 01.01.08, а затем появиться еще три раза 1/2018.

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

Identifier - A1
Date - 1/1/2018
Bin Column1 Column2 Column3 Column4
1      1       2       3       4
2      1       2       3       4
3
4
5

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

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

Редактировать - это как данные в настоящее время настраиваются:

`Dataset

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Используйте это:

=IFERROR(INDEX(C:C,AGGREGATE(15,7,ROW($B$2:INDEX($B:$B,MATCH("zzz",$A:$A)))/(($B$2:INDEX($B:$B,MATCH("zzz",$A:$A))=$J$2)*($A$2:INDEX($A:$A,MATCH("zzz",$A:$A))=$J$1)),ROW(1:1))),"")

![![enter image description here

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

0 голосов
/ 09 ноября 2018

Обычно это выглядит так:

= INDEX («диапазон всех данных, а не заголовков», MATCH («значение заголовка строки для сопоставления», «диапазон заголовков строки», 0), MATCH («заголовок столбца для сопоставления», «столбец» диапазон заголовков ', 0))

...