Google Sheets技术问询:筛选列中最新指定交易类型并返回对应行数值
Google Sheets技术问询:筛选列中最新指定交易类型并返回对应行数值
嘿,我来帮你搞定这个股票交易追踪表的问题~
你之前用VLOOKUP踩的坑我太懂了:VLOOKUP默认是从上到下找第一个匹配项,所以FALSE参数会返回最上面的$19.50;而TRUE参数是近似匹配,还要求查找列排序,对你的场景完全不适用,难怪会拿到错误的结果。
给你分享两个实用的解决方案,你可以根据自己的习惯选:
方案1:用INDEX+MATCH+MAXIFS组合(兼容性好,适合所有版本)
假设你的表格里:
- A列是交易日期
- B列是交易类型(比如Sold CSP、Sold CC)
- C列是对应的利润/亏损值
直接用下面的公式就能拿到最新的「Sold CSP」对应的数值:
=INDEX(C:C, MATCH(MAXIFS(A:A, B:B, "Sold CSP"), A:A, 0))
原理很简单:
MAXIFS(A:A, B:B, "Sold CSP"):先找出所有「Sold CSP」交易里的最新日期(最大的日期值)MATCH(..., A:A, 0):定位这个最新日期在A列的行号INDEX(C:C, ...):根据行号返回C列对应的利润值
方案2:用QUERY函数(更灵活,适合处理表格数据)
如果你喜欢用SQL风格的语法,QUERY函数会更直观:
=QUERY(A:C, "SELECT C WHERE B='Sold CSP' ORDER BY A DESC LIMIT 1", 0)
拆解一下:
SELECT C:指定要返回的利润列WHERE B='Sold CSP':筛选出交易类型为「Sold CSP」的记录ORDER BY A DESC:按交易日期从新到旧排序LIMIT 1:只取排序后的第一条(也就是最新的那条)- 最后的
0表示你的表格有表头(如果没有表头就改成1)
👉 小提示:如果你的数据是从第2行开始(第1行是表头),可以把公式里的A:C改成A2:C,这样公式计算会更高效哦~
备注:内容来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

