我试图找到一种简便的方法来计算工作簿中多个工作表上的销售佣金。每个月,我只需要查找指定月份内售出的商品的总净利润。
我当前使用的公式是:
=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$M$3:M24)
我得出的结论是,它只给我#VALUE!错误,因为M列的每一行中都有公式(例如:
=IF(OR(F15=0,G15=0)," ",(F15-L15))
)。当我引用不包含公式的另一列(代替M列)时,它可以正常工作(例如:
=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$G$3:G24)
)。同样,将astrisk更改为逗号会导致公式计算错误,并添加(--(TEXT
double negative不能解决问题。如何在不删除M列公式的情况下获得此数组进行计算?
感谢您的关注。
最佳答案
我认为它给您#VALUE错误,因为您的公式会导致文本(空格),并且在尝试将空格乘以数字(也就是True或False)时会出错。我认为将M列公式更改为=IF(OR(F15=0,G15=0),0,(F15-L15))
会更好。您是否有特定原因不对0
求值?另外,您是否有理由将其转换为文本以进行月/年检查?
试试这样的东西:=SUMPRODUCT(--(MONTH('Sheet Name'!$P$3:P24)=MONTH($G$4)),--(YEAR('Sheet Name'!$P$3:P24)=YEAR($G$4)),'Sheet Name'!$M$3:M24)
。当然,这取决于输入日期作为实际日期。 --
用于将逻辑/ bool(boolean) 值(真/假)更改为1或0。它对文本没有任何帮助。例如,它也应作为=SUMPRODUCT((MONTH('Sheet Name'!$P$3:P24)=MONTH($G$4))*(YEAR('Sheet Name'!$P$3:P24)=YEAR($G$4))*'Sheet Name'!$M$3:M24)
使用,因为乘法会将真实陈述转换为数字。诀窍是确保在其他所有评估结果中,您都有=sumproduct(numbers,numbers,numbers)
。您的实例是=sumproduct(numbers/text)
的一个数组。
关于arrays - Sumproduct公式返回#VALUE!当最后一个数组引用每行中都有公式的列时发生错误。 MS Excel 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214510/