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