1

本质上我有一个像这样的数据结构(数百行,不断更新):

ID 日期 价值
1000 日期1 值 1
1001 日期2 值 2
1002 日期3 值 3
1001 日期4 值 4
1003 日期5 值 5

在哪里

  • ID 是唯一的,但可以出现多次
  • 日期表示创建 ID 或更新其值的时间
  • 值不是唯一的

我想要做的是搜索 ID 行并获取与之关联的日期和值。如果再次出现相同的 ID,则应将其列在同一行中,例如

ID 日期 价值
1000 日期1 值 1
1001 日期2 值 2 日期 4 值 4
1002 日期3 值 3
1003 日期5 值 5

理想情况下,这是使用数组完成的。就像我说的那样,列表会不断更新,因此拖动一个公式,例如:

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

不是一个真正的选择...

有什么想法吗?帮助将不胜感激!

干杯

4

1 回答 1

1

尝试:

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

在此处输入图像描述


更新:

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

在此处输入图像描述

演示电子表格

于 2021-02-13T14:53:09.970 回答