2.4

change the second bullet to:

"There need not be a distinguishable Logical type. Applications may have a Logical type distinct from both Number and Text (see 8.2 Distinct Logical), but Logical values may also be represented by the Number type using the values 1 (True) and 0 (False). This means that functions that take number sequences (such as SUM) may but need not include true and false values in the sequence."

by inserting "and Text" and "8.2"

4.3.7 Logical (Number)

change this section to:

Applications may have a Logical type distinct from both Number and Text (see 4.5 Logical (Boolean)), but Logical values may also be represented by the Number type using the values 1 (True) and 0 (False). (see 8.2 Distinct Logical for details)

4.5 Logical (Boolean)

change this section to:

Applications may have a Logical type distinct from both Number and Text, but Logical values may also be represented by the Number type using the values 1 (True) and 0 (False) (see 4.3.7 Logical (Number)). (see 8.2 Distinct Logical for details)

8.2 Distinct Logical

change this section to:

Applications may have a Logical type distinct from both Number and Text (see 4.5 Logical (Boolean)), but Logical values may also be represented by the Number type using the values 1 (True) and 0 (False) (see 4.3.7 Logical (Number)).

In this standard, we are using TRUE to represent the logical value (true) and FALSE to represent the logical value (false), independent from the concrete representation used by the evaluator.

For an evaluator that represents Logical values using the Number type with values 1 (TRUE) and 0 (FALSE):

● For the implicit conversion operator “Convert to Logical” 6.3.12, when a Number is passed as a condition, 0 is considered FALSE and all other numeric values are considered TRUE.

An evaluator that has a Logical type distinct from both Number and Text shall have the following properties:

● ISNUMBER() applied to a Logical value (constant or calculated) will return FALSE, and ISLOGICAL() applied to a Number will be FALSE, either directly or via a reference.

● TRUE will not be equal to 1, and FALSE will not be equal to 0, when they are compared using “=”.

● In a NumberSequence (such as when using SUM), Logical values are skipped when inside a range, but are included and automatically converted to a Number if provided as the NumberSequence itself.