Arrays Sumproduct公式返回一个#值!最后一个数组引用每行都包含公式的列时出错。MS Excel 2010

Arrays Sumproduct公式返回一个#值!最后一个数组引用每行都包含公式的列时出错。MS Excel 2010,arrays,error-handling,excel-formula,excel-2010,array-formulas,Arrays,Error Handling,Excel Formula,Excel 2010,Array Formulas,我试图找到一种简单的方法,在一个工作簿中的多张工作表上计算销售佣金。每个月,我只需要找到指定月份内销售的商品的总净利润 我目前使用的公式是: =SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$M$3:M24) 第P列显示销售日期 M列每行包含计算净利润的公式,以及 单元格G4是我输入当前工作月份和年份的位置 我得出的结论是,它只给了我#价值!由于M列每行中的公式而导致错误(例如:=IF(

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

我目前使用的公式是:

=SUMPRODUCT((TEXT('Sheet Name'!$P$3:P24,"MY")=TEXT($G$4,"MY"))*'Sheet Name'!$M$3:M24)
  • 第P列显示销售日期
  • M列每行包含计算净利润的公式,以及
  • 单元格G4是我输入当前工作月份和年份的位置
我得出的结论是,它只给了我#价值!由于M列每行中的公式而导致错误(例如:
=IF(或(F15=0,G15=0),“”,(F15-L15))

当我引用一个不包含公式的不同列(代替M列)时,它可以正常工作(例如:
=SUMPRODUCT((TEXT('Sheet Name')!$p$3:P24,“MY”)=TEXT($G$4,“MY”)*“Sheet Name”!$G$3:G24)
)。此外,将astrick更改为逗号会导致公式计算错误,并添加
(-(TEXT
双负数)不会解决此问题

如何在不删除M列公式的情况下计算此数组


谢谢您的关注。

我认为这会给您一个#值错误,因为您的公式会产生文本(空格),并且在尝试将空格乘以数字时会出错(也称为真或假)。我认为您最好将M列公式更改为
=IF(或(F15=0,G15=0),0,(F15-L15))
。您是否有特定原因不将其评估为
0
?是否也有原因将其转换为文本以进行月度/年度检查


试着这样做:
=SUMPRODUCT(--(月('Sheet Name'!$p$3:P24)=月($G$4)),--(年('Sheet Name'!$p$3:P24)=年($G$4)),'Sheet Name'!$M$3:M24)
。当然,这取决于将日期输入为实际日期。
-
用于更改逻辑/布尔值(真/假)输入1或0。它不会对文本做任何有用的操作。例如,它还应该用作
=SUMPRODUCT((月('Sheet Name'!$P$3:P24)=月($G$4))*(年('Sheet Name'!$P$3:P24)=年($G$4))*'Sheet Name'!$M$3:M24)
因为乘法将真实的语句转换为数字。诀窍是确保当其他所有内容都计算时,您有
=sumproduct(数字、数字、数字)
。您的实例是
=sumproduct(数字/文本)

的一个数组,我确实希望M列中的单元格显示为空白,直到售价(F栏)和商品成本(G栏)是有价值的。不过,我很欣赏这个建议。
=SUMPRODUCT(-(月('Sheet Name'!$P$3:P24)=月($G$4)),-(年('Sheet Name'!$P$3:P24)=年($G$4)),'Sheet Name'!$M$3:M24)
是一个对我有效且计算正确的公式。我确实有预感,导致文本的公式就是问题所在,但我不是100%,在收到你的建议之前,我不知道更好的编写方法。我真的很感谢你的帮助!所以你只需要在M列中用空白成本解决这个问题?我相信e
=IF(或(F15=0,G15=0),“”,(F15-L15))
可以工作,但我还没有测试它。是的,M列很好。非常感谢您的帮助!!(很抱歉我没有早点接受…我是新来的。)