【问题标题】:How to stack different columns from a query into one single column Google Sheets如何将查询中的不同列堆叠到一列 Google 表格中
【发布时间】:2020-10-08 10:25:51
【问题描述】:

我已经从 Google 表格中的 importxml 进行了查询,并且在几列中得到了结果。我只需要在一列中获得这些结果,但我总是需要保留每行的第一个单元格,即使它是空白的。如果是这种情况,我不想为同一行中的其他单元格保留空白。

我的数据如下所示:

空行
空行
1x 1x 1x

1x 1x 1x
空行
空行
1x 1x 1x

1x 1x 1x
空行
5倍

我想得到:

空单元格

空单元格
1x

1x

1x

1x

1x

1x

空单元格

空单元格

5x

我当前的代码是这样的: =QUERY(importxml('url-address';"//ul[@class='xxxxxxx']");"SELECT * WHERE Col1 CONTAINS 'x' OR Col1 IS NULL";-1)

编辑:这是实际电子表格的链接:https://docs.google.com/spreadsheets/d/1ZownNdUfFEeBmZ4hEQwkDVu-phYzU-2nCAH2Fg91GRs/edit?usp=sharing

我用于检索视频游戏的信息。我已经这样做了,但是我从中获取信息的网站发生了一些变化,因此现在我需要调整我的公式。

在“齿轮组件”选项卡中,您可以找到与我之前的公式一样的数据结构。在“公式”选项卡中,您可以找到我现在得到的内容。左边是齿轮列表,右边是每个齿轮的数量,但结构不合适。因此,我需要保留所有 1x 和 5x。

【问题讨论】:

  • Edit解释为什么你的输出表中有6个1xs?
  • 我不确定我是否理解您想要的输出。你会考虑提供一份电子表格的副本,澄清这一点吗?
  • 我不清楚你的问题是什么。 importxml 本身工作正常吗?您的查询似乎是合理的。最后的-1 可能会导致有趣的结果,如果您的输入数据包含标题行,请尝试使用1。提供带有样本数据的样本表,我们将为您提供帮助。
  • 是的,您将需要一个公式,也许使用 REGEXREPLACE,将字符串如“1x 1x 1x”转换为“1x”。这就是你的问题吗?
  • 我不确定我是否理解所需的输出,即使您提供的示例也是如此。那么,如果某个值旁边有三个1x,输出应该在三个不同的行中重复这个值,其中一个旁边有一个1x?类似this

标签: google-sheets google-sheets-formula google-query-language


【解决方案1】:

您可以使用 =STACKARRAY()。

它不是本机功能,因此您必须安装插件(完全免费) https://gsuite.google.com/marketplace/app/stackarray_for_google_sheets/851782699334

那么你可以这样使用它: =STACKARRAY(ref_to_your_table) 这会将第二列堆叠在第一列下方,依此类推...

您还可以决定删除空白行: =STACKARRAY(ref_to_your_table, TRUE)

或者改变堆叠策略 =STACKARRAY(ref_to_your_table, TRUE or FALSE, TRUE)

【讨论】:

  • 不幸的是,这不起作用。输出似乎不正确。
【解决方案2】:

FLATTEN代替STACKARRAY

=FLATTEN(E3:G)

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2019-12-18
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多