Добрый день,
не подскажет ли кто, как решить следующую проблему:
на листе Excel есть колонка дат (A1:A100). Надо подсчитать количество ячеек с заданным годом, например, 2025.
Можно создать рядом дополнительную колонку — "год" с помощью функции ГОД(), а под ней функцией CЧЁТЕСЛИ(B1:B100, 2025) получить результат.
Этот вариант не подходит, так как не хочется заводить дополнительную колонку. Поэтому пытаюсь сделать двумя способами.
Способ 1. С помощью своей функции, которую использовать в ячейке как =CountYear(A1:A100, 2025) :
Function CountYear(range_data As Range, year As Long) As Long
Dim datax As Range
Dim result As Long
CountYear = 0
For Each datax In range_data
result = Application.WorksheetFunction.year(datax) ' тут проблема!!!
If result = year Then
CountYear = CountYear + 1
End If
Next datax
End Function
Проблема в отмеченной строке: я хочу использовать функцию листа ГОД(), но, во-первых, не понимаю, как эту функцию из "русского" Excel записать правильно (по-английски?), а во-вторых, при наборе "WorksheetFunction." среди подсказок к этому объекту методов ГОД() или year() вообще нет. В итоге на этой строке отладчик останавливается, и всё.
Что делать?
Способ 2. С помощью массивов.
В ячейку ввожу формулу =СЧЁТЕСЛИ(ГОД(A1:A100);2025) и нажимаю CTRL-SHIFT-Enter. Выдаёт ошибку в формуле, и не понимаю, что надо исправить.
Буду благодарен за любой совет.