Если оператор дает слишком много аргументов, ошибка - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть формула Excel, где я должен получить разницу дней между двумя столбцами, которые имеют дату день / месяц / год. Формула работает нормально, пока в столбце различий не встречается пустая дата в одной из двух;в основном, если один из столбцов с двумя датами пуст, формула отображает странные числа, например 344440.

Я хотел решить мою проблему с помощью оператора if, который прекрасно работает для одного столбца (столбец S, один из столбцов с датами(может быть пустым), но выдает мне всевозможные ошибки, когда я пытаюсь ввести этот столбец Q, также может иметь пустую ячейку (другой столбец даты).

Спасибо, ребята.

Итакдалеко я пробовал:

=IF(S14= "","",IF(Q14 = "","",NETWORKDAYS(Q14,S14)),NETWORKDAYS(Q14,S14)) 

или

=IF(S14="","",NETWORKDAYS(Q14,S14), AND(Q14="","",NETWORKDAYS(Q14,S14)))

Также пробовал iferror / ifna, пока не повезло.

1 Ответ

1 голос
/ 07 ноября 2019

Оператор IF следует этому общему шаблону:

=IF(CONDITION, VALUE TO OUTPUT IF CONDITION IS TRUE, VALUE TO OUTPUT IF CONDITION IS FALSE)

Я бы порекомендовал использовать оператор OR для упрощения формулы следующим образом:

=IF(OR(S14="",Q14=""),"",NETWORKDAYS(Q14,S14))

В основном,OR сначала проверяет, являются ли одна или обе соответствующие ячейки пустыми, и выдает пустую строку, если это так. Если у обеих ячеек есть значения, он вычислит NETWORKDAYS.

Ваша первая формула также будет работать, вам просто нужно удалить последний аргумент:

=IF(S14="","",IF(Q14="","",NETWORKDAYS(Q14,S14)))
...