Сравните несортированные массивы в Google Sheets - PullRequest
1 голос
/ 26 мая 2019

В ячейке А1 у меня есть {UK,GERMANY,US}
В ячейке B1 у меня есть {US,UK,FRANCE,ITALY,THE NETHERLANDS}
Я хотел бы использовать формулу для возврата в ячейку C1 {FRANCE,ITALY,THE NETHERLANDS} Это все элементы массива 2, которые недоступны в массиве 1.

Все элементы не отсортированы, разделены запятой, могут содержать пробел.

Я всю ночь искал формулы для сравнения элементов текстового массива, но не могу найти то, что ищу.

Вы можете мне помочь?

Я на самом деле использую Google Sheet, связанный с формой Google, в которой есть 2 вопроса. Короткие открытые вопросы, в которых я ожидаю получить биты кодов, которые идентифицируют объекты (я ожидаю больше, чем один, один за другим, например, {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 голосов
/ 26 мая 2019
="{"&TRIM(TEXTJOIN(",", 1, 
 FILTER(TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")), NOT(COUNTIF(
        TRANSPOSE(SPLIT(REGEXREPLACE(A1, "{|}", ), ",")), 
        TRANSPOSE(SPLIT(REGEXREPLACE(B1, "{|}", ), ",")))))))&"}"

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...