Excel |索引匹配|
我需要您在以下方面的帮助: 假设我们有3个不同的组:(A,B,C) 我们在每组中有几个值范围:Excel |索引匹配|,excel,vba,indexing,match,Excel,Vba,Indexing,Match,我需要您在以下方面的帮助: 假设我们有3个不同的组:(A,B,C) 我们在每组中有几个值范围: (Eg. A has 0 - 100, 101 - 200 while B has 0 - 200, 201 - 400 and C has 0 - 300, 301 - 600.) 最后,对于属于任何范围的每个组,他们将被分配一个最终编号。 (例如 目前我的索引匹配公式如下: "=INDEX(finalnumber!F2:F29,MATCH(C11&C25,Group!A2:A29&
(Eg. A has 0 - 100, 101 - 200 while B has 0 - 200, 201 - 400 and C has 0 - 300, 301 - 600.)
最后,对于属于任何范围的每个组,他们将被分配一个最终编号。
(例如
目前我的索引匹配公式如下:
"=INDEX(finalnumber!F2:F29,MATCH(C11&C25,Group!A2:A29&valuerange!D2:D29,0))"
我一直收到一个不适用的答复
我还创建了一个数组表,如下所示:
"=INDEX(finalnumber!F2:F29,MATCH(C11&C25,Group!A2:A29&valuerange!D2:D29,0))"
请帮助!非常感谢!我不清楚为什么您需要四个单独的工作表来执行此操作。为了便于演示,我将您的查找表与要查找的值放在同一工作表上
=SUMPRODUCT(I$2:I$7, (G$2:G$7=LEFT(A2))*(--REPLACE(H$2:H$7, FIND(" - ", H$2:H$7), 9, TEXT(,))<=--MID(A2, 3, 9))*
(--REPLACE(H$2:H$7, 1, FIND(" - ", H$2:H$7)+1, TEXT(,))>=--MID(A2, 3, 9)))
=SUMPRODUCT(I$2:I$7,(G$2:G$7=左(A2))*(-REPLACE(H$2:H$7,FIND(“-”,H$2:H$7),9,TEXT(,)=-MID(A2,3,9)))
您可以使用以下内容(您需要根据布局进行调整)。例如,我假设A
和95
在公式中连接单元格进行查找时位于单独的单元格中
=IF(AND(ISERROR(INDEX(OFFSET(INDEX(C:C,H2),,,I2-H2+1,1),MATCH(VLOOKUP(G2,LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,TRUE),LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,0))),INDEX(A:A,COUNTA(A:A)+1)=F2,G2>=1*LEFT(INDEX(B:B,COUNTA(A:A)+1),FIND("-",INDEX(B:B,COUNTA(A:A)+1))-1),G2<=1*RIGHT(INDEX(B:B,COUNTA(A:A)+1),LEN(INDEX(B:B,COUNTA(A:A)+1)) - FIND("-",INDEX(B:B,COUNTA(A:A)+1)))),INDEX(C:C,COUNTA(A:A)+1),INDEX(OFFSET(INDEX(C:C,H2),,,I2-H2+1,1),MATCH(VLOOKUP(G2,LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,TRUE),LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,0)))
(2)I2-2-H2+1,(2)I2-2-2-2+1,1),匹配,匹配,匹配(vlookkup(G2,左(G2,左(偏移(偏移(索引(索引(B:B:B:B:B:B:B,H2,B,B,H2),匹配,匹配,匹配(vlook考考考考考考图(G2,左(G2,左(G2,左(G,左(偏移(偏移(偏移(索引(索引(索引(索引(B:B:B:B:B:B:B:B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,H2,B,B,B,B,B,H2),B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B A(A:A)+1),查找(“-”,索引(B:B,COUNTA(A:A)+1))-1),G2希望此表能够澄清!您的实际数据是什么样子的?您的查找范围应该是一张表,但您有两张被引用的表,这可能是问题的一部分(组!A2:A29&valuerange!D2:D29)@QHarr,是的,我也试过了。仍然会返回一个N/a响应。尝试获取索引/匹配以读取一个范围的值,例如0-100,因此公式可能会这样读:如果输入是组“a”,值是“105”,则最终的数字将给出一个“1.00”的输出提前谢谢!!哇,我不知道你做了什么,但非常感谢你!太好了,我不会想到用这样的替换。还有一个观察,你可以使用sumproduct,因为只有一行可以满足所有条件。很想知道你为什么用文本(,)而不是“”?在vba中编写工作表公式是一种习惯,同时不喜欢在带引号的字符串中使用
“
”。
=IF(AND(ISERROR(INDEX(OFFSET(INDEX(C:C,H2),,,I2-H2+1,1),MATCH(VLOOKUP(G2,LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,TRUE),LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,0))),INDEX(A:A,COUNTA(A:A)+1)=F2,G2>=1*LEFT(INDEX(B:B,COUNTA(A:A)+1),FIND("-",INDEX(B:B,COUNTA(A:A)+1))-1),G2<=1*RIGHT(INDEX(B:B,COUNTA(A:A)+1),LEN(INDEX(B:B,COUNTA(A:A)+1)) - FIND("-",INDEX(B:B,COUNTA(A:A)+1)))),INDEX(C:C,COUNTA(A:A)+1),INDEX(OFFSET(INDEX(C:C,H2),,,I2-H2+1,1),MATCH(VLOOKUP(G2,LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,TRUE),LEFT(OFFSET(INDEX(B:B,H2),,,I2-H2+1,1),FIND("-",OFFSET(INDEX(B:B,H2),,,I2-H2+1,1))-1)*1,0)))