Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 实施双标准vlookup替代品(sumproduct或index)的问题_Excel_Sum - Fatal编程技术网

Excel 实施双标准vlookup替代品(sumproduct或index)的问题

Excel 实施双标准vlookup替代品(sumproduct或index)的问题,excel,sum,Excel,Sum,我有两个表的数据,数据和代码。我需要写一个公式,它的功能类似于两个标准的vlookup。我的桌子是这样的: 数据表: Col B ... Col I 01142 589 57834 007 其中,S列是我尝试放置公式的位置,B列和I列中的条目是存储为文本的数字 电子表格: Col A ... Col E ... Col G ... Col J 57834 007 15.50 15.50 45785

我有两个表的数据,数据和代码。我需要写一个公式,它的功能类似于两个标准的vlookup。我的桌子是这样的:

数据表:

Col B  ...  Col I 
01142        589       
57834        007 
其中,S列是我尝试放置公式的位置,B列和I列中的条目是存储为文本的数字

电子表格:

Col A  ...  Col E ... Col G ... Col J
57834       007       15.50     15.50
45785       35893     10.00     10.00
其中A、E和G列中的条目是以文本形式存储的数字,J列中的条目是以数字形式存储的

我正在尝试搜索SpreadCodes表中的行,其中数据列B中的条目等于SpreadCodes列A,数据列I中的条目等于SpreadCodes列E。一旦找到匹配项,我需要它返回SpreadCodes列G或列J中的值。(它们是相同的,除了G存储为文本,J存储为数字,因此无论哪一个都可以工作)

我尝试了几种方法来实现这一点。我在下面尝试的任何方法都不会返回任何结果,除了#NA值

我首先尝试创建一个“helper”列,将两个表中的列连接在一起,然后比较这些值

然后,我尝试使用两个不同的索引/匹配公式(其中一个包含串联):

当这不起作用时,我尝试了sumproduct公式(小心地指定SpreadCodes列J,因为该列是一个数值):

由于这些代码通常有前导零,我将列保留在文本中,这样它们就不会被截断,但即使如此,我也不确定这些公式为什么不起作用。我已经看到这些公式对其他数据起作用。如果有任何想法/想法,我将不胜感激。

sumproduct()适合我

=SUMPRODUCT((SpreadCodes!A1:A100=数据!B1)*(SpreadCodes!E1:E100=数据!I1)*(SpreadCodes!J1:J100))

根据你的数据,我的数据表是这样的

sumproduct()适合我

=SUMPRODUCT((SpreadCodes!A1:A100=数据!B1)*(SpreadCodes!E1:E100=数据!I1)*(SpreadCodes!J1:J100))

根据你的数据,我的数据表是这样的


你能给我们提供一个示例excel文件吗,我想我可以帮你。另外,在你的sumproduct函数中,你将这些函数作为数组函数输入,因此你需要按ctrl+alt+shift+ENTER。sumproduct对我有效
ctrl+shift+ENTER
对于sumproduct公式来说不是必需的(但对于你的索引/匹配版本而言)-这是SUMPRODUCT的优点之一-通常不需要“数组条目”-对于SUMPRODUCT公式,您得到了什么结果?您没有说,是错误还是零或其他什么?您尝试过Sid的版本吗?我注意到您在SUMPRODUCT中使用
Sheet2!C2
作为第一次比较的标准,但您在描述中说它是
列B
?对于索引/匹配版本,您不应该使用7最后,因为索引范围是一个单列,所以语法如下:
=INDEX(SpreadCodes!G2:G202,MATCH(1,(SpreadCodes!A2:A202=B2)*(SpreadCodes!E2:E202=I2),0))
-放入单元格,选择单元格,按F2,然后按住CTRL+SHIFT键并按ENTER键,这样就可以得到像{和}这样的大括号出现在公式周围您能否提供一个excel示例文件,我想我可以帮助您。另外,在sumproduct函数中,您将这些函数作为数组函数输入,因此您需要按ctrl+alt+shift+ENTER键sumproduct对我有效
ctrl+shift+ENTER
对于sumproduct公式来说不是必需的(但它适用于索引/匹配版本)-这是SUMPRODUCT的优点之一-它通常不需要“数组条目”-对于SUMPRODUCT公式,您得到了什么结果?您没有说,是错误还是零或其他什么?您尝试过Sid的版本吗?我注意到您在SUMPRODUCT中使用
Sheet2!C2
作为第一次比较的标准,但您在描述中说它是
列B
?对于索引/匹配版本,您不应该使用7最后,因为索引范围是一个单列,所以语法如下:
=INDEX(SpreadCodes!G2:G202,MATCH(1,(SpreadCodes!A2:A202=B2)*(SpreadCodes!E2:E202=I2),0))
-放入单元格,选择单元格,按F2,然后按住CTRL+SHIFT键并按ENTER键,以便在公式周围出现类似{和}的大括号
=INDEX(SpreadCodes!G2:G202,MATCH(1,(SpreadCodes!A2:A202=B2)*(SpreadCodes!E2:E202=I2),0),7)

=INDEX(SpreadCodes!A1:K202,MATCH(Sheet2!B2&Sheet2!I2,SpreadCodes!A:A&SpreadCodes!E:E,0),7)
=SUMPRODUCT((SpreadCodes!A2:A202=Sheet2!C2)*(SpreadCodes!E2:E202=Sheet2!I2)*(SpreadCodes!J2:J202))