Re: [算表] 在陣列中回傳最後一筆相同序號的位置

作者: Modeler (♥ε ♥)   2024-08-26 16:01:17
※ 引述《windknife18 (windknife18)》之銘言:
: F2
: =map(filter(A2:A1000,A2:A1000<>""),lambda(x,lookup("龘",
: tocol(arrayformula(if('發放紀錄'!C2:Z1000=x,'發放紀錄'!B2:B1000,NA())),3))))
: ※ 引述《Modeler (♥ε ♥)》之銘言:
: : 軟體:google試算表
: : 版本:線上
: : 見本:https://reurl.cc/VM8Z8Z
: : 我希望達到的效果是在兌換紀錄的A欄去比對發放紀錄頁的C:F,
: : 然後在兌換紀錄F欄上回傳最後一個相同序號所對應的姓名,
: : (這是比較簡化的,因為後續還要加上時間去限制匡列範圍)
: : 目前我的想法是於F2輸入以下函式
: : =INDEX('發放紀錄'!$B:$B,SUMPRODUCT(('發放紀錄'!$C:$H=SMALL('發放紀錄
: : '!$C:$H,COUNTIF('發放紀錄'!$C:$H,A2)))*ROW('發放紀錄'!$C:$H)))
: : 但是得不出想要的結果,
: : 想求高手賜教,謝謝。
感謝大神的回應,
但是這樣並無法得到我所需要的回傳,
例如在F9回傳時,因為所借出日期為7/23,
但發出日期有5/31和8/12,
回傳須為5/31這筆也就是回傳結果為石原聰美,
所以在匡列篩選範圍我會加上時間條件,
以下是我的想法:
以A欄的序號在'發放紀錄'!C:ZZ去篩選出早於D欄日期的最後一筆相同序號所在的列號
然後就能以INDEX去回傳所對應列號的人員,
F2
=INDEX('發放紀錄'!$B:$B,SUMPRODUCT((INDIRECT("'發放紀錄'!$C1:$K"&MATCH($D2,
'發放紀錄'!$A:$A))=SMALL(INDIRECT("'發放紀錄'!$C1:$K"&MATCH($D2,'發放紀錄
'!$A:$A)),COUNTIF(INDIRECT("'發放紀錄'!$C1:$K"&MATCH($D2,'發放紀錄
'!$A:$A)),A2)))*ROW(INDIRECT("'發放紀錄'!$C1:$K"&MATCH($D2,'發放紀錄
'!$A:$A)))))
但這樣做似乎會有問題,
若是匡列範圍有兩筆以上相同的序號,
就會變成去搜尋最近似的序號而不是相同的,
因為發出紀錄橫向數列是確定每天不會重複(同一天所發出的序號不會重複)
請求大神賜教

Links booklink

Contact Us: admin [ a t ] ucptt.com