Использование XLOOKUP или FILTER для объединения данных в одну ячейку

Использование XLOOKUP или FILTER для объединения данных в одну ячейку
Использование XLOOKUP или FILTER для объединения данных в одну ячейку

У меня есть набор данных, который скомпилирован разными людьми, заполняющими форму для заполнения электронной таблицы в Google Sheet. Вот как может выглядеть набор данных: Набор данных с указанием имени, собранных отзывов, даты и абонента. Использование XLOOKUP или FILTER для объединения данных в одну ячейку

Там группа звонящих, звонит людям для сбора информации, скажем, отзывов о фильмах, и записывает в форму имя того, кому звонили, какой у них был отзыв, дату и имя звонившего. Я хочу объединить данные, чтобы они были организованы в отдельную таблицу по имени, в которой перечислены все отзывы, оставленные этим человеком, в одной ячейке, с указанием имени звонящего, который собрал отзыв, и даты его сбора. Вот как я хочу, чтобы результирующая таблица выглядела. Использование XLOOKUP или FILTER для объединения данных в одну ячейку

Я пробовал два разных варианта. Первый XLOOKUP, и эта функция выглядит так:

=CONCATENATE(XLOOKUP(I2, $A$2:$A, $B$2:$B), " (",XLOOKUP(I2, $A$2:$A, $D$2:$D), ", ", TEXT(XLOOKUP(I2, $A$2:$A, $C$2:C),"mm/dd/yyyy"), ")")

Это дало мне правильное форматирование, но XLOOKUP дает мне первый результат только в том случае, если есть несколько отзывов, оставленных одним и тем же человеком. Я хочу собрать все их отзывы. Результирующая таблица с использованием функции XLOOKUP, в которой ячейки, не содержащие второй набор отзывов, выделены красным цветом. Использование XLOOKUP или FILTER для объединения данных в одну ячейку

Затем я попытался использовать ФИЛЬТР:

=TEXTJOIN(CHAR(10),TRUE,FILTER($B$2:B, $A$2:A=L2),FILTER($D$2:D,A$2:$A=L2), FILTER($C$2:C,A$2:$A=L2))

Это дало мне все данные, но неправильно отформатировано. Теперь, если отзывов несколько, то они перечислены по порядку, а затем перечислены имена звонивших, а затем даты

Использование XLOOKUP или FILTER для объединения данных в одну ячейку

Как я могу вернуть все совпадения, но настроить порядок/формат возвращаемых данных в 1 ячейку?

Добро пожаловать!

Вы правы - TEXTJOIN(CHAR(10)... будет работать.

Вы также правы - FILTER() может выбрать нужные вам данные.

Вы упустили только один момент - в качестве первого параметра (массив для фильтрации) нужно передать набор уже отформатированных строк:

=IFERROR(TEXTJOIN(CHAR(10),1,
    ARRAYFORMULA(FILTER(
       {B1:B&" (" & D1:D & ", " & TEXT(C1:C,"YYYY-MM-DD") & ")"},
       A1:A=L1))),"")`

NevaDev, 18 марта 2023 г., 16:25