Я не знаю, как хранятся ваши данные, но я составил образец, имитирующий то, что вы сказали о том, как выглядят ваши данные. Я надеюсь, что вы можете адаптировать это к вашим потребностям.
Я сделал это:
Левый набор данных будет вашими данными со значениями, а правый набор данных будет вашим анализом. Формула, которую я использовал, чтобы получить это:
=IF(J$1=$I2;"x";COUNTIF(INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));INDEX($B:$B;MATCH($I2;$A:$A;0)))+COUNTIF(INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));INDEX($C:$C;MATCH($I2;$A:$A;0)))+COUNTIF(INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));INDEX($D:$D;MATCH($I2;$A:$A;0)))+COUNTIF(INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));INDEX($E:$E;MATCH($I2;$A:$A;0))))
Может выглядеть сложно, но проще, чем кажется. Эта формула состоит из нескольких частей:
INDEX($B:$B;MATCH($I2;$A:$A;0)))
вернет критерии человека в той же строке, но в столбце B.
INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));
вернет в качестве диапазона диапазон значений из левого набора данных человека, которого вы сопоставляете (данные заголовка) в правом наборе данных.
- Мы можем объединить оба вышеперечисленных с COUNTIF, чтобы подсчитать, сколько раз значение человека в той же строке появляется в диапазоне значений человека в заголовках. Мы объединяем их как
COUNTIF(INDIRECT("B" & MATCH(J$1;$A:$A;0) &":E"& MATCH(J$1;$A:$A;0));INDEX($B:$B;MATCH($I2;$A:$A;0)))
.
- Приведенная выше формула предназначена только для 1 критерия, поэтому вам нужно добавить дополнительный COUNIF для каждого критерия, который вы получили (в этом примере это будет 4 критерия, то есть 4 COUNIF).
- Начальное значение
IF
полезно просто для показа X
, если анализируемое пересечение - это один и тот же человек в строке и заголовке.
- После этого вы можете использовать условное форматирование в каждой строке правого набора данных, чтобы отобразить максимальное значение.
Хорошая особенность этого метода в том, что значения в левом наборе данных не обязательно должны находиться в одном столбце для правильного подсчета. Если вы посмотрите на изображение, Person 1 и PErson 2 будут идеально совпадать, даже если значения не в одинаковом порядке, потому что формула все время учитывается во всем диапазоне.
Я загрузил образец в мой Gdrive на тот случай, если вы хотите загрузить и проверить формулы должным образом (возможно, я сделал ошибку при переводе, потому что мой Excel на испанском).
https://drive.google.com/open?id=1kPAARG8yAkXok7HxYkYswDiCAT37mmEz
С VBA, вероятно, вы могли бы сделать макрос, который просто показывает номер строки человека с лучшими совпадениями, но убедитесь, что вы проверите ВСЕ данные, потому что, возможно, может быть, что человек совпадает с 2 или более людьми, и все они получил максимальные значения. С этим дизайном вы могли видеть это, потому что обе ячейки были бы окрашены в зеленый цвет.
Надеюсь, вы сможете адаптировать это к вашим потребностям.