|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 wangjguo44 于 2017-11-30 14:21 编辑
不理解你要公式达到什么目的(根据什么条件规则解决什么问题),但是你A7:I 7原有公式=OFFSET(数据源!$A$1,自动生成表!$L7-1,,,4)等都有引用L7的值,但是L7公式中有TEXT(YEAR($I$4),"YYYY")一节是想表达啥意思?
1、$I$4中是空的;
2、空值默认为0;
3、对时间来说,0相当于1900年1月1日0点0分0秒;
4、取其年份(YEAR($I$4))得到的是1900;
5、用函数TEXT(1900,"YYYY")这里的数值1900将被看作日期序列号(即距1900-1-1有1900天的那一天,也即1905-3-14),而不再是年份1900,因而函数TEXT(1900,"YYYY")得到的是文本“1905”,绝不会与数据源!$A$1:$A$15000中任一个数值型的年份相匹配!
因此1、I4不能为空;2、用的函数不对。
其次,1、此公式中为啥用个3*4^6(=12288),通常是用4^8(03版工作表最大行号);
2、取第几小(SMALL),首行就用取第三小(ROW(A3)),并且L8也是第三小?
而且,L7是求得行号,而非单元格的值,没必要=INDEX(ROW(数据源!$A$1:$A$15000);
另外,N(数据源!$A$1:$A$15000=TEXT(YEAR($I$4),"YYYY"))*N(数据源!$G$1:$G$15000=$D$3)本来两个逻辑数(组)相乘,就自然得到数值,用不着先加N函数进行转换。
重说一句,不理解你要公式达到什么目的(根据什么条件规则解决什么问题),难以给出确切公式!
|
|