Excel: подсчет нескольких символов по ячейке в диапазоне - PullRequest
1 голос
/ 11 марта 2020

У меня есть диапазон как A: A, так как количество записей изменяется. Этот диапазон содержит «x» в каждой ячейке, что соответствует тому, сколько проектов было завершено за это время. Следовательно, одна ячейка может быть введена как «x», «xxx» или «xxx». Мне нужно количество вхождений "х" или "Х" по этому вопросу.

Моя текущая формула =COUNTIFS(A:A,"x*",I:I,"Weekly*") Я пытался изменить эту формулу, но не могу получить правильный результат, так как некоторые ячейки содержат более одного "x". Спасибо.

Ответы [ 3 ]

2 голосов
/ 11 марта 2020
=SUM(LEN(A:A)-LEN(SUBSTITUTE(SUBSTITUTE(A:A,"x",""),"X","")))

Замените x & X пустым значением, а затем посчитайте и сложите разницу. В зависимости от вашей версии Excel, вам может потребоваться подтвердить формулу с помощью CTRL + SHIFT + ENTER


Редактировать

Более понятным способом обработки значений в нижнем и верхнем регистре будет преобразование всей строки в верхний регистр, а затем только замена значений в верхнем регистре (X)

=SUM(LEN(A:A)-LEN(SUBSTITUTE(UPPER(A1),"X","")))
0 голосов
/ 11 марта 2020

я использую вспомогательный столбец. Измените и попробуйте следующее:

Формула в столбце помощника:

=LEN(A2)-LEN(SUBSTITUTE(UPPER(A2),"X",""))

Формула для получения суммы:

=SUMIF($B$2:$B$8,"Weekly*",$C$2:$C$8)

enter image description here

0 голосов
/ 11 марта 2020

Если предположить, что столбец A только содержит "X" и никаких других данных, то самый простой способ - , если у вас Office-365 или Office-2019 - использовать Concat, чтобы превратить столбец в 1 гигантскую строку, а затем сосчитать длину:

=LEN(CONCAT(A:A))

Если у вас нет Office-365 или Office-2019, то вы не можете используйте функцию Concat - поэтому вам нужно использовать формулу массива для добавления длин:

=SUMPRODUCT(LEN(A:A))

(Использование SUMPRODUCT вместо SUM означает, что мы можем нажать Введите как обычную формулу, и все, что внутри SUMPRODUCT, обрабатывается как формула массива, вместо необходимости нажимать Ctrl + Shift + Enter )

Как указал БигБен, вы сказали, что иногда там есть пробелы. У вас есть 2 способа справиться с этим: либо SUBSTUTUTE из пробелов, либо SUBSTITUTE из X и взять разницу

=LEN(SUBSTITUTE(CONCAT(A:A)," ",""))
=SUMPRODUCT(LEN(SUBSTITUTE(A:A," ","")))
'OR
=LEN(CONCAT(A:A)) - LEN(SUBSTITUTE(LOWER(CONCAT(A:A)),"x",""))
=SUMPRODUCT(LEN(A1:A4))-SUMPRODUCT(LEN(SUBSTITUTE(LOWER(A1:A4),"x","")))

(необходим LOWER, потому что SUBSTITUTE С учетом регистра: =SUBSTITUTE("|XxX|","x") дает |XX|, а не ||)

...