Использование IF в ArrayFormula в Google Sheets для проверки значений в каждом столбце, а не только в конкретном столбце - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь использовать ARRAYFORMULA() в Google Sheets для автоматического применения формулы при вводе новой строки.Я хочу проверить, находится ли сегодняшний день между двумя датами (дата начала и окончания) или нет.Моя формула:

=arrayformula(if(isblank(A2:A), "", if(and(today() >= B2, today() <= D2), "On Leave", "Available")))

Эта формула продолжает проверку по B2 и D2 для всех вставленных строк, поэтому я попробовал это:

=arrayformula(if(isblank(A2:A), "", if(and(today() >= B2:B, today() <= D2:D), "On Leave", "Available")))

Эта вторая формула проверяет все значения в столбце Bи столбец D для каждой строки, в отличие от проверки соответствующего значения в столбце B и столбце D для этой конкретной строки, например строки 3: B3, D3;строка 4: B4, D4 и т. д.

Могу ли я в любом случае получить желаемое поведение?Я приложил скриншот моего листа.

Google Sheet Screenshot

При правильной формуле Брюс Ли не будет в отпуске.

1 Ответ

0 голосов
/ 26 августа 2018

В формуле массива вам нужно использовать * (умножить) вместо AND, чтобы получить желаемое поведение:

=arrayformula(if(isblank(A2:A), "", if((today() >= B2:B)*( today() <= D2:D), "On Leave", "Available")))
...