Общее количество вхождений одной цифры из строки цифр в диапазоне ячеек в столбце - PullRequest
0 голосов
/ 29 ноября 2018

Нам нужно посчитать, сколько вхождений каждого числа в ячейке в диапазоне ячеек в одном и том же столбце, и вывести подсчет итогов для каждого числа.Смотрите прикрепленное изображение и желаемый результат в столбце рядом с ним.Мы пробовали другие формулы, найденные в Интернете как в Excel, так и в открытом офисе, но безрезультатно.

Количество букв

Рабочий счет

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Опция 1

Формула одного массива (ctrl + shift + enter!), Которая будет работать для строк с максимальной длиной [5] буквенно-цифровых символов (но вы можете легко изменитьформулу, добавив несколько чисел в жестко запрограммированную константу массива {1,2,3,4,5}):
{=SUM(N(MID($A$1:$A$500,{1,2,3,4,5},1)=TEXT(C3,"#")))}

Вы можете добавить еще один прием, чтобы Excel определил константу массива, поэтому формула будет работать длялюбая длина строки цифр:
{=SUM(N(MID($A$1:$A$500, COLUMN(INDIRECT("A1:"&CHAR(65+MAX(LEN($A$1:$A$500)))&"1")) ,1)=TEXT(C3,"#")))}

Часть посередине (COLUMN()) создает массив {1,2,3,4,5}.Возможно, вы видели другие версии этой формулы, без CHAR, который я использую для создания ссылки, например, на ячейку E1 (зная, что 65 - это код для «A»).

.

Опция 2

Эта формула массива (ctrl + shift + enter!) Работает во всех версиях Excel, но не очень «элегантна», так как вам приходится повторятьключевая часть формулы - столько раз, сколько максимальное количество цифр у вас в ячейках (в данном примере это максимум 3 символа):
{=SUM( N(MID($A$1:$A$500;1;1)=TEXT(C3;"#"))+ N(MID($A$1:$A$500;2;1)=TEXT(C3;"#"))+ N(MID($A$1:$A$500;3;1)=TEXT(C3;"#")) )}

Подсчитываемый вами символ находится в C3.Это будет работать для цифр и букв.Если у вас может быть пять буквенно-цифровых символов, вам нужно добавить еще две N(...) части и заменить второй параметр функции MID на 4 и 5 соответственно.

0 голосов
/ 29 ноября 2018

Попробуйте следующую формулу в D1:

=LEN(TEXTJOIN("",TRUE,A:A,"@"))-LEN(SUBSTITUTE(TEXTJOIN("",TRUE,A:A,"@"),C1,""))

и заполните вниз.

(вам потребуется 2016 или более поздняя версия для TEXTJOIN)

...