Google Sheets技术求助:勾选C列复选框时按顺序提取Q列值
学生贷款追踪表:复选框勾选后依次提取对应Q列值的解决方法
问题说明
你需要实现:当C列复选框被勾选时,目标单元格依次提取对应行Q列的剩余利息值——第一个勾选显示第一个对应Q值,第二个勾选显示下一个,以此类推。当前使用的=INDEX(Q19:Q258,IF($C$19:$C$258=True,MATCH(Q19:Q258,Q19:Q258,0)))无法满足需求,调整后报错。
解决方法
1. 支持动态数组的Excel版本(365/2021及以上)
直接用FILTER函数筛选所有勾选行的Q列值,公式输入后会自动溢出显示所有符合条件的结果:
=FILTER(Q19:Q258, $C$19:$C$258=TRUE, "")
如果需要单个单元格对应单个勾选值(比如第一个勾选值放A1,第二个放A2),用INDEX+FILTER组合,下拉公式即可:
=INDEX(FILTER(Q19:Q258, $C$19:$C$258=TRUE), ROW(A1))
2. 旧版Excel(不支持动态数组)
使用INDEX+SMALL+IF数组公式,输入后必须按Ctrl+Shift+Enter确认(不能只按Enter):
=INDEX(Q19:Q258, SMALL(IF($C$19:$C$258=TRUE, ROW(Q19:Q258)-ROW(Q19)+1), ROW(A1)))
- 逻辑:
IF函数先找出所有C列勾选行的相对位置,SMALL按顺序提取第1、2、3...个位置,最后INDEX提取对应Q列值。 - 若要避免无勾选时显示
#NUM!,可以套上IFERROR:
=IFERROR(INDEX(Q19:Q258, SMALL(IF($C$19:$C$258=TRUE, ROW(Q19:Q258)-ROW(Q19)+1), ROW(A1))), "")
内容的提问来源于stack exchange,提问作者user29934757
相关产品推荐
相关产品推荐

