Excel/Sheets 合并行列内容并找到相关值

Excel/Sheets combine row column content and find respecting value

工作表 1

我有这个基于 Sheet1 颜色的汽车价格数据

汽车 红色 蓝色 黑色 白色
宝马 100 120 90 120
菲亚特 90 100 110 120
福特 70 80 80 80

工作表 2

我想将这些汽车和颜色组合在 A 列中。在 B 列中,我想显示其各自的价格。 我已经实现了用这个公式显示 A 列,但如果有任何建议,我愿意接受。对于 B 列,我还不知道如何实现目标。

A 列的公式

=ArrayFormula(transpose(split(rept(concatenate(Sheet1!A2:A&char(9)),counta(Sheet1!B1:Sheet1!E1)),char(9)))
&" "&transpose(split(concatenate(rept(Sheet1!B1:Sheet1!E1&char(9),counta(Sheet1!A2:Sheet1!A))),char(9))))

我从

得到这个公式

Sheet2 中的预期输出

汽车颜色 价格
宝马红 100
宝马蓝 120
宝马黑色 90
宝马白 120
菲亚特红 90
菲亚特蓝 100
菲亚特黑色 110
菲亚特白 120
福特红 70
福特蓝 80
福特黑色 80
福特白色 80

我同意@pgSystemTester 的评论,您可能会考虑关闭此问题。

但是这里有一个使用 LET 的解决方案,如果你有最新版本的 Excel。

=LET(x, $I:$L,
myrows, ROWS(x),
mycols, COLUMNS(x),
mycount, SEQUENCE(myrows*mycols),
car, $H:$H, color, $I:$L,
mylist, car&" "&color,
mycolumn, INDEX(mylist, CEILING(mycount/mycols,1), IF(MOD(mycount,mycols)=0, mycols,MOD(mycount,mycols))),
mydata, INDEX(x, CEILING(mycount/mycols,1), IF(MOD(mycount,mycols)=0, mycols,MOD(mycount,mycols))),
IF(SEQUENCE(1,2)=1, mycolumn, mydata))

使用:

=INDEX(QUERY(SPLIT(FLATTEN(IF(B2:E="",,A2:A&" "&B1:E1&"×"&B2:E)), "×"), 
 "where Col2 is not null"))