使用嵌套的IF和AND数组公式确定中值

时间:2014-04-11 17:16:36

标签: excel excel-formula

我正在尝试创建两个类似的数组公式:

一个是确定列(B)中单元格的中值,但仅当列J中存在相应的空白值,并且列D中存在数值时(D和J在单独的表中) 。)

另一个公式是做同样的事情,除了它只会确定B中的细胞的中位数,而J列中的相应细胞不是空白。

我应该注意,我确保使用command-shift-enter输入它们,因为它们是数组公式。然而,对于他们两个来说,它都是零。我已经尝试了很长时间,无法弄清楚原因。我是Excel公式的新手,所以如果我要澄清我的问题,请告诉我。

第一个公式:

=MEDIAN(IF(

 AND('Raw Data'!$J$3:'Raw Data'!$J$999="", ISNUMBER('Raw Data'!$D$3:'Raw Data'!$D$999)),

 B$6:B$1002))

第二个公式:

=MEDIAN(IF(

 AND(NOT(ISBLANK('Raw Data'!$J$3:'Raw Data'!$J$999)), ISNUMBER('Raw Data'!$D$3:'Raw Data'!$D$999)),

 B$6:B$1002))

1 个答案:

答案 0 :(得分:5)

等效于AND的数组是乘法*

=MEDIAN(IF(('Raw Data'!$J$3:$J$999="")*
            ISNUMBER('Raw Data'!$D$3:$D$999),
            B$6:B$1002)
       )

带数组条目( CTRL + SHIFT + ENTER )。

第二个公式:

=MEDIAN(IF(NOT(ISBLANK('Raw Data'!$J$3:$J$999))*
           ISNUMBER('Raw Data'!$D$3:$D$999),
           B$6:B$1002)
       )

也有数组录入。


解释AND无效的原因。

您期望AND({TRUE,FALSE,FALSE},{TRUE,TRUE,FALSE})返回{TRUE,FALSE,FALSE}

但是,AND接受布尔值的数组并返回布尔值 - 这表示所有值是否为{{ 1}}或TRUE

因此,FALSE会返回AND({TRUE,FALSE,FALSE},{TRUE,TRUE,FALSE}),因为并非所有值都为FALSE

但是,乘法TRUE完全按照您的需要运行 - 它返回{TRUE,FALSE,FALSE}*{TRUE,TRUE,FALSE}