Как вернуть массив, соответствующий определенным критериям в Excel? - PullRequest
2 голосов
/ 24 октября 2019

Я пытаюсь проанализировать XML-файл в Excel, который является японским словарем. Он содержит несколько переводов каждой записи на разные языки, а некоторые записи имеют несколько переводов для каждого языка. Я хочу написать формулу, которая находит все переводы по их языковому коду, возвращает их в виде массива и объединяет их, используя формулу TEXTJOIN. Но я не знаю, как это сделать в Excel.

В Google Sheets это легко можно решить с помощью функции FILTER, но я не могу использовать Sheets, так как данных слишком много, и у меня нетпока не удалось получить доступ к бета-функции FILTER.

На следующем рисунке я пытаюсь вернуть значения в столбце <gloss xml:lang*> путем поиска значений в столбце lang,Так, например, я хочу вернуть все значения, рядом с которыми стоит «dut», и объединить их в одну строку, используя TEXTJOIN.

Есть идеи, как мне это сделать?

enter image description here

1 Ответ

2 голосов
/ 30 октября 2019

Я исправил это, загрузив функцию FILTER. Это часть программы Office Insider, которая выпускает бета-функции, если вы решите участвовать. Вы можете получить доступ к программе Insider, выбрав Файл> Учетная запись> Office Insider. Затем, чтобы обновить версию Office, выберите «Файл»> «Учетная запись»> «Обновления Office», чтобы установить обновление Insider.

Чтобы отфильтровать список по столбцу «lang», формула выглядит следующим образом:

=FILTER([range in H column], [range in I column]=T$2)

Я не указал ни один диапазон, потому что я использовал определенный формулой диапазон, используя функцию INDIRECT, чтобы избежать фильтрации по миллиону строк. Диапазон H - это то, что я хочу получить в результатах фильтра, диапазон I - это то, что я хочу фильтровать - код «lang». T $ 2 представляет код «lang», в данном случае «dut», и когда я копирую его, он фильтруется по каждому из 8 кодов lang в строке 2.

Затем я использовал TEXTJOIN для объединенияесли результат массива в один столбец, используя запятую:

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