【问题标题】:Matching and sorting data from another sheet匹配和排序另一张工作表中的数据
【发布时间】:2016-12-26 11:00:48
【问题描述】:

我有一个表单,可以从人们那里收集数据并将其转储到谷歌电子表格中。在电子表格上,我正在尝试创建一个表格来排列这些数据,以便我自己和其他人更容易理解。 以下是数据的一般样例。

https://docs.google.com/spreadsheets/d/1iFKUg9vu_kdYe5Se0Fc6I9wcJp5NLXHvCA41CtTuFhc/edit?usp=sharing

在名为“表单”的工作表上,这是从谷歌表单中转储数据的地方。在名为“表格”的工作表上是我试图对信息进行排序的地方。每一行是一个人的名字,每一列是不同的汽车品牌。

我正在尝试让“表格”表上的单元格从“表格”表中查找匹配项,并让它填写每个人记录的该品牌汽车的正确评级。如果此人拥有 2 辆相同品牌的汽车,是否也可以将两个评分放在“表格”表的同一列中?

我试图使用内置的 MATCH 函数,但我不知道如何让它在找到匹配项时返回品牌旁边的评级列的值。在组合不同功能时,我仍然是初学者,想知道是否有人可以帮助我。是否可以使用内置函数或仅使用脚本来执行此操作?

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    由于您允许多个匹配项(如9,10 示例),我建议使用filterjoin。这是我的公式,为单元格 B3 编写,但可复制粘贴到表格中的其他单元格:

    =iferror(join(",", filter(filter(Form!$C:$I, Form!$A:$A = $A3), filter(Form!$B:$H, Form!$A:$A = $A3) = B$2)))
    

    解释:

    1. filter(Form!$B:$H, Form!$A:$A = $A3) 为在 A3 中指定名称的用户获取 B-H 列
    2. filter(Form!$C:$I, Form!$A:$A = $A3) 的作用相同,但与前一个过滤器相比,C-I 列的范围向右移动了一个单元格。
    3. 然后,另一个filter 从第二个范围中挑选第一个范围的相应条目是B2 中的汽车模型的单元格。这相当于采用模型名称右侧的单元格。
    4. 如果有多个匹配项,则结果为字符串中的joined,以逗号分隔。
    5. 如果没有匹配,过滤器抛出#N/A错误;这被iferror 抑制,因此单元格保持空白。

    【讨论】:

    • 非常感谢。我实际上之前没有考虑过使用过滤器和加入。我真的很感谢您解释代码的每个部分的作用,以便我更容易学习。再次感谢,节日快乐 :)。
    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多