ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: WYS67

[求助] 在C:D列插入正确的行数,自动补齐A列被遗漏的期序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-5 17:15 | 显示全部楼层
  1. =IF(ROW(A1)>(INT(B$5)-INT(SMALL(B:B,2))+1)*B$2,"",MOD(ROW()-5,B$2)+1)
复制代码
C5
  1. =IFNA(VLOOKUP(C5,OFFSET(A5,-MIN(ROW()-1,B$2-1),,MIN(ROW(),B$2),2),2,),"")
复制代码
D5

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-5 17:17 | 显示全部楼层
micch 发表于 2018-12-5 16:31
C5,下拉,D列直接vlookup

老师:想计算出B5日期,减去B列数据最后行B10972的日期,共有多少天?公式应该怎么写?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-5 17:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 WYS67 于 2018-12-5 17:30 编辑

20181205172234.png

老师:在D列输入公式 =IFNA(VLOOKUP(C5,OFFSET(A5,-MIN(ROW()-1,B$2-1),,MIN(ROW(),B$2),2),2,),"")  后,D10993:D11484【C11484是C列插入被遗漏期序后的数据最后行】怎么都是空白?这个显示结果不正确啊。

只有断断续续的被遗漏,不可能D10993:D11484都是被遗漏。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-5 17:42 | 显示全部楼层

老师:C列最后行在C11484这个结果很正确。感觉错误出现在D列公式上。

TA的精华主题

TA的得分主题

发表于 2018-12-5 18:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
呃,D列公式没验证,一会重写一个吧,应该是遗漏数量太多导致vlookup的范围太小了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-5 18:26 | 显示全部楼层
本帖最后由 WYS67 于 2018-12-5 18:30 编辑
micch 发表于 2018-12-5 18:17
呃,D列公式没验证,一会重写一个吧,应该是遗漏数量太多导致vlookup的范围太小了

老师:是不是A列的期序重复太多导致的?下面的截图是原始数据,其中A列的最后两个字符代表期序。依次编写C:D列的公式就不会出现错误了吧?因为A5:A10972的期序加上年月日,每一行都是唯一值,而B5:B10972的每一行也是唯一值,更容易与A5:A10972一一对应。 20181205182132.png

在C D列自动补齐A B列遗漏的期序 .zip (448.42 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

发表于 2018-12-5 18:34 | 显示全部楼层
  1. =IFNA(VLOOKUP(C5,INDEX(A:A,SMALL(IF(A$4:A6>A$5:A7,ROW($5:7)),INT((ROW()-5)/B$2)+1)):B5,2,),"")
复制代码
D5,数组

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-12-5 18:44 | 显示全部楼层
根据日期判断不太合适,因为你的模拟数据显示并不是同一期都是同一日期,所以只好按照期数来定位;如果是同一期都是同一天,那就可以根据日期定位了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-12-5 18:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

怪哉!把17楼的公式复制粘贴进D5,下拉至D12000,D5:D11484显示的结果都正确;D11485以下本应显示空白,但只有D11485:D11566【正好是一个周期82和行数】显示了空白,而D11567:12000却显示#NUM!错误!这是怎么回事,如何屏蔽为空白?
20181205184701.png

TA的精华主题

TA的得分主题

发表于 2018-12-5 18:59 | 显示全部楼层
那就是期数不对,根据日期最大最小期数是错的,这就要看你的数据到底是什么情况了,如果是一期一天,那就是模拟数据错了,如果不是那就B列数据不能用来判断期数,还是得用A列数据判断期数;

看你的B列数据,应该是随便模拟的数据吧,所以要看真实数据到底是什么情况了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 03:44 , Processed in 0.025930 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表