【问题标题】:How to pull multiple column values into a single column in Google sheets?如何将多个列值拉入 Google 表格中的一列?
【发布时间】:2016-09-27 06:44:07
【问题描述】:

我有 12 列被公式“IMPORTRANGE”自动填充。

我需要将所有表值整理成一个值(条件是它应该表现得像“ARRAYFORMULA”)。

只是想知道是否为此目的存在任何特定的公式/查询。

我已添加工作表的示例快照。我需要将这些红色突出显示的值放在不同的列中,比如“EF”。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    常见情况

    我将展示 3 列的示例公式,但您可以对任意数量的列使用相同的逻辑。

    公式是

    =TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE(TRANSPOSE(FILTER(A2:C,A2:A>0)&"-"))),"-"))
    
    • A2:C 是您所有列的范围
    • A2:A>0 是 A 列仅选择适当行的条件。这可能是 A2:A<>"" 用于文本列或任何限制行数的条件。
    • 公式中的- 是任何不属于原始数据的符号。你可以使用一组符号,甚至是特殊的词来达到同样的目的:=TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE(TRANSPOSE(FILTER(A2:C,A2:A>0)&"devide"))), "devide"))

    案例 1。

    不连续的列

    如果您的数据不是连续的列。

    如果是这样,那么你需要将这部分公式FILTER(A2:C,A2:A>0)改为查询:

    =query(A:AO;"select A,I,Q,Y,AG,AO... where A > 0")

    或者更好:

    =query({A:AO};"select Col1, Col6, Col20, Col22, ... where Col1 > 0")

    最终的公式如下所示:

    =TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE(TRANSPOSE(query({A:AO};"select Col1, Col6, Col20, Col22, ... where Col1 > 0")&"-"))),"-"))
    

    案例 2。

    不是连续的列,数据是数字和文字

    当您在数据中同时输入数字和文本时,query 将不起作用,因为它在一列中只能处理一种类型的数据。

    您的简化案例如下所示:

    第一个任务是将名称为“票号”的所有列抓取到一个表中。

    让我们在工作表“报告”中工作,使用filter 函数:

    =FILTER(Data!1:1001,Data!2:2="Ticket number")
    

    并得到结果:

    第二步是实现第一个公式:

    =TRANSPOSE(SPLIT(ARRAYFORMULA(CONCATENATE(TRANSPOSE(Report!A3:D&"-"))),"-"))
    

    另一种方法是逐列组合:

    ={A2:A5;B2:B5;C2:C5}
    

    如果你喜欢这个方法,你可以read more here

    【讨论】:

    • 这很聪明!我从来不知道这可以在本地如此简洁地完成。
    • 嗨,Max,感谢您的快速回复。但我的数据不在连续列中。我的数据在 (A,I,Q,Y,AG,AO....DY) 这些列中。我需要在我的“EF”列中整理这些数据。
    • 您可以简单地构造该范围,然后使用他提到的秒方法,只需使用, 而不是; 来绑定列。
    • 我建议在这种情况下使用查询而不是过滤器。该查询之所以好,是因为您可以构建 SQL 文本来搜索数据中的列号。这有点难,并且与问题无关,但可以让您拥有更多的权力和对您正在尝试做的事情的控制。
    • Ya Max,我已经实现了运行良好的查询。非常感谢您的出色回应。
    【解决方案2】:

    Max 的回答非常好,如果能解决您的问题,我建议您使用它。

    如果您想要更多的灵活性,我已经编写了一个名为 Reshape 的库,它允许您按照自己的意愿融合长格式的数据。
    你可以运行类似的东西:

    =MELT(IMPORTRANGE(<spreadsheet>, "A:DY"), , , , 1) 
    

    它将列标题放在自己的列中,以便清楚地识别哪些可能是您想要的,也可能不是您想要的(因为您只谈论将值放入一个列中,这就是该脚本所做的)。查看链接中的两个表格,了解该函数在概念上的作用,看看它是否适合您。

    我没有将它作为插件发布到我的网络之外,因此您需要将代码复制并粘贴到您的脚本中

    【讨论】:

    • 谢谢罗宾。我遵循了 Max 提到的查询。有效。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-03-05
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 2021-09-12
    • 1970-01-01
    • 2019-09-29
    相关资源
    最近更新 更多