【问题标题】:Excel/Sheets combine row column content and find respecting valueExcel/Sheets 结合行列内容并找到尊重的价值
【发布时间】:2021-10-16 09:05:59
【问题描述】:

Sheet1

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

Car Red Blue Black White
BMW 100 120 90 120
FIAT 90 100 110 120
FORD 70 80 80 80

Sheet2

我想将这些汽车和颜色组合在 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))))

我从here得到这个公式

Sheet2 中的预期输出

Car Color Price
BMW Red 100
BMW Blue 120
BMW Black 90
BMW White 120
FIAT Red 90
FIAT Blue 100
FIAT Black 110
FIAT White 120
FORD Red 70
FORD Blue 80
FORD Black 80
FORD White 80

【问题讨论】:

  • 今天提出了几乎相同的问题。在此处查看答案,然后建议您关闭:stackoverflow.com/questions/68762676/…
  • 感谢您的回复。由于我的 Google Workspace 不支持脚本编辑,因此我会在另一种情况下考虑使用此解决方案。但现在,我需要一个适用于任何地方的解决方案。

标签: arrays google-sheets split flatten google-query-language


【解决方案1】:

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

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

=LET(x, $I$2:$L$4,
myrows, ROWS(x),
mycols, COLUMNS(x),
mycount, SEQUENCE(myrows*mycols),
car, $H$2:$H$4, color, $I$1:$L$1,
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))

【讨论】:

  • 顺便说一句,Google 表格中没有 LET 功能。但如果我使用 Microsoft Excel,这个解决方案是有建设性的。
【解决方案2】:

使用:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-08-31
  • 2021-05-17
  • 2012-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
相关资源
最近更新 更多