我正在尝试根据列和行条件计算某个值在数据集中出现的次数。
对于以下数据集,假设数据涵盖 A1 到 E6:
团队 | 克里斯 | 艾米丽 | 丹 | 鲍勃 |
---|---|---|---|---|
工作 1 | 1 | 2 | 3 | 5 |
工作 2 | 3 | 2 | 4 | 4 |
工作 2 | 3 | 2 | 4 | 3 |
工作 2 | 2 | 2 | 1 | 2 |
工作 1 | 4 | 2 | 1 | 1 |
姓名 | Job 2 的数量大于或等于 3 克里斯|
我想创建一个公式,该公式能够查看此数据集以找到对应于 Chris、Job 2 和大于 2 的值的单元格。
有人可以就此提出建议吗?非常感谢您的帮助。
我曾尝试使用 countifs 和 sumproduct 来执行此操作,但通常会出错。我应该得到 2 的值。希望这是有道理的
我的总和示例:=SUMPRODUCT(((A1:A6="Job 2")+(A1:E1="Chris")>0)*(A1:E6=">2"))
COUNTIFS
所做的。=COUNTIFS(A2:A6,"Job 2",INDEX(B2:E6,,MATCH("Chris",B1:E1,0)),">2")
当然,这里最难的部分是想出
INDEX/MATCH
公式。
话虽如此,我更喜欢第一个答案中的解决方案,因为
COUNTIFS
仅适用于范围,因此您不会在帖子的后续部分看到它。
如果您想使用 Microsoft 365 尽情享受它,您可以做类似的事情...
=LET(d,A1:E6,n,"Chris",j,"Job 2",gt,2,
dn,DROP(TAKE(d,1),,1),v,DROP(d,1),
dj,TAKE(v,,1),dv,DROP(v,,1),
i,INDEX(dv,,XMATCH(n,dn)),
IFNA(SUM((dj=j)*(i>gt)),""))
...在这种特殊情况下,这当然是矫枉过正(疯狂)。然而,它是为所有成员创建溢出公式的基础,如下面的屏幕截图所示。
在
G2
=LET(d,A1:E21,j,J2,gt,K2,
dn,TOCOL(DROP(TAKE(d,1),,1)),v,DROP(d,1),
dj,TAKE(v,,1),dv,DROP(v,,1),
HSTACK(dn,MAP(dn,LAMBDA(r,
LET(i,INDEX(dv,,XMATCH(r,dn)),
IFNA(SUM((dj=j)*(i>gt)),""))))))
J2
和 K2
包含下拉菜单,更不用说,如果你把数据放在 Excel 表格中,当你真正杀死它时,所有动态和灵活......虫子还是我瞎了?
BYROW
(而不是MAP
)在这种情况下不起作用,我将不胜感激:它在计数列中显示所有零。在我尝试之前我浪费了很多时间MAP
.