EXCEL中,我想输入表达式=SUMPRODUCT({A1>B1;A1=B1;A1<B1}*{1;2;3}...

发布网友 发布时间:2024-10-24 04:29

我来回答

4个回答

热心网友 时间:2024-10-24 11:55

错误的原图是常量数组中不能使用单元格地址,建议改用其它公式。如
=(A1>B1)*1+(A1=B1)*2+(A1<B1)*3

=--TEXT(A1-B1,"1;3;2")
如果用SUMPRODUCT,可将下面三个表达式放在单元格中,再用公式引用单元格区域,如
C1输入:=A1>B1
C2输入:=A1=B1
C3输入:=A1<B1
统计公式:=SUMPRODUCT(C1:C3*{1;2;3})

热心网友 时间:2024-10-24 12:00

{A1>B1;A1=B1;A1<B1}
这样的写法是错误的,大括号形式的数组只能为具体的数据,不能为引用或公式
简单点方法
=2-SIGN(A1-B1)
如果一定要用sumproduct
=sumproduct(choose({1,2,3},A1>B1,A1=B1,A1<B1)*{1,2,3})
这样有意义吗?

热心网友 时间:2024-10-24 11:52

你是想实现什么结果啊,我实在没研究明白。再陈情下!

热心网友 时间:2024-10-24 11:54

建议你用F9查看这个公式运行的基理。

那这个公式来说:
=SUMPRODUCT(1/COUNTIF(A1:A100,A1:A100))
先说COUNTIF函数部分:

我为了描述方便,把范围缩小下。
=SUMPRODUCT(1/COUNTIF(A1:A5,A1:A5))

COUNTIF(A1:A5,A1:A5)
这部分统计的是对A1:A5范围内,A1单元格内数据重复了多少个,A2…重复…,A3……,……。COUNTIF统计的结果是1列5行的内存数组。
想想看,要是A1重复了2次,那么统计的结果就是2,要是A1没重复,那么就是1。现在假设A1到A5这组数据为
1
2
3
2
1
那么A1到A5分别重复了:2 2 1 2 2
COUNTAIF的结果用F9你势必会看到:

再看整体函数
=SUMPRODUCT(1/COUNTIF(A1:A5,A1:A5))
1/=
SUMPRODUCT的结果是3!

好象解释的很糟糕。
公式是巧妙的借用了数据重复次数为N,那么N*1/N=1。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com