Excel表格函数逻辑排错

之前用Excel做了一个, 可以根据历史偏移,得出对应时间所在时序的表.

时间节点空

最近发现这表某个时间节点之后为空.

函数如此:

=TEXT(IFERROR(INDEX(表3,MATCH($K54,$D$2:$D$999,0),1)-INDEX(表4,MATCH(R$1,$E$2:$E$1000,0),6),""),"[>];")

排错

-- 核心要解决
INDEX(表3,MATCH($K54,$D$2:$D$999,0),1)-INDEX(表4,MATCH(S$1,$E$2:$E$1000,0),6)
INDEX(表3,MATCH($K54,$D$2:$D$999,0),1)-INDEX(表4,名字在偏移表中定位,6)
INDEX(表3,MATCH($K54,$D$2:$D$999,0),1)-偏移天数
INDEX(表3,日期在总学习日期表中定位,1)-偏移天数
获取学习进度-偏移天数

---- 分析要素
	-- 名字在偏移表中定位
	=MATCH(S$1,$E$2:$E$1000,0)
	-- 偏移天数
	=INDEX(表4,MATCH(S$1,$E$2:$E$1000,0),6)

	-- 当前日期在总学习日期表中定位
	=MATCH($K54,$D$2:$D$999,0)



--- 逻辑错误, 应先计算日期所在-偏移天数. 再定位

INDEX(表3,MATCH($K54,$D$2:$D$999,0),1)-INDEX(表4,MATCH(S$1,$E$2:$E$1000,0),6)
-- 修改为
INDEX(表3,MATCH($K54,$D$2:$D$999,0)-INDEX(表4,MATCH(S$1,$E$2:$E$1000,0),6),1)

解决问题

文本无法显示


依旧采用之前的方式

=TEXT(IFERROR(INDEX(DATA!$A$2:$C$999,INDEX(locationTable,MATCH(E$5,DATA!$K$2:$K$999,0),MATCH($B13,DATA!$L$1:$T$1,0)),3),""),"[>];")

重新排查了一下逻辑, 没有发现问题.
但是在测试的时间发现, 其中时间表格内索引一旦超过50就会出问题. 推测应该是变量出了问题.
查看的时候果然是之前有一个变量locationTable在定义的时候使用的Excel的名称管理快速拖拽定义的. 只定义到了50.

改回多点即可

posted @ 2021-02-08 14:51  Jrri  阅读(231)  评论(0编辑  收藏  举报