Что я должен использовать для логических значений в формулах, true, "true" или true () - PullRequest
2 голосов
/ 24 августа 2010

При написании формулы для Excel, имеет ли значение, задаете ли вы значение true, "true" или true ()?

Другими словами, что из следующего является лучшим?Или это зависит от обстоятельств?

if (A1 = 1, true, false)

if (A1 = 1, "true", "false")

if (A1 = 1, true(), false())

Ответы [ 3 ]

7 голосов
/ 24 августа 2010

Я бы настоятельно рекомендовал избегать второго метода, так как вы используете строковый литерал.Если вы используете второй метод в ячейке, то позже вам понадобится обратиться к значению второй ячейки, вы не сможете использовать TRUE или TRUE () для сравнения с.

Насколько яЯ знаю, первый или третий метод на самом деле не имеет большого значения.TRUE() - это просто функция Excel, которая возвращает TRUE.

2 голосов
/ 16 июня 2012

Еще лучше было бы просто:

=A1=1

Это помещает ИСТИНА или ЛОЖЬ в ячейку с меньшей сложностью.

1 голос
/ 12 сентября 2017

Попробуйте этот маленький эксперимент.Скопируйте следующие формулы в Excel:

    A       B           C           D
1   TRUE    =NOT(A1)    =A1=TRUE    =A1=FALSE
2   FALSE   =NOT(A2)    =A2=TRUE    =A2=FALSE
3   'true   =NOT(A3)    =A3=TRUE    =A3=FALSE
4   'false  =NOT(A4)    =A4=TRUE    =A4=FALSE

Я думаю, вы будете удивлены результатами:

    A       B       C           D
1   TRUE    FALSE   TRUE    FALSE
2   FALSE   TRUE    FALSE   TRUE
3   true    FALSE   FALSE   FALSE
4   false   TRUE    FALSE   FALSE

NOT() обрабатывает строковые значения 'true и 'falseкак будто это логические значения TRUE и FALSE.Однако = обрабатывает строковые и логические значения как разные.

Для согласованности следует использовать логические литералы, а не строковые значения (опция 1), иначе ваши результаты могут быть неожиданно неверными время от времени (опция2).Нет особого смысла использовать формулы, которые просто возвращают литеральные значения (вариант 3).

...