INDEX/MATCH 在行和列中有多个条件

INDEX/MATCH with multiple criteria in rows and columns

我有一个包含 2 张表格的电子表格。在 SheetA 中,每个用户 ID 有 3 行和 3 列。 在 SheetB 中,我有相同的数据集,但每个用户 ID 有 9 行和 1 列。如何将 SheetA(来自“Answer1”、“Answer2”、“Answer3”列)的答案值引入 SheetB(在列中“价值”)?困难在于匹配多个条件(不仅仅是 userId,还有 stepId 和 Attribute/Answer)

这是一个示例性的 Google 工作表: https://docs.google.com/spreadsheets/d/1iOeqpMHL6q_aFkVw9il039jGKHhbu6xxZLZrN0LXcEc/edit?usp=sharing

我认为它是 INDEX/MATCHHLOOKUP 的组合,但我无法弄清楚。有人有什么想法吗?

工作表A:

userId stepName stepId Answer1 Answer2 Answer3
126 StepA 20 50 20 10
131 StepA 20 20 23 23
133 StepA 20 32 80 50
134 StepA 20 60 46 23
138 StepA 20 12 45 67
139 StepA 20 50 20 10
142 StepA 20 20 23 23
144 StepA 20 32 80 50
147 StepA 20 60 46 23
126 StepB 30 12 45 67
131 StepB 30 50 20 10
133 StepB 30 20 23 23
134 StepB 30 32 80 50
138 StepB 30 60 46 23
139 StepB 30 12 45 67
142 StepB 30 50 20 10
144 StepB 30 20 23 23
147 StepB 30 32 80 50
126 StepC 40 60 46 23
131 StepC 40 12 45 67
133 StepC 40 50 20 10
134 StepC 40 20 23 23
138 StepC 40 32 80 50
139 StepC 40 60 46 23
142 StepC 40 12 45 67
144 StepC 40 32 80 50
147 StepC 40 12 45 67

工作表 B:

userId stepName stepId Attribute Value
126 StepA 20 Answer3 ?
126 StepA 20 Answer2 ?
126 StepA 20 Answer1 ?
126 StepB 30 Answer3 ?
126 StepB 30 Answer2 ?
126 StepB 30 Answer1 ?
126 StepC 40 Answer3 ?
126 StepC 40 Answer2 ?
126 StepC 40 Answer1 ?
131 StepA 20 Answer3 ?
131 StepA 20 Answer2 ?
131 StepA 20 Answer1 ?
131 StepB 30 Answer3 ?
131 StepB 30 Answer2 ?
131 StepB 30 Answer1 ?
131 StepC 40 Answer3 ?
131 StepC 40 Answer2 ?
131 StepC 40 Answer1 ?
133 StepA 20 Answer3 ?
133 StepA 20 Answer2 ?
133 StepA 20 Answer1 ?
133 StepB 30 Answer3 ?
133 StepB 30 Answer2 ?
133 StepB 30 Answer1 ?
133 StepC 40 Answer3 ?
133 StepC 40 Answer2 ?
133 StepC 40 Answer1 ?
134 StepA 20 Answer3 ?
134 StepA 20 Answer2 ?
134 StepA 20 Answer1 ?
134 StepB 30 Answer3 ?
134 StepB 30 Answer2 ?
134 StepB 30 Answer1 ?
134 StepC 40 Answer3 ?
134 StepC 40 Answer2 ?
134 StepC 40 Answer1 ?
138 StepA 20 Answer3 ?
138 StepA 20 Answer2 ?
138 StepA 20 Answer1 ?
138 StepB 30 Answer3 ?
138 StepB 30 Answer2 ?
138 StepB 30 Answer1 ?
138 StepC 40 Answer3 ?
138 StepC 40 Answer2 ?
138 StepC 40 Answer1 ?
139 StepA 20 Answer3 ?
139 StepA 20 Answer2 ?
139 StepA 20 Answer1 ?
139 StepB 30 Answer3 ?
139 StepB 30 Answer2 ?
139 StepB 30 Answer1 ?
139 StepC 40 Answer3 ?
139 StepC 40 Answer2 ?
139 StepC 40 Answer1 ?
142 StepA 20 Answer3 ?
142 StepA 20 Answer2 ?
142 StepA 20 Answer1 ?
142 StepB 30 Answer3 ?
142 StepB 30 Answer2 ?
142 StepB 30 Answer1 ?
142 StepC 40 Answer3 ?
142 StepC 40 Answer2 ?
142 StepC 40 Answer1 ?
144 StepA 20 Answer3 ?
144 StepA 20 Answer2 ?
144 StepA 20 Answer1 ?
144 StepB 30 Answer3 ?
144 StepB 30 Answer2 ?
144 StepB 30 Answer1 ?
144 StepC 40 Answer3 ?
144 StepC 40 Answer2 ?
144 StepC 40 Answer1 ?
147 StepA 20 Answer3 ?
147 StepA 20 Answer2 ?
147 StepA 20 Answer1 ?
147 StepB 30 Answer3 ?
147 StepB 30 Answer2 ?
147 StepB 30 Answer1 ?
147 StepC 40 Answer3 ?
147 StepC 40 Answer2 ?
147 StepC 40 Answer1 ?

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B&C2:C, 
 {SheetA!A:A&SheetA!B:B&SheetA!C:C, SheetA!D:F}, 
 IF(D2:D=SheetA!D1, 2, 
 IF(D2:D=SheetA!E1, 3, 
 IF(D2:D=SheetA!F1, 4, ))), 0)))

或更短:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B&C2:C, 
 {SheetA!A:A&SheetA!B:B&SheetA!C:C, SheetA!D:F}, 
 MATCH(D2:D, SheetA!D1:F1, 0)+1, 0)))