我正在尝试创建两个类似的数组公式:
一个是确定列(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))
答案 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}