У меня есть следующая проблема:

У меня есть список с 2 столбцами, в первых столбцах есть несколько МВЗ, а во втором - Значения. Я ищу формулу, которая подсчитывает каждый центр затрат, если значение не 0, а только один раз. Таким образом, каждый МВЗ учитывается один раз, если значение не равно 0. Я использовал разные комбинации countif, но не могу найти правильное решение, как показано на этом рисунке:

Как я могу сделать это?

2 ответа2

1

Вы можете использовать следующее:
= СУММА (ЕСЛИ ($ B $ 2:$ B $ 14,1/(СЧЕТЧИКИ ($ B $ 2:$ B $ 14, "<>" & 0, $ A $ 2:$ A $ 14, $ A $ 2:$ A $ 14)) , 0))

Формула массива одновременно нажмите Ctrl+Shift+Enter вместо Enter
B2:B14 - значение столбца
A2:A14 - столбец МВЗ
1/(COUNTIFS($ B $ 2:$ B $ 14, "<>" & 0, $ A $ 2:$ A $ 14, $ A $ 2:$ A $ 14)) приведет к:
1/{3; 3; 3; 3; 1; 1; 1; 1; 0; 0; 0; 1}
это результат {0.333333333333333; +0,333333333333333; +0,333333333333333; 0,333333333333333; 1; 1; 1; 1; # DIV/0!; # DIV/0!; # DIV/0!; 1; 1}

IF($ B $ 2:$ B $ 14) оценивается как True, если B2:B14 <> 0, и как False, если B2:B14 = 0.
Это означает, что при значении True он будет рассчитывать 1/countifs() для подсчета различных значений
и 0, когда Ложь
И я повторяю, это формула массива не простая формула

0

Сначала можно создать вспомогательный столбец, чтобы отображать только МВЗ с ненулевыми значениями, поставив =IF(B2=0,"",A2) в C2.

Затем подсчитайте уникальные тексты в столбце помощника, игнорируя пробелы, используя =SUMPRODUCT((helper<>"")*(1/COUNTIF(helper,helper&""))) в C12

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .