【问题标题】:GS Query to split a column (Last, First) into 2 columnsGS 查询将一列(Last,First)拆分为 2 列
【发布时间】:2021-07-22 14:56:11
【问题描述】:

我有一个“原始发票”选项卡,它是直接复制/粘贴的 Excel 文件。然后,我尝试使用查询以该列顺序格式化“发票”选项卡中的数据。我需要能够将学生姓名分成两个单独的列,希望在查询本身中。最好它会改变它,所以 C 列是姓氏,D 列是名字,其余列移动超过一个。

我不知道是否有办法在查询中执行 SPLIT 函数。现在,我正在使用一种笨拙的方法,通过对学生 ID 执行 VLOOKUP 来从另一个选项卡中获取名称(不包括在 Sample GS 中,因为它是来自工作文件的导入范围),但它随后会创建两个单独的查询。理想情况下,我可以在一个查询中以某种方式拆分 C 列,但是由于将查询和数组嵌套在一起而迷失了方向。我也许可以使用 REGEXEXTRACT,但再次迷失了将其放在查询中的哪个位置,或者这是否是矫枉过正。

QUERY('Raw Invoice'!$A:$I,"Select F,B,A, 'Bobs Diner',D,G,I where C is not null label 'Bobs Diner' 'Company' Format F' M/DD/YYYY' ",1)

Link to sheet.

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    无法拆分查询参数,但您可以这样做:

    =ARRAYFORMULA(QUERY({IFERROR(SPLIT('Raw Invoice'!A:A, ", ")), 'Raw Invoice'!B:I}, 
     "select Col7,Col3,Col1,Col2,'Bobs Diner',Col5,Col8,Col10
      where Col3 is not null
      label 'Bobs Diner' 'Company'
      format Col7 'M/DD/YYYY'", 1))
    

    【讨论】:

    • 这正是我想要的!括号是做什么的,它迫使它分成两列? {IFERROR(SPLIT('原始发票'!A:A, ", ")), '原始发票'!B:I}.
    • @DuckSqueezer 这些是{} 数组括号,在您使用自定义列/行构造范围时使用。例如,您可以有一个跳过 B 列的范围:={A1:A10, C1:C10}
    【解决方案2】:

    我建议在行发票中实施

    =arrayformula(split(A3:A,","))
    

    然后

    =QUERY('Raw Invoice'!$A:$K,"Select F,B,J,K, 'Bobs Diner',D,G,I where C is not null label 'Bobs Diner' 'Company' Format F 'M/DD/YYYY' ",1)
    

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      相关资源
      最近更新 更多