假設試算表結構如下:
A:A
):顧客姓名B:B
):訂單日期C:C
):商品名稱D:D
):數量E:E
):金額FILTER
+ SORT
找出最新訂單G2:J2
,帶出最近一次的訂單資訊:=INDEX(SORT(FILTER(B2:E100, A2:A100=F2), B2:B100, FALSE), 1, 0)
FILTER(B2:E100, A2:A100=F2)
: 先篩選出 A2:A100
符合 F2
的顧客訂單SORT(..., B2:B100, FALSE)
: 按 B
欄的「訂單日期」排序,從最新到最舊INDEX(..., 1, 0)
: 取出最新的一筆訂單F2 = "王小明"
,則 G2:J2
自動填充:2024/03/14 產品D 4 1000
QUERY
函數這個方法也適合 G2:J2
,功能與上面類似:
=QUERY(A2:E100, "SELECT B, C, D, E WHERE A = '" & F2 & "' ORDER BY B DESC LIMIT 1", 0)
WHERE A = '" & F2 & "'
:篩選與 F2
(顧客名稱)相符的資料ORDER BY B DESC
:按 B
欄「訂單日期」從新到舊排序LIMIT 1
:只取出最新一筆資料📌 範例
F2 = "王小明"
,則 G2:J2
自動填充:2024/03/14 產品D 4 1000
VLOOKUP
(適用於已按日期排序的資料)如果你的訂單是已經按照日期從最新到最舊排序,可以用 VLOOKUP
找出最新的一筆:
=ARRAYFORMULA(VLOOKUP(F2, SORT(A2:E100, B2:B100, FALSE), {2,3,4,5}, FALSE))
SORT(A2:E100, B2:B100, FALSE)
: 先把 A:E
按 B
欄「日期」從最新到最舊排序VLOOKUP(F2, ..., {2,3,4,5}, FALSE)
: 找出 F2
的第一筆資料並回傳對應欄位📌 範例
F2 = "王小明"
,則 G2:J2
自動填充:2024/03/14 產品D 4 1000
這樣的設計可以確保當你在 F2
輸入顧客姓名時,G2:J2
會自動顯示該顧客最新的訂單資訊!