Как создать формулу, которая будет автоматически вычислять конечную дату на основе данных из двух столбцов, причем один столбец содержит текстовую информацию?

Как можно модифицировать формулу, чтобы учесть значение столбца с выпадающим списком при рассчете даты окончания срока годности по исходным данным в виде даты начала и количества дней/месяцев?
Изображение к вопросу
  • 23 декабря 2023 г. 21:57
Ответы на вопрос 2
Для вычисления конечной даты на основе данных из двух столбцов, где один содержит текстовую информацию, можно использовать комбинацию функций "ДАТА" и "СМЕЩЕНИЕ".

Предположим, что столбец A содержит дату начала, столбец B содержит количество дней или месяцев, а столбец C содержит текстовую информацию. Формула будет выглядеть следующим образом:

=ЕСЛИ(C1="дни"; A1 + СМЕЩЕНИЕ(A1; B1; 0); ЕСЛИ(C1="месяцы"; ПРЕДСТАВИТЬ(ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1; ДЕНЬ(A1)); "ДД.ММ.ГГГГ")))

Эта формула сначала проверяет значение в столбце C. Если оно равно "дни", то к дате в столбце A прибавляется значение в столбце B. Если значение в столбце C равно "месяцы", то используется функция ПРЕДСТАВИТЬ для получения правильной даты с учетом количества месяцев в столбце B.

Для учета значения столбца с выпадающим списком при расчете даты окончания срока годности, можно изменить формулу следующим образом:

=ЕСЛИ(C1="дни"; A1 + СМЕЩЕНИЕ(A1; B1; 0); 
 ЕСЛИ(И(C1="месяцы"; B1<12); ПРЕДСТАВИТЬ(ДАТА(ГОД(A1); МЕСЯЦ(A1)+B1; ДЕНЬ(A1)); "ДД.ММ.ГГГГ");
 ЕСЛИ(И(C1="месяцы"; B1>=12); ПРЕДСТАВИТЬ(ДАТА(ГОД(A1)+INT(B1/12); ОСТАТОК(МЕСЯЦ(A1)+B1; 12); ДЕНЬ(A1)); "ДД.ММ.ГГГГ")))

В этой модифицированной формуле добавлено условие для значения столбца B. Если значение меньше 12 месяцев, то используется первый блок формулы. Если же значение равно или больше 12 месяцев, то используется второй блок формулы, где учитывается количество полных лет и остаток месяцев.

Обратите внимание, что в некоторых случаях возможны небольшие погрешности при использовании функций ДАТА и СМЕЩЕНИЕ, связанные с округлением десятичных чисел. Если точность очень важна, рекомендуется использовать другие методы и функции, такие как ФУНКЦИЯ.
Попробуйте так 

=--REGEXEXTRACT(B2;"\d+")+C2

Похожие вопросы