Функция листа ГОД(): как вызвать из кода или использовать в формуле массива?
От: ali2  
Дата: 20.08.23 10:00
Оценка:
Добрый день,
не подскажет ли кто, как решить следующую проблему:
на листе 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. Выдаёт ошибку в формуле, и не понимаю, что надо исправить.

Буду благодарен за любой совет.
vba excel
Re: Функция листа ГОД(): как вызвать из кода или использовать в формуле массива?
От: s_aa Россия  
Дата: 20.08.23 10:44
Оценка:
A>Буду благодарен за любой сове
здесь
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re[2]: Функция листа ГОД(): как вызвать из кода или использовать в формуле масси
От: ali2  
Дата: 20.08.23 14:14
Оценка:
Здравствуйте, s_aa,

спасибо, способ 1 сработал!

Теперь у меня осталась вторая половина вопроса — что неправильно в формуле массива?
Для удобства повторю. В колонке A1:A100 — даты. Нужно узнать количество ячеек с заданным годом (2025).
Ввожу в ячейку =СЧЁТЕСЛИ(ГОД(A1:A100);2025) и нажимаю CTRL-SHIFT-Enter. Получаю сообщение "Неверная формула".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.