Issue 101995

Summary: Array Formula; Max/Min Conditional Calculation Error
Product: Calc Reporter: mikegsmith <mike>
Component: codeAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Trivial    
Priority: P3 CC: issues, rb.henschel
Version: OOo 2.4.1Keywords: oooqa
Target Milestone: ---   
Hardware: Unknown   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
Arrays - Max/Min Conditional Calculation Error none

Description mikegsmith 2009-05-16 21:57:41 UTC
Documentation/How Tos/Using Arrays, p. 5 under Tips and Tricks ("Maximum in a
particular month")

Following described formula provides correct result:
 Max(If(Month(B1:B9)=5;C1:C9;0)).
Documentation says that the Min() function would provide the minimum value for
the month. However, following formula does not produce meaningful result:
 Min(If(Month(B1:B9)=5;C1:C9;0))

Small() and Large() functions will work in this instance.
Comment 1 mikegsmith 2009-05-16 22:03:27 UTC
Created attachment 62316 [details]
Arrays - Max/Min Conditional Calculation Error
Comment 2 Regina Henschel 2009-05-17 22:02:21 UTC
In MIN you use
    IF(MONTH(B$10:B$19)=5;C$10:C$19;0)
which sets the result to 0, if MONTH() unequal 5. Therefore the minimum is 0.

In SMALL you use
   IF(MONTH($B$10:$B$19)=5;C$10:C$19)
which is a form with only two parameters. It sets the result to the default
FALSE, if MONTH() unequal 5. Therefore the smallest is 28.

   =MIN(IF(MONTH($B$10:$B$19)=5;C$10:C$19))
will work as
   =SMALL(IF(MONTH($B$10:$B$19)=5;C$10:C$19);1)

But the question is, why FALSE is not evaluated as 0 in array context. I set
this issue to new, so that Eike can look, whether this is conform to ODF spec.