Я начал работать с переводами WEEKNUM, переходом на календарный год и т.д., А затем понял, что есть еще один простой и понятный подход:
Колонка А это ваши даты. Колонка B - ваша неделя финансового года. Первый день финансового года (1 февраля) вводится в A2 в качестве контрольной даты, и он всегда будет на неделе 1, поэтому его можно жестко запрограммировать в B2.
Формула для последующих дат может быть скопирована из B3, которая будет:
=CEILING((WEEKDAY(A$2)+A3-A$2)/7,1)
объяснение
Это зависит только от разницы между датой транзакции и днем 1 финансового года и тем фактом, что недели содержат 7 дней. Функция WEEKDAY определяет, в какой день недели начинается финансовый год, а разность дат и функция CEILING обрабатывают дробные недельные разницы в зависимости от дня недели, на которую приходится транзакция.
Нет необходимости включать проверку ошибок для дат после 31 января следующего календарного года, поскольку вы можете контролировать ввод даты транзакции.
______
Решение без справочной даты
Если вы не хотите вводить первый день финансового года, вы можете получить его из даты транзакции. Например, в B3 вместо ссылки на ячейку A $ 2 вы можете использовать:
DATE(YEAR(A3)-IF(MONTH(A3)=1,1,0),2,1)
Это определяет финансовый год с даты транзакции и преобразует ее в 1 февраля того же года. Простая формула в исходном решении станет:
=CEILING((WEEKDAY(DATE(YEAR(A3)-IF(MONTH(A3)=1,1,0),2,1))+A3-DATE(YEAR(A3)-IF(MONTH(A3)=1,1,0),2,1))/7,1)