#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. как я уже сказал, идея заключается в том, что статус время от времени обновляется. каждое обновление получает новую строку, поэтому мне нужно «собрать» / «сконденсировать» все данные для одного идентификатора для последующего анализа