Сопоставить имена столбцов со списком имен строк - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующая электронная таблица Excel:

       A          B      C        D      E            F        G        H
1                 Q1     Q2      Q3     Q4        Asset 2      Q4
2   Asset 1       15     85      90     70        Asset 3      Q2
3   Asset 2       40     80      45     60        Asset 3      Q4
4   Asset 3       30     60      55     60        Asset 5      Q1                 
5   Asset 4       12     72      25     15
6   Asset 5       60     48      27     98
7 

В Cells A1:E6 У меня есть другие активы с их производительностью по сравнению с кварталом Q1-Q4.
В Column F В настоящее время я перечисляю все активы, которые имеют производительность 60.

Как видите, может случиться так, что актив указан несколько раз в Column F, поскольку он может иметь одинаковую производительность в несколько раз в Cells A1:E6.В этом случае Asset 3 имеет производительность 60 в Q2 и Q4.

Теперь я хочу, чтобы в Column G кварталы автоматически сопоставлялись с каждым активом.
Есть ли у вас представление о формуле, которая могла бы сделать это, учитывая, что актив может быть указан несколько раз?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

что-то жестко запрограммировано и работает с предоставленной раскладкой.

="Q"&AGGREGATE(15,6,COLUMN(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-1)/($A$2:$A$6=F1),1),0))/(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-1)/($A$2:$A$6=F1),1),0)=60),COUNTIF($F$1:F1,F1))-1

POC

Это действительно обманывает, так как объединяет столбецчисло и буква Q. Для чего-то, что действительно смотрит на ваш заголовок и может находиться где угодно, формула обновления может быть:

=INDEX($B$1:$E$1,AGGREGATE(15,6,COLUMN(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-ROW($A$2)+1)/($A$2:$A$6=F1),1),0))/(INDEX($B$2:$E$6,AGGREGATE(15,6,(ROW($A$2:$A$6)-ROW($A$2)+1)/($A$2:$A$6=F1),1),0)=60),COUNTIF($F$1:F1,F1))-COLUMN($B$2)+1)
0 голосов
/ 25 сентября 2018

Если вы хотите формулу, используйте эту формулу массива

=INDEX($1:$1,SMALL(IF(($B$2:$E$6=$G$1)*($A$2:$A$6=H1),COLUMN($B$2:$E$6)),COUNTIF($H$1:H1,H1)))

Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...