Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   «Как объединить в одной ячейке Excel две формулы? (http://forum.oszone.net/showthread.php?t=355306)

rafka 23-05-2024 21:12 3027528

«Как объединить в одной ячейке Excel две формулы?
 
Имеется 2 разные формулы , хотел бы в одном ячейки объединить их. Не поможете ?

1 формула: =IF(B2;DATE(YEAR(B2)+DATEDIF(B2+1;TODAY();"y")+1;MONTH(B2);DAY(B2))-TODAY();"")
2 формула: =IF(DATEVALUE(DAY(B2:B593)&"."&MONTH(B2:B593)&"."&YEAR(TODAY()))=TODAY();"Текст";"")

yegres 24-05-2024 08:46 3027530

Вот что gpt ответил, попробуй, может поможет ))) :

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

Первая формула проверяет, если в ячейке B2 есть дата, добавляет к этой дате определенное количество лет и сравнивает с сегодняшней датой, возвращая разницу. Вторая формула проверяет, если текущая дата совпадает с любой датой из диапазона B2:B593, и возвращает текст, если это так.

Вот объединённая версия этих формул:

=IF(B2, DATE(YEAR(B2)+DATEDIF(B2+1, TODAY(), "y")+1, MONTH(B2), DAY(B2))-TODAY(), IF(DATEVALUE(DAY(B2:B593)&"."&MONTH(B2:B593)&"."&YEAR(TODAY()))=TODAY(), "Текст", ""))

Объяснение:

IF(B2, ...): Проверяет, есть ли дата в ячейке B2.
Если дата есть, выполняется формула DATE(YEAR(B2)+DATEDIF(B2+1, TODAY(), "y")+1, MONTH(B2), DAY(B2))-TODAY().
Если даты в B2 нет, выполняется вторая часть формулы IF(DATEVALUE(DAY(B2:B593)&"."&MONTH(B2:B593)&"."&YEAR(TODAY()))=TODAY(), "Текст", "").
Однако такая формула не будет работать корректно, так как функции в Excel ограничены работой с массивами в простых IF выражениях. Вместо этого лучше использовать формулу с подходящим диапазоном и подходящими проверками. Например, можно использовать массивные формулы или VBA для более сложных проверок.

Если вы всё же хотите проверить, не совпадает ли текущая дата с датой в любом из диапазонов B2:B593 и выполнить соответствующее действие, возможно, потребуется использовать другую логику или VBA код.

Если диапазон B2:B593 содержит даты, и вам нужно просто проверить, если одна из этих дат совпадает с сегодняшней датой, и если совпадает, то возвращать текст, тогда можно воспользоваться массивными формулами в Excel:

=IF(OR(DATEVALUE(DAY(B2:B593)&"."&MONTH(B2:B593)&"."&YEAR(TODAY()))=TODAY()), "Текст", IF(B2, DATE(YEAR(B2)+DATEDIF(B2+1, TODAY(), "y")+1, MONTH(B2), DAY(B2))-TODAY(), ""))

Эту формулу нужно вводить как массивную формулу, используя Ctrl+Shift+Enter, если вы работаете в версиях Excel до 365, в Excel 365 и выше это можно просто вставить как есть.

bredych 24-05-2024 09:19 3027531

Цитата:

Цитата rafka
хотел бы в одном ячейки объединить их. »

объединить как именно?
что должно быть в результате?
Сумма результатов? Текст в виде 2 просто склеенных строк? Что-либо еще?


Время: 21:45.

Время: 21:45.
© OSzone.net 2001-