首页 文章

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

提问于
浏览
3

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

一种是确定列(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 回答

  • 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)
           )
    

    还有数组输入 .


    Explanation why AND not working.

    你期望的是 AND({TRUE,FALSE,FALSE},{TRUE,TRUE,FALSE}) 返回 {TRUE,FALSE,FALSE} .

    但是, AND 采用布尔值数组并返回单个布尔值 - 这表示所有值都是 TRUEFALSE .

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

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

相关问题