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"))
工作表 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"))