Рассмотрим следующие данные ниже:
| 1st | 2nd | A | B | C | D | E | F | G | H |
|-----|-----|---|---|---|---|---|---|---|---|
| y | x | | | 1 | | | | | |
| y | x | | | 1 | | | | | |
| y | x | | | | 1 | | | | |
| | x | 1 | | | | | | | |
| y | | 1 | 1 | 1 | | | | | |
| y | x | | | | | | 1 | | |
| y | | | | | | | | 1 | |
| | x | | | | | 1 | | | |
| | x | | | | | | | | 1 |
| y | x | | | | | | | | 1 |
Что я хочу сделать, это вернуть все заголовки столбцов (от A до H), которые удовлетворяют следующему условию: оно должно иметь значение 1, равноеоба выровнены по значениям y
и x
из первых двух столбцов.
У меня уже есть формула рабочего массива для этого, которая выглядит следующим образом:
{=INDEX($C$1:$J$1,SMALL(IF(($A$2:$A$11="y")*($B$2:$B$11="x")*($C$2:$J$11=1),COLUMN($C$1:$J$1)-COLUMN($B$1)),ROW(1:1)))}
Однако, в то время как я перетаскиваю это, он возвращает two C values and one for D, F and H
.
Это потому, что под заголовком C есть две единицы, которые удовлетворяют указанному условию.Я хочу вернуть уникальные значения, поэтому C должен быть возвращен только один раз.Я пытался использовать MATCH
и дополнительные COUNTIF
вместо функции SMALL
, но он возвращает ошибку, и функция «Формула оценки» в Excel не помогает.Ниже, если ошибочная формула, с которой я экспериментировал:
{=INDEX($C$1:$J$1,MATCH(0,IF(($A$2:$A$11="y")*($B$2:$B$11="x")*($C$2:$J$11=1),COUNTIF($N$1:N1,COLUMN($C$1:$J$1)-COLUMN($B$1))),0))}
Обходное решение, которое я сейчас делаю, - сделать мою первую формулу «столбцом-помощником», а затем создать другую формулу на основе результата первой формулы, чтобы получить толькоуникальные ценности.Тем не менее, формула двойного массива сильно влияет на эффективность вычислений Excel из-за огромного объема данных, с которыми я имею дело.
Любая помощь / предложения подойдут, пожалуйста (без VBA, пожалуйста, так как яповерьте, здесь это не нужно) .Спасибо!