比较Google表格中未排序的数组

时间:2019-05-26 08:39:52

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

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

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

我整夜都在看公式来比较文本数组元素,但是找不到我想要的东西。

你能帮我吗?

我实际上正在使用Google表格,该表格已连接到Google表单,其中存在两个问题。一个简短的开放式问题,我希望在其中收到一些用于标识对象的代码(我希望一个以上,一个接一个,例如{1234 8888 9999 3334}),以及一个多选问题,希望可以在其中收到国家名称,例如{US,UK,FRANCE,ITALY,THE NETHERLANDS}

在另一张纸上,我有一个代码列表,每行一个(例如1234)和与该代码关联的国家(例如{UK,GERMANY,US})。那是我要突出显示与表单答案之间的差异的地方。

此刻,我设法创建了公式,以在表单答案纸中的所有国家中搜索给定的对象(甚至在多行中),并在需要与之进行比较的国家/地区组旁边进行检索。

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

在我的B1单元格公式中,

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

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

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

1 个答案:

答案 0 :(得分:0)

="{"&TRIM(TEXTJOIN(",", 1, 
 FILTER(TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")), NOT(COUNTIF(
        TRANSPOSE(SPLIT(REGEXREPLACE(A1, "{|}", ), ",")), 
        TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")))))))&"}"

0