【问题标题】:Compare unsorted arrays in Google Sheets比较 Google 表格中未排序的数组
【发布时间】:2019-10-12 04:44:35
【问题描述】:

在单元格 A1 我有 {UK,GERMANY,US}
在单元格 B1 我有 {US,UK,FRANCE,ITALY,THE NETHERLANDS}
我想使用公式返回单元格 C1 {FRANCE,ITALY,THE NETHERLANDS} 即 array2 中存在的所有在 array1 中不可用的元素。

所有元素均未排序,以逗号分隔,可能包含空格。

我整晚都在寻找比较文本数组元素的公式,但找不到我要找的东西。

你能帮帮我吗?

我实际上使用的是 Google 表格,它连接到一个包含 2 个问题的 Google 表单。一个简短的开放式问题,我希望在其中收到识别对象的代码位(我希望不止一个,一个接一个,例如{1234 8888 9999 3334})和一个多项选择问题,我可以期望在其中收到国家名称喜欢{US,UK,FRANCE,ITALY,THE NETHERLANDS}

在另一张表中,我有一个代码列表,每行一个(例如 1234)和与该代码相关的国家/地区(例如{UK,GERMANY,US})。这就是我想强调与表单答案的区别的地方。

目前,我设法创建了一个公式,用于在表单答题单中搜索给定对象的所有国家,甚至在多行上,并在我需要与之进行比较的国家组旁边检索它们。

现在我“只”需要在{UK,GERMANY,US} 中单独搜索{US,UK,FRANCE,ITALY,THE NETHERLANDS} 以突出显示差异,即{FRANCE,ITALY,THE NETHERLANDS}

在我的 B1 单元格公式中,我有

=substitute(textjoin(", ",TRUE,arrayformula(FILTER('Answerform'!CountryColumn,ISNUMBER(Search(ObjectCodeCell,'Answerform'!MultipleObjectColumn))))),", ",",")

(注意:Google 表单反馈在逗号后带有空格,我认为我需要消除它们以将它们与逗号后没有空格的元素进行比较 - 这就是为什么有替代品的原因)

我希望输出是{FRANCE,ITALY,THE NETHERLANDS}

【问题讨论】:

    标签: regex filter google-sheets transpose google-sheets-formula


    【解决方案1】:
    ="{"&TRIM(TEXTJOIN(",", 1, 
     FILTER(TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")), NOT(COUNTIF(
            TRANSPOSE(SPLIT(REGEXREPLACE(A1, "{|}", ), ",")), 
            TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")))))))&"}"
    

    【讨论】:

    • 精准!这就像一种享受,谢谢!现在我将研究它背后的逻辑,因为我不知道你的公式中发生了什么。
    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多