簡體   English   中英

獲取最后一個數字,直到excel中的特定行

[英]Get last number until specific row in excel

我有一個類似於此列的 excel 電子表格:

id 
----
1
a
b
c 
2
d
e
f
3
g
h
i
1
c
d
e
2
a
d
f

由於數字不是真正的 ID,而是組 ID,因此所需的輸出結構是:

id | group_id
----
a  | 1
b  | 1
c  | 1
d  | 2
e  | 2
f  | 2
g  | 3
h  | 3
i  | 3
c  | 1
d  | 1
e  | 1
a  | 2
d  | 2
f  | 2

我突然想到我可以操縱公式以某種方式獲得最后一個非空值: =LOOKUP(2,1/(B:B<>""),B:B)

我不知道如何更改內部條件以找到最后一個數字/數值。 注意:原始訂單是必不可少的。

有人有建議嗎?

如果您有 Excel 365,則可以使用帶有 xlookup 的溢出公式為每個字母生成匹配的數字,如下所示:

=LET(range,A1:A20,
filteredNumbers,FILTER(range,ISNUMBER(range)),
filteredNumberRowNumbers,FILTER(ROW(range),ISNUMBER(range)),
filteredLetterRowNumbers,FILTER(ROW(range),ISTEXT(range)),
XLOOKUP(filteredLetterRowNumbers,filteredNumberRowNumbers,filteredNumbers,,-1))

自己拿到信就行了

=FILTER(A1:A20,ISTEXT(A1:A20))

在此處輸入圖像描述

嘗試應用SCAN()

在此處輸入圖像描述

C2中的公式:

=FILTER(CHOOSE({1,2},A2:A21,SCAN(0,A2:A21,LAMBDA(a,b,IF(ISNUMBER(b),b,a)))),ISTEXT(A2:A21))

或者,通過訪問VSTACK()HSTACK()來包含標頭:

=VSTACK({"ID","GROUP_ID"},FILTER(HSTACK(A2:A21,SCAN(0,A2:A21,LAMBDA(a,b,IF(ISNUMBER(b),b,a)))),ISTEXT(A2:A21)))

以上所有答案都很棒。 另一個適合我的選擇是:

=LOOKUP(2,1/(ISNUMBER($A$1:A2)),$A$1:A2)

我將該公式插入 B2 並使用快速填充來重用每一行。 然后,我過濾掉了 A 列中帶有字母的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM