【发布时间】:2021-02-17 05:20:06
【问题描述】:
我有一系列包含尺寸的列,这些尺寸因产品而异,因此每一行都有很多空白。到目前为止,我已经使用这个公式来选择 5 列并将它们转换为行(下面文件中的列 DK/DL)。我需要扩展它以包含更多行,但是当包含所有空白时它太大了,所以有没有办法忽略任何空白单元格并只包含具有值的单元格?
=ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A3:A), "♠"&A3:A&"♦"&AP3:AT, )), , 999^ 99)), , 999^99), "♠")), "♦")))
我还需要在一列中显示第二行。例如,我使用了 AP - AT 列,其中包括 XS、S、M、L、XL 作为列标题,然后在每一行的这些列中都有一个值。上面的公式将从这 5 列中获取值并将它们放在自己的行中。有没有办法让下一列只显示列标题?当我再次使用上面的公式时,它会下降到下面的行并再次使用库存编号而不是标题。
实际上我想从:
SKU | XS |小号 |中号 |大号 |加大码
val1| 12 | 3 | 32| 1 | 123
到这里:
Val1 | 12 | XS
Val1 | 3 | S
Val1 | 32 | M
Val1 | 1 |升
Val1 | 123|加大码
链接到谷歌表格测试:https://docs.google.com/spreadsheets/d/1o7zFmPbIkKz5JiZ-7Blc-63pARfvhhaV9lWnL4kUIfY/edit?usp=sharing
更新 - 已回答 最好的答案在下面的 cmets 中。
=query( {ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A3:A), "♠"&A3:A&"♦"&AN3:AU, )), , 999^99)), , 999^99), "♠")), "♦"))), 查询(ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN( A3:A), "♠"&A3:A&"♦"&AN2:AU2, )), , 999^99)), , 999^99), "♠")), "♦"))),"选择 Col2 ",0)}, "select * where Col2 ''",0)
【问题讨论】:
-
您是否反对使用 Apps 脚本?公式中的♠ ♦ 是什么意思?另外,尝试在未来将代码放入代码块中 - stackoverflow.com/help/formatting。
-
我询问了 Apps 脚本,因为公式似乎变得相当复杂,而且您拥有大量数据。或许可以使用公式,但使用 Apps 脚本绝对可行且更易于管理。
-
@iansedano 我没有使用应用程序脚本,但我可以做到。我曾经开始使用的公式脚本中包含的那些字符。我现在需要做的唯一部分是从“I”列到“CU”列,但忽略任何空白单元格。当我尝试添加过滤器时,它会破坏公式。我需要使用 Apps 脚本做什么?
标签: google-sheets google-sheets-formula