Google Sheets中使用IFS函数触发Mismatch Range错误,请求调试
问题分析与修正方案
错误根源
IFS函数要求每个分支返回单个值(1行1列),但你的GOOGLEFINANCE调用返回的是包含表头和数据的2行2列区域,导致尺寸不匹配,触发了IFS has mismatched range sizes错误。另外原公式的日期计算逻辑有误,today()-(today()-$C$1+4)等价于$C$1-4,无法实现“周六取周五、周日取周四High值”的需求。
修正后的公式
方案1:优化IFS写法
=IFS( WEEKDAY($C$1,2)=6, INDEX(GOOGLEFINANCE($S$1,"high",$C$1-1),2,2), WEEKDAY($C$1,2)=7, INDEX(GOOGLEFINANCE($S$1,"high",$C$1-2),2,2) )
方案2:更简洁的IF嵌套写法
=IF(WEEKDAY($C$1,2)=6, INDEX(GOOGLEFINANCE($S$1,"high",$C$1-1),2,2), IF(WEEKDAY($C$1,2)=7, INDEX(GOOGLEFINANCE($S$1,"high",$C$1-2),2,2), "") )
关键调整说明
- 日期逻辑修正:
- 当
$C$1是周六(WEEKDAY($C$1,2)=6),取前1天(周五)的High值,对应$C$1-1 - 当
$C$1是周日(WEEKDAY($C$1,2)=7),取前2天(周四)的High值,对应$C$1-2
- 当
- 用INDEX提取单个值:
INDEX(GOOGLEFINANCE(...),2,2)专门提取GOOGLEFINANCE返回区域的第2行第2列(即实际的High数值),避免返回整个2行2列的数组,满足IFS对返回值尺寸的要求。
内容的提问来源于stack exchange,提问作者Rinku
相关产品推荐
相关产品推荐

