尝试创建一个Excel工作表,该工作表将使用excel公式执行特定求和。条件如下。
因此
John = 500 + 20 + 30
Mary = 125 + 50 + 45 (20 does not get added because Extract is N)
Tom = 20 + 10
我目前的公式是
=VLOOKUP($F2,$A:$D, 2) + SUMIFS($C:$C,$A:$A,$F2,$D:$D,"Y")
有没有更好的方式或更简洁的方式来做这个而不是两个单独的功能?
谢谢。
答案 0 :(得分:0)
尝试根据唯一值获得总和和计数通常非常繁琐。你的方法实际上是一种非常有效的方法,只为每个名称提取一个值,并将SUMIF分成一个单独的函数,结果比你试图将两者结合起来更优雅。
我建议的唯一改进,除非您绝对100%确定您的数据集将始终按字母顺序按名称排序,并且始终包含您要搜索的名称,即更改VLOOKUP要搜索完全匹配,以防止它意外返回不同名称的金额:
=VLOOKUP($F2,$A:$D,2,0) + SUMIFS($C:$C,$A:$A,$F2,$D:$D,"Y")
如果你有一个非常大的数据集,并且使用完全匹配的VLOOKUP会遇到性能问题,那么你可以使用double vlookup公式加快速度(请注意,这仍然要求数据按名称排序,但它处理您在数据中不存在的名称问题:
=IF(VLOOKUP($F2,$A:$D,2)=$F2,VLOOKUP($F2,$A:$D,2)) + SUMIFS($C:$C,$A:$A,$F2,$D:$D,"Y")