【问题标题】:Split, Transpose & Print Multiple Records拆分、转置和打印多条记录
【发布时间】:2020-09-28 14:09:59
【问题描述】:

在对另一个订单项执行相同操作之前,尝试获取一个订单项并将其拆分和转置。

我正在尝试像这样进行拆分和转置操作

=transpose(split(c2,","))

但是,这一次仅适用于一个订单项。

这是数据的样子以及我希望结果的样子。

【问题讨论】:

标签: google-sheets google-sheets-formula array-formulas


【解决方案1】:

你可以在第一行试试这个,它会给你两列

={
ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(JOIN("º",REPT(A:A&"º",IF(ISBLANK(B:B),"", LEN(B:B)-LEN(REGEXREPLACE(B:B,",",""))+1))),"º")))) ,
ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(JOIN(",",IF(ISBLANK(B:B),"",B:B)),","))))
}

它解析一些空白逗号值以及一些空值。

它的基本作用是:

  • 第一列: 检查逗号在第二列中的次数,并获取该数字。然后用分隔符(在本例中为分隔符º)连接左列重复的次数,如下所示:tvºtvºtv,然后拆分并转置以垂直显示。
  • 第二列: 检查只是检查逗号之间的内容,然后转置它,使用相同类型的字符串连接,这次分隔符是逗号,

注意:如果第二列后面有 2 个逗号,则它不起作用,如以下语法:something,,something

【讨论】:

  • 感谢您的帮助!将公式扩展到更大的数据集时出现错误。 “函数 ARRAY_ROW 参数 2 的行大小不匹配。预期:290。实际:266。”有什么想法吗?
  • 你有空白单元格或联合逗号吗?喜欢france,,belgium
  • 很好的答案:)
  • 您好 Nabais,感谢您的帮助。所以我样本集中的一些产品行项目显示为“HDMI(144hz,60hz)”,看起来好像产品中有一个“,”它破坏了公式!删除数据中的“,”可以解决问题
  • 现在检查,在第一列中使用您的“HDMI (144hz,60hz)”,我将第一列的分隔符更改为 º 符号,所以现在如果您想将其更改为其他东西只是改变你找到º符号的位置
【解决方案2】:

这将为您提供所有国家/地区的数据:

=transpose(split(join(",",C2:C),","))

【讨论】:

    【解决方案3】:

    在表格中有一种新的、相对简单的方法可以解决这些问题。尝试搜索“使用 FLATTEN() 取消透视数据”。我自己和谷歌产品论坛的其他一些志愿者发现了一个隐藏在谷歌表格后端的新功能,并且非透视数据已被证明是它最有用的应用程序。如果您希望该公式适用于您的特定数据集,请考虑共享一个示例表,以便正确演示该概念。

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多