База Знаний: Функции Calc. Краткий обзор логических значений
В InfraOffice.pro Calc, логические значения представлены числами: 0 — FALSE, и 1 — TRUE. Введя в ячейку 1, и, затем (выполнив Формат → Ячейки...), выбрав формат «Логический», можно отобразить число в виде ИСТИНА (TRUE).
Любая функция Calc, возвращающая логический результат, фактически возвращает число 0 или 1. Любая формула ячейки Calc, возвращающая логический результат, говорит ячейке показывать ЛОЖЬ (FALSE) или ИСТИНА (TRUE) — если ячейка имеет формат по умолчанию (общий). Например =TRUE() возвращает значение 1, которое отображается как ИСТИНА; если изменить формат на числовой, она отобразится как 1.
Любая функция Calc, выполняющая проверку на логический результат, фактически проверяет, что значение оценивается как число 0. 0 воспринимается как FALSE, а что-либо ещё воспринимается как TRUE.
Например, когда ячейка A1 содержит «яблоко», NOT(A1) возвращается TRUE, потому что «яблоко» оценивается как 0 = FALSE.
Другой пример: NOT(57) возвращает FALSE, потому что 57 оценивается как TRUE.
MS Excel, в противоположность, имеет отдельный тип для логических значений — они не числа, но иногда преобразуются к числам. Поэтому, если необходима совместимость:
- В MS Excel функции, подобные SUM и AVERAGE, игнорируют логические значения; в Calc они — числа и поэтому учитываются. Это вряд ли вызовет трудности, потому что обычно не предполагается складывать логические значения.
- В Calc SUMPRODUCT(A1:A6=“красный”; B1:B6=“большой”), подсчитывает число больших красных элементов. В MS Excel логические результаты, возвращаемые A1:A6=“красный” и B1:B6=“большой” игнорируются функцией SUMPRODUCT; логические значения преобразуются, если ожидается число, таким образом
SUMPRODUCT(1*(A1:A6=“красный”); 1*(B1:B6=“большой”)),
SUMPRODUCT(0+(A1:A6=“красный”); 0+(B1:B6=“большой”)),
SUMPRODUCT(-(A1:A6=“красный”); -(B1:B6=“большой”)) или
SUMPRODUCT((A1:A6=“красный”)*(B1:B6=“большой”)) все работают в обеих электронных таблицах.