我收到参考错误,我不理解其背后的逻辑。任何人都可以帮助我。在此先感谢!
表格1:
SKU Reference Type PP_1 PP_2
A A X 61.99 17.9975
A A-A Y 56.99
A A-S Y 56.99
B B X 68.99 19.7475
B B-A Y 68.99
表格2:
SKU Reference Type PP_3
A A X 17.9975
A A-A Y #REF
A A-S Y #REF
B B X 19.7475
B B-A Y #REF
OUTPUT_REQUIRED:
SKU Reference Type PP_3
A A X 17.9975
A A-A Y 56.99
A A-S Y 56.99
B B X 19.7475
B B-A Y 68.99
我尝试过的配方奶粉
=INDEX(Sheet1!D:E,MATCH(A5,Sheet1!A:A,0),MATCH(C5,{"X"," ","Y"},0)+AND(VLOOKUP(A5,Sheet1!A:C,3,FALSE)="X"))
答案 0 :(得分:0)
在D2 sheet2中,您可以放置
=IFERROR(IF(C2="Y",VLOOKUP(B2,Sheet1!$B$2:$E$6,3,FALSE),VLOOKUP(B2,Sheet1!$B$2:$E$6,4,FALSE)),"")
然后填写
答案 1 :(得分:0)
在公式=INDEX(Sheet1!D:E,MATCH(A5,Sheet1!A:A,0),MATCH(C5,{"X"," ","Y"},0)+AND(VLOOKUP(A5,Sheet1!A:C,3,FALSE)="X"))
中,您的第一个INDEX正在查找两列宽(D和E)的数组(如果需要,可以是范围或矩阵)。但是,用于列号{"X"," ","Y"}
的MATCH数组将为 X 提供 1 ,为提供 2 空格和 3 表示 Y 。看来您的 #REF 错误是由于在两列宽的数组中查找第3列而来的,这就是为什么只在Y项目上出现 #REF 错误的原因。请尝试:
=INDEX(Sheet1!D:E,MATCH(A5,Sheet1!A:A,0),MATCH(C5,{"X","Y"},0)+AND(VLOOKUP(A5,Sheet1!A:C,3,FALSE)="X"))
答案 2 :(得分:0)
我真的不明白您的公式,但是我认为这可以为您提供所需的信息:
=INDEX(Sheet1!D:E,ROW(),MATCH(Sheet1!C2,{"Y","X"},0))
由于您似乎已经将值从Sheet1复制到当前工作表中,因此可以将其缩短为:
=INDEX(D:E,ROW(),MATCH(C2,{"Y","X"},0))
我将其放在单元格D2中,然后将其复制到列中,为我提供以下内容:
17.9975
56.99
56.99
19.7475
68.99
特别是,这部分使我与您的原始公式相混淆:
+ AND(VLOOKUP(A2,Sheet1!A:C,3,FALSE)=“ X”)
这是被添加到列中的TRUE / FALSE值。它在第一列中查找值,然后在列C中返回第一个值。A的第一个实例是第2行,B的第一个实例是第5行,因此对于所有带有“ A”的行,它都返回“ X” (即从第2行开始)和所有带有“ B”的行(即从第5行开始)为“ X”。由于它始终为TRUE,因此我摆脱了这一点,您可以通过加1来实现相同的目的。>
这部分我也很困惑:
MATCH(C2,{"X"," ","Y"},0)
对于“ X”返回1,对于“”返回2,对于“ Y”返回3。我认为您想将“ X”的第2列和“ Y”的第1列,如果C列为空白,我不知道要返回哪一个。我将其更改为:
MATCH(C2,{"Y","X"},0)
如果在C列为空的情况下需要处理的情况,则它不包含在原始帖子中,因此我不知道您想如何处理它。
由于A中的值不是唯一的,所以此部分将查找第一行,其中当前行的值为Column A,因此它将再次为“ A”找到2,为“ B”找到5:
MATCH(A2,Sheet1!A:A,0)
我认为您可以改用它:
MATCH(B2,Sheet1!B:B,0)
假设B中的值是唯一的,但是由于您似乎想要当前行,因此将其更改为ROW()。
我希望这会有所帮助。