SUMPRODUCT((range={"this";"that"})*(其他条件)) return N/A 如果范围的某些单元格不满足这个或那个
SUMPRODUCT((range={"this";"that"})*(other conditions)) return N/A if some cell of range does not meet this or that
数据集:
A|B
1|a
2|b
3|c
公式:
=SUMPRODUCT((B1:B3={"a";"b"}))
sumproduct return NA 在那里。我不明白为什么。我想要 return 2.
如果我正确地将 c 添加到条件 returns 3.
我缺少什么?
您正在比较水平范围与垂直范围。但是,如果是英文版,您的分隔符是错误的。此外,使用右 ,
作为分隔符,您的比较将 return 范围内的 TRUE
和 FALSE
值。
将您的比较用双重否定包装起来或乘以 1。例如:
=SUMPRODUCT(--(B1:B3={"a","b"}))
或者:
=SUMPRODUCT((B1:B3={"a","b"})*1)
这会将 TRUE
更改为 1
,将 FALSE
更改为 0
,您的 SUMPRODUCT
实际可以求和的值。
关于为什么添加 "c" 会起作用的更全面的解释,由 @Jerry 在我曾经遇到的类似问题中给出,可以找到
您正在将大小为 1x3 的数组与大小为 1x2 的数组进行比较,这是不允许的。 (如果比较两个垂直数组,它们的大小必须相同。这就是为什么在公式中添加 "c"
时问题得到解决的原因。)
您需要将 1x3 数组与 2x1 数组进行比较。
这个表达式:
B1:B3={"a";"b"}
Returns:
{TRUE;TRUE;#N/A}
SUMPRODUCT
无法处理逻辑 (TRUE
/FALSE
) 值,因此您必须加 0、乘以 1 或执行双重否定运算符才能更改为数值数组.
所以...这个:
--(B1:B3={"a";"b"})
Returns:
{1;1;#N/A}
对此执行 SUMPRODUCT
仍然会 return #N/A
因为数组包含 #N/A
.
但是如果你这样做:(注意逗号而不是分号)
B1:B3={"a","b"}
现在你得到:
{TRUE,FALSE;FALSE,TRUE;FALSE,FALSE}
请注意,此 return 是一个 2x3 数组。
执行双重否定运算符,你会得到:
{1,0;0,1;0,0}
现在执行 SUMPRODUCT
将 return 2,如您所料。
您需要的最终公式是:
= SUMPRODUCT(--(B1:B3 = {"a","b"}))
数据集:
A|B
1|a
2|b
3|c
公式:
=SUMPRODUCT((B1:B3={"a";"b"}))
sumproduct return NA 在那里。我不明白为什么。我想要 return 2.
如果我正确地将 c 添加到条件 returns 3.
我缺少什么?
您正在比较水平范围与垂直范围。但是,如果是英文版,您的分隔符是错误的。此外,使用右 ,
作为分隔符,您的比较将 return 范围内的 TRUE
和 FALSE
值。
将您的比较用双重否定包装起来或乘以 1。例如:
=SUMPRODUCT(--(B1:B3={"a","b"}))
或者:
=SUMPRODUCT((B1:B3={"a","b"})*1)
这会将 TRUE
更改为 1
,将 FALSE
更改为 0
,您的 SUMPRODUCT
实际可以求和的值。
关于为什么添加 "c" 会起作用的更全面的解释,由 @Jerry 在我曾经遇到的类似问题中给出,可以找到
您正在将大小为 1x3 的数组与大小为 1x2 的数组进行比较,这是不允许的。 (如果比较两个垂直数组,它们的大小必须相同。这就是为什么在公式中添加 "c"
时问题得到解决的原因。)
您需要将 1x3 数组与 2x1 数组进行比较。
这个表达式:
B1:B3={"a";"b"}
Returns:
{TRUE;TRUE;#N/A}
SUMPRODUCT
无法处理逻辑 (TRUE
/FALSE
) 值,因此您必须加 0、乘以 1 或执行双重否定运算符才能更改为数值数组.
所以...这个:
--(B1:B3={"a";"b"})
Returns:
{1;1;#N/A}
对此执行 SUMPRODUCT
仍然会 return #N/A
因为数组包含 #N/A
.
但是如果你这样做:(注意逗号而不是分号)
B1:B3={"a","b"}
现在你得到:
{TRUE,FALSE;FALSE,TRUE;FALSE,FALSE}
请注意,此 return 是一个 2x3 数组。
执行双重否定运算符,你会得到:
{1,0;0,1;0,0}
现在执行 SUMPRODUCT
将 return 2,如您所料。
您需要的最终公式是:
= SUMPRODUCT(--(B1:B3 = {"a","b"}))