0

我试图找到一种简单的方法来计算工作簿中多张工作表上的销售佣金。每个月,我都需要找出在指定月份内仅售出的商品的总净利润。

我目前使用的公式是:

=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$M$3:M24)
  • P 列显示销售日期,
  • M 列的每一行都包含一个计算净利润的公式,以及
  • 单元格 G4 是我输入当前正在使用的月份和年份的地方。

我得出的结论是它只给了我#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)。此外,将星号更改为逗号会导致公式计算错误并添加(--(TEXT双重否定并不能解决问题。

如何在不从 M 列中删除公式的情况下计算该数组?

感谢您的关注。

4

1 回答 1

0

我认为它会给您一个#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)。当然,这取决于输入日期作为实际日期。用于将--逻辑/布尔值(真/假)更改为 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).

于 2013-03-05T02:56:30.397 回答