我正在尝试创建两个类似的数组公式:
一种是确定列(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 回答
相当于
AND
的数组是乘法*
:使用数组输入(CTRL SHIFT ENTER) .
对于第二个公式:
还有数组输入 .
Explanation why AND not working.
你期望的是
AND({TRUE,FALSE,FALSE},{TRUE,TRUE,FALSE})
返回{TRUE,FALSE,FALSE}
.但是,
AND
采用布尔值数组并返回单个布尔值 - 这表示所有值都是TRUE
或FALSE
.因此,
AND({TRUE,FALSE,FALSE},{TRUE,TRUE,FALSE})
返回FALSE
,因为并非所有值都是TRUE
.但是,乘法
{TRUE,FALSE,FALSE}*{TRUE,TRUE,FALSE}
完全按照您的需要工作 - 它返回{TRUE*TRUE,FALSE*TRUE,FALSE*FALSE} = {TRUE, FALSE, FALSE}