У меня есть 2 столбца Start Date
и End Date?
, и я хочу рассчитать процент от этих дат на основе связанных лет, которые они охватывают, чтобы выделить соответствующий процент для каждого года в их отдельных столбцах.
Мой ожидаемый результат:
Start End Date? Year 1 - 2020 Year 2 - 2021 Year 3 - 2022
1/1/2020 12/30/2022 100% 100% 100%
1/1/2020 6/30/2021 100% 50% 0%
6/1/2021 0% 50% 100%
6/1/2021 6/30/2022 0% 50% 50%
1/1/2021 6/30/2021 0% 50% 0%
100% 100% 100%
Предполагается, что если есть пустая начальная дата, элемент является непрерывным и должен составлять 100% для всех лет, и если есть Если пустая дата окончания, элемент будет составлять 100% каждый год после начала года. Всегда будет пустая дата окончания, если есть пустая дата начала.
В настоящее время я использую очень длинную формулу IFS, сравнивая начальную Column A
и конечную даты Column B
с датами начала и окончания для каждый год Column AP
и Column AQ
соответственно
=IFS(OR(ISBLANK($B8),$B8=AP$1,AND($B8<AP$1,$C8>=AQ$1),AND($B8<AP$1,ISBLANK($C8))),100%,OR($C8<AP$1,$B8>AQ$1),0%,OR(AND($B8>AP$1,$C8>AQ$1),AND($B8>AP$1,$C8<AQ$1),AND($B8>AP$1,ISBLANK($C8)),AND($B8<AP$1,$C8<AQ$1)),(IF($B8<AP$1,DATEDIF(AP$1,$C8,"d")/DATEDIF(AP$1,AQ$1,"d"),DATEDIF($B8,$C8,"d")/DATEDIF(AP$1,AQ$1,"d"))))
Я подошел к построению этой массивной формулы IFS, полагая, что есть три результата на каждый год: 100%, 0% или процентное соотношение между . Первые два под-if, похоже, отлично работают для захвата 100% OR(ISBLANK($B18),$B18=AP$1,AND($B18<AP$1,$C18>=AQ$1),AND($B18<AP$1,ISBLANK($C18))),100%
или 0%
OR($C18<AP$1,$B18>AQ$1),0%
, но часть формулы, которую я построил для захвата промежуточных процентов, похоже, не отражает всех ситуаций, например, если есть пробелы ...
OR(AND($B23>AP$1,$C23>AQ$1),AND($B23>AP$1,$C23<AQ$1),AND($B23>AP$1,ISBLANK($C23)),AND($B23<AP$1,$C23<AQ$1)),(IF($B23<AP$1,DATEDIF(AP$1,$C23,"d")/DATEDIF(AP$1,AQ$1,"d"),DATEDIF($B23,$C23,"d")/DATEDIF(AP$1,AQ$1,"d"))))
Я также чувствую, что должен быть какой-то способ сделать это без до тошноты длинной формулы IFS ...