首先感谢回答))(这对我很重要:p)
我在A3中有一个号码。
当A列(Sheet1)中有这个数字时,根据例子A7,它将获取单元格B7的值。
=SOMMEPROD(('Sheet1'!A3:A34=Sheet1!A3)*('Sheet1'!B3:B34))
我使用SOMMEPROD,它只能使用数字,但有时我的单元格中有文字和数字(B栏)。
我已经改变了单元格的格式但是没有用。
非常感谢)))
答案 0 :(得分:0)
我想你是说B栏中的一些值是用文字表示的,而不是数字,可能是因为它们是从另一个来源导入的。
如果是这种情况:首先,将B列转换为数字,然后使用sumproduct。
例如,FIRST将文本转换为值: 在C3中你会输入
=value(b3)
然后将其复制到C3到C34。
然后
=SOMMEPROD(('Sheet1'!A3:A34=Sheet1!A3)*('Sheet1'!C3:C34))
应该有预期的效果。
请注意,您有时会使用"值"来获取#N / A错误功能,例如,如果有意外的空格。为了安全起见,不要仅仅使用价值,试试这个:
= iferror(value(B3),0)
或者更有创意,你可以尝试:
= iferror(value(substitute(B3," ","")),0) ' deletes all spaces
= iferror(value(substitute(substitute(b3,char(160),"")," ","")),0)
'deletes all spaces and "nonbreaking spaces" copied from a web page
答案 1 :(得分:0)
这取决于您尝试使用SumProduct的内容。这个功能出现的原因主要有两个。那些是:
True = 1
和False = 0
,因此当想要在某些单元格中找到蓝狗的总重量时,您的公式可能看起来像=SUMPRODUCT(1*($A$1:$A$50 = "Blue"), 1*($B$1:$B$50 = "Dog"), $C$1:$C$50)
。请注意1*
,它保证公式将知道如何乘以结果。毕竟,True
和False
不会成倍增加。他们的二进制表示(1和0)虽然如此。虽然人们有时也因为第二次使用而将其记为查找公式,因此希望能够获得文本。这样的方法很容易被误解,但实际上你想要使用INDEX(<Result Array>,MATCH(1,INDEX(1 * (FIRST CONDITION) * (SECOND CONDITION) * (AND SO ON),,),0)
。这种方法基本上给你一个没有CTRL-SHIFT-ENTER的数组公式(它不是更快,但因为条件在索引公式中,它可以工作),你的条件可以是任意的(与sumproduct相同)。但它会给你第一个结果,而不是所有结果的总和。
希望有所帮助。
修改:我想到了,您可能希望A1
包含Erp
和B1
以包含54
,并希望C1
包含Erp54
&
1}}。这甚至不需要函数 - 只有C1
运算符,它将两个字符串连接在一起 - 所以在=A1 & B1
中,您只需要{{1}}。你已经完成了。