У меня есть данные в столбце А. Некоторые значения являются датами, а некоторые нет:

Cat
1234
12/25/2016
$123.45
6/10/2016

Я хочу посчитать количество ячеек в столбце, которые содержат даты определенного формата. Я заинтересован в подсчете ячеек, для которых функция листа CELL() возвращает "D4".

Я могу сделать это с помощью вспомогательной колонки; в B1 я ввожу:

=CELL("format",A1)

а затем скопировать вниз. Тогда в другой камере:

=COUNTIF(B:B,"D4")

Я также могу сделать это с VBA UDF:

Public Function DateCounter(rng As Range) As Long
    Dim r As Range
    For Each r In rng
        If IsDate(r) Then DateCounter = DateCounter + 1
    Next r
End Function

Я хотел бы сделать это без VBA и без столбца "помощник".

Что я пробовал это:

=SUMPRODUCT(--(CELL("format",A1:A5)="D4"))

Но это всегда возвращает 0 (либо в виде обычной формулы, либо в виде формулы массива)

1 ответ1

1

CELL() не поддерживает массивы. Это старое и хорошо известное ограничение; Я думаю, что вы ничего не можете сделать, кроме как использовать собственную логику вместо CELL() для проверки формата даты, где вы проверяете косые черты в правильных позициях, действительные номера месяцев и т. Д .; это было бы утомительно, но другого пути нет.

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