Если кто-то может помочь улучшить название, во что бы то ни стало. Я боролся с этим некоторое время ...

Я использую Excel для анализа списка имен файлов на предмет возможных проблем ... специальных символов, чрезмерной длины и т.д., Прежде чем мы запустим их через скрипт. Прямо сейчас у меня есть столбец для проверки состояния и COUNTIF для подсчета результатов теста.

Рассматривать:

COL A          COL B                                COL C
filename       =IF(LEN($A1)>200,"LONGNAME","")      =COUNTIF(B1:B10000,"LONGNAME")

Я хотел бы упростить это до чего-то, что просто COUNTIF(everythingInColumn, isLong) без необходимости создавать отдельный столбец для проверки того, является ли что-то "длинным" или нет.

Рассматривать:

COL A          COL B                               
filename       =COUNTIF($A,LEN($A>200))

Проблема с вышесказанным состоит в том, что я не вижу ничего, что явно проверяет строку за строкой моего состояния, когда я пытался это сделать, не было никакого неявного теста строка за строкой. я

Это как-то выполнимо, или есть другая функция, чтобы сделать это за один шаг?

3 ответа3

3

Вы должны быть в состоянии использовать формулу массива: введите следующее в C1 и нажмите Ctrl-Shift-Enter:

=SUM(IF(LEN(A1:A10000)>200,1,0))

Вам нужно, чтобы IF преобразовал логическое значение в (0,1), и SUM чтобы посчитать их все. (Вы можете использовать A:A вместо явного номера строки, но это может быть медленнее.)

2

Есть способ, используя SUMPRODUCT чтобы сложить значения, и -- преобразовать True/False в 1/0 .

Уравнение в вашем случае будет:

=SUMPRODUCT(--(LEN(A1:A10000)>200))

и формулы массива не требуется, поскольку sumproduct ожидает массив.

Excel оценивает LEN(A1:A10000)>200 как список из 10000 элементов True/False .
-- изменяет список True/False на список 0/1
SUMPRODUCT складывает все 1 (нет продукта, поскольку мы поставляем только одномерный массив).


Обратите внимание, что этот метод также можно использовать для проверки нескольких критериев и подсчета только тех элементов, для которых оба являются истинными (И) - например, имена файлов, которые имеют букву диска и содержат более 200 символов, можно найти с помощью

=SUMPRODUCT(--(LEN(A1:A10000)>200),--(MID(A1:A10000,2,1)=":"))

Если вам нужно проверить несколько критериев, тогда обе проверки должны быть одинакового размера:

=SUMPRODUCT(--(LEN(A1:A10000)>200),--(MID(A1:A7777,2,1)=":"))

выдаст ошибку

1

=SUM(IF(LEN($A:$A)>200,1,0)) Ctrl + Shft + Enter должны помочь.

Если нет, то также будет работать =SUMPRODUCT(--(LEN($A:$A)>200)) .

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