Я импортирую большой набор данных с веб-сайта и хочу создать сводную статистику на новом листе. Порядок столбцов не является фиксированным, поэтому я хочу иметь возможность (например) подсчитать все ячейки со значением "1" в столбце с заголовком "приоритет". Я знаю, что MATCH("Priority", 1:1)
даст мне номер столбца, но как мне использовать его в формуле COUNT
?
2 ответа
Мой ответ:
=COUNTIF(OFFSET($A:$A,0,MATCH("Priority",1:1)-1),1)
Теперь, чтобы объяснить:
Offset($A:$A,0,X)
возвращает весь столбец, начиная с первого смещения на X
где в этих ситуациях X = MATCH("Priority",1:1) - 1
.
Поскольку MATCH("Priority",1:1)
возвращает номер столбца, мы должны вычесть 1, чтобы получить правильное смещение.
Тогда последний бит ,1)
указывает на то, что мы ищем значение 1.
Надеюсь, это достаточно ясно, так что вы можете сделать все остальное, что вам нужно.
Если это не так, все, что вам нужно изменить, это заменить "Priority"
что вы хотите найти, а последним 1
то, что вы ищете, и это должно вернуть счет.
Просто для удовольствия, это также будет работать:
=COUNTIF(INDEX(1:1048576,0,MATCH("Priority",1:1)),1)
Вот грязный способ, которым вы могли бы сделать это, который включает формулы ADDRESS
и INDIRECT
(пример данных, как предполагается, находится в A1:B6
:
=COUNTIF(
INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH("Priority",1:1,0),4),"1","") & ":" &
SUBSTITUTE(ADDRESS(1,MATCH("Priority",1:1,0),4),"1","")),
1)
По сути, он находит столбец, соответствующий Priority
в ваших заголовках (здесь это столбец B
), находит ADDRESS
(в данном случае B1
), преобразует номер столбца в букву (SUBSTITUTE
) и затем преобразует его в фактический диапазон. (INDIRECT
)