第1部分:
我能够构建一个公式,不正是我想要的(一些例子),不过不失,我无法弄清楚它究竟是如何工作的。 我有,从单元格A1:
Price $
table 20
chair 10
Invoice Quantity
table 17
chair 1
chair 2
table 3
我想要针对其计算为数量*价格为每个项目(17 * 20 + 1 * 10 + 2×10 + 3 * 20)发票最终总(430)是。 下式正确地执行此操作:
=SUMPRODUCT(B6:B9,SUMIF(A2:A3,A6:A9,B2:B3))
我明白SUMPRODUCT和SUMIF的基础知识。 但在这里,我对SUMIF的范围说法是A2:A3,这使我想起了SUMIF将通过A2和A3,而不是遍历A8:A11(这是标准)。 是什么赋予了?
编辑:不清楚的部分是,究竟SUMIF做什么(什么是它的迭代模式)时,前两个参数是不同的尺寸(在这里,范围为2个细胞,而标准是4个细胞)。 此外,什么是SUMIF的“输出”? 数组? 什么尺寸?
第2部分:
另外,如果我忽略的数量,只是想增加20,每当我看见一张桌子和10,每当我看到一个椅子上,我想我会做的事:
=SUMIF(A2:A3,A6:A9,B2:B3)
但是,这并不工作,我有一个SUMPRODUCT(),它的工作和正确评估到60的SUM内围护它是(可能是因为SUMIF不返回数组不起作用包围呢? )为什么?
我读了一堆教程,但还是无法理解这一点,将不胜感激。对于这两种情况下,一个清晰,直观的解释。 谢谢。
SUMIF
可产生结果的数组。 如果你把我的公式
=SUMIF(A6:A9,A2:A3,B6:B9)
它说
对于A2(即表)的标准 - 看看A6:A9
- 在表匹配时,在B6求和相应值:B9
- 返回20(即17 0 0 3)
- 这被存储在所述阵列的所述第一位置
然后在A3的标准(即,椅子)
- 看A6:A9
- 在表匹配时,在B6求和相应值:B9
- 返回3(即0 1 2 0)
- 这被存储在阵列的第二位置
因此,从端部阵列SUMIF
为{20:3}
您可以通过突出显示在Excel的公式栏中SUMIF公式,然后按F9看到数组结果
然后使用SUMPRODUCT
多个计数在SUMIF
由$值B2:B3拿到总美元
= {20; 3} * {20:10}
= 20 * 20 + 3 * 10
= 430
第1部分
而不是
SUMIF(A2:A3,A6:A9,B2:B3)
其产生的一个四个元件阵列
= {20; 10; 10; 20}
(对应于表;椅子;椅子;表)
您应该使用
SUMIF(A6:A9,A2:A3,B6:B9)
其总结在B6的价值观:对你的两个标准B9在A2:A3得到所需要的结果
= {20; 3}
(对应于表;椅子)
然后使用SUMPRODUCT
加权您的阵列,即, =SUMPRODUCT(SUMIF(A6:A9,A2:A3,B6:B9),B2:B3)
= {20; 3} * {20:10}
= 430
第2部分
使用COUNTIF
通过使用瓦莱斯乘返回桌椅的数量的数组,然后SUMPRODUCT
=SUMPRODUCT(B2:B3,COUNTIF(A6:A9,A2:A3))
= {20; 10} * {2; 2}
= 60
那么你只需要一个小的失误:
可能是因为SUMIF不返回数组?
SUMIF可以使用数组,这就是为什么你式SUMPRODUCT(SUMIF())在第一个地方工作,以SUMIF显示阵列必须选择一组细胞(例如C6:C9)输入的公式,使用CTRL + SHIFT + ENTER而不是只ENTER键。 这产生“阵列fomula”,由大括号{}标识(那些只能与CTRL + SHIFT输入+ Enter,没有manualy),并显示该阵列式和结果