Путем копирования других формул / некоторой помощи на этом форуме / обсуждения этого вопроса мне удалось написать формулу для отчета, который я создал, d, который в основном принимает дату начала и продолжительность записи в строке, а затем возвращает число 0,33 в отдельном столбцы месяца, которые попадают между датой начала и датой окончания.

В зависимости от категории записи строки мне также нужно, чтобы некоторые записи возвращали 0,2 за соответствующие месяцы вместо 0,33. Мне удалось изменить соответствующие части формулы, чтобы сделать это, поэтому я могу вручную скопировать эту формулу в соответствующие ячейки, но в идеале я хотел бы объединить их в одну формулу, которую можно применить ко всему листу, чтобы сделать ее автоматизированной. насколько это возможно. Я пытался объединить их сам, но все, что я пробовал, возвращает ошибку.

Две разные формулы:

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),"")

=IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),"")

В основном, если число в столбце L равно 1, я хочу, чтобы соответствующие столбцы месяца возвращали 0,33, а если число в столбце L равно 3, я хочу, чтобы соответствующие столбцы месяца возвращали 0,2. Если число не 1 или 3, тогда я хочу, чтобы ячейки месяца были пустыми.

Пожалуйста, вы можете помочь мне объединить эти заявления IF ?

Дайте мне знать, если вам нужна дополнительная информация.

1 ответ1

0

Простой подход будет использовать функцию SWITCH .

Похоже, что вы используете $L2 в качестве переключателя в зависимости от того, когда он 1 или 3. Не копаясь в вашей формуле, должно работать следующее:

=SWITCH($L2,1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""))

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

Более классический подход - просто вкладывать операторы if. Вы могли бы прочитать это следующим образом: Если это не 1, проверьте, если это 3, и если это не 3, ничего не делайте.

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),""))

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