Я хотел бы подсчитать количество строк в Excel на основе нескольких необязательных условий. Я использую функцию COUNTIFSF
, и она работает, но по мере роста условий формула Excel должна учитывать все возможные комбинации, что делает формулу очень большой. Мне интересно, есть ли лучший способ сделать это.
Вот образец для двух фильтров (по одному на столбец), в обоих случаях я бы хотел рассмотреть каждый из них, возможно, необязательный. Он представлен значением: ALL
в каждой ячейке:
Образец с использованием двух дополнительных фильтров
Я использую следующую формулу для ячейки C10
:
=IF(
AND(B1<>"ALL", B2<>"ALL"), COUNTIFS(TB[Col1],B1, TB[Col2],B2),
IF(AND(B1<>"ALL", B2="ALL"), COUNTIFS(TB[Col1],B1,TB[Col1],"*"),
IF(AND(B1="ALL", B2<>"ALL"), COUNTIFS(TB[Col1],"*", TB[Col1],B2),
COUNTIFS(TB[Col1],"*", TB[Col1],"*"))))
Где TB
- созданный мной объект таблицы Excel
В случае, если я присвоить значение ALL
обоим фильтрам, он считает все строки для данного столбца, например, сценарий Filter1=ALL
и Filter2=ALL
вернет 6, а для: Filter1=A
и Filter2=ALL
вернет значение: 2
Как видите, добавление еще одного фильтра и столбца потребует 8 возможных комбинаций для оценки. В моем реальном примере мне понадобилось бы 4 фильтра, чтобы это решение не увеличивалось.
Другой обходной путь - добавление дополнительных ненужных столбцов, указывающих, какие ячейки следует учитывать (0, 1) на основе значений фильтра. Это означало бы наличие дополнительного столбца для каждого условия фильтрации. Мне интересно, есть ли более простой способ сделать это без использования сводной таблицы.
Примечание: Добавление текстового представления для облегчения воспроизведения его в excel:
Filter1 ALL Col1 Col2
Filter2 ALL A AA
B BB
C CC
D DD
A AA
D DD