Таблицы GoogleSheets: просмотр столбца для идентификаторов и возврат связанных ячеек (несколько вхождений)

#arrays #google-sheets #filter #data-extraction

#массивы #google-таблицы #Фильтр #извлечение данных

Вопрос:

По сути, у меня есть такая структура данных (сотни строк, постоянно обновляется):

ID Дата Значение
1000 дата1 значение 1
1001 дата2 значение 2
1002 дата3 значение 3
1001 дата4 значение 4
1003 дата5 значение 5

где

  • Идентификаторы уникальны, но могут встречаться несколько раз
  • Даты указывают, когда были созданы идентификаторы или обновлены их значения
  • Значения не уникальны

Что я хочу сделать, так это выполнить поиск в строке идентификатора и получить дату и значение, связанные с ней. ЕСЛИ тот же идентификатор встречается снова, он должен быть указан в той же строке, например

ID Дата Значение
1000 дата1 значение 1
1001 дата2 значение 2 дата 4 значение 4
1002 дата3 значение 3
1003 дата5 значение 5

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

 =TRANSPOSE(FILTER($A$2:$A, $B$2:$B = A2))
 

на самом деле это не вариант…

Есть мысли? Помощь была бы очень признательна!!

Приветствия

Ответ №1:

попробуйте:

 =ARRAYFORMULA(IFNA(VLOOKUP(A2:Aamp;"×"amp;
 COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="amp;ROW(A2:A)), {A2:Aamp;"×"amp;
 COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="amp;ROW(A2:A))-1, B2:C}, {2, 3}, 0)))
 

введите описание изображения здесь


Обновить:

 =ARRAYFORMULA(SUBSTITUTE(TRIM(SPLIT(FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY(
 IF(A2:A="",,{A2:Aamp;"×", TO_TEXT(B2:B)amp;"×"amp;C2:Camp;"¤×", ROW(A2:A)amp;TO_TEXT(B2:B)amp;"×"amp;C2:Camp;"¤×"}), 
 "select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3"), 
 "offset 1", 0)),,9^9)), "×")), "¤", ))
 

введите описание изображения здесь

демонстрационная электронная таблица

Комментарии:

1. Да и нет — к сожалению. Может быть, я не очень ясно выражаюсь: идея заключается в том, что ВСЕ значения данного идентификатора перечислены рядом. В вашем примере для 1003: date5 значение 5 дата 6 значение 6 дата 7 значение 7

2. можете ли вы поделиться копией своего листа с образцом реальной даты и значений?

3. конечно: docs.google.com/spreadsheets/d /…

4. как я уже сказал, идея заключается в том, что статус время от времени обновляется. каждое обновление получает новую строку, поэтому мне нужно «собрать» / «сконденсировать» все данные для одного идентификатора для последующего анализа