如果索引匹配匹配函数

时间:2021-01-09 02:23:39

标签: google-sheets google-sheets-formula

我在 A 列中列出了产品,在 B、C 和 D 列中列出了它们的组成材料。

为了根据需要可视化数据,我需要将数据集重新排列为材料的唯一列表在 A 列中,产品在 B-D 列中。

enter image description here

我使用

创建了独特的材料列表
=INDEX(Range,1+INT((ROW(A1)-1)/COLUMNS(Range)),MOD(ROW(A1)-1+COLUMNS(Range),COLUMNS(Range))+1)

我需要有关如何编写函数以重新匹配原始表 (B10:D12) 中的数据的帮助。

这是示例数据集的链接:https://docs.google.com/spreadsheets/d/1xz9YheNDtQhuR0s5CTieMZRVNMAZcGcPllC2gR4WgKk/edit#gid=0

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

B10中,上下复制:

=IFERROR(INDEX($B$2:$D$2,MATCH($A10,INDEX($B$3:$D$5,MATCH(B$9,$A$3:$A$5,0),0),0)),"")

enter image description here

答案 1 :(得分:2)

使用:

=ARRAYFORMULA(QUERY(IFERROR(SPLIT(FLATTEN(
 IF(B3:D6="",,B3:D6&"×"&A3:A6&"×"&B2:D2)), "×")), 
 "select Col1,max(Col3) 
  where Col1 is not null 
  group by Col1 
  pivot Col2
  label Col1'material'"))

enter image description here


或者如果你想匹配它:

=ARRAYFORMULA(IFNA(VLOOKUP(A10:A, QUERY(IFERROR(SPLIT(FLATTEN(
 IF(B3:D6="",,B3:D6&"×"&A3:A6&"×"&B2:D2)), "×")), 
 "select Col1,max(Col3) 
  where Col1 is not null 
  group by Col1 
  pivot Col2
  label Col1'material'"), {2, 3, 4}, 0)))

enter image description here