返回最后一个输入条目

问题描述 投票:0回答:1
身份证 重量(公斤) 体重指数 体脂率 器官脂肪
248 54.1 20.5 19.7 7
248 54.3 20.2 19.5 6
248 54.2 20.4 19.6 6

我有这个谷歌表格公式:

=ARRAYFORMULA(IF(LEN(I3:I), IFERROR(VLOOKUP(I3:I, SORT(FILTER({B3:B, D3:D, E3:E, F3:F, G3:G}, LEN(B3:B)), 1, FALSE), {2, 3, 4, 5}, FALSE), ""), ""))

我的公式返回这组值:

身份证 重量(公斤) 体重指数 体脂率 器官脂肪
248 54.1 20.5 19.7 7

但这部分:

SORT(FILTER({B3:B, D3:D, E3:E, F3:F, G3:G}, LEN(B3:B)), 1, TRUE)

由于 ID 相同,因此无助于排序。改变
TRUE/FALSE
不会有什么不同。

是否可以得到这组值

身份证 重量(公斤) 体重指数 体脂率 器官脂肪
248 54.2 20.4 19.6 6

通过改变我的公式?

这是我目前的公式:

=ARRAYFORMULA(IF(LEN(I3:I), IFERROR(VLOOKUP(I3:I, SORT(FILTER({B3:B, D3:D, E3:E, F3:F, G3:G}, LEN(B3:B)), 1, FALSE), {2, 3, 4, 5}, FALSE), ""), ""))

我尝试更改为

TRUE
,但没有任何区别,因为 ID 相同:
=ARRAYFORMULA(IF(LEN(I3:I), IFERROR(VLOOKUP(I3:I, SORT(FILTER({B3:B, D3:D, E3:E, F3:F, G3:G}, LEN(B3:B)), 1, TRUE), {2, 3, 4, 5}, FALSE), ""), ""))

然后我尝试了

MAX
,但它只返回ID号最大的值:
=ARRAYFORMULA(IF(LEN(I3:I), IFERROR(VLOOKUP(I3:I, FILTER({B3:B, D3:D, E3:E, F3:F, G3:G}, ROW(B3:B) = MAX(FILTER(ROW(B3:B), B3:B = I3:I))), {2, 3, 4, 5}, FALSE), ""), ""))

google-sheets google-sheets-formula
1个回答
0
投票

您可以尝试

FILTER()
CHOOSEROWS()
功能。

=MAP(TOCOL(I3:I,1),LAMBDA(x,CHOOSEROWS(FILTER(D:G,B:B=x),-1)))

使用

XLOOKUP()
尝试-

=MAP(TOCOL(I3:I,1),LAMBDA(x,XLOOKUP(x,B:B,D:G,"",,-1)))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.