求教WPS智能工具箱填充123能否实现区间批量自动填充吗?

👇下面是gif演示图片(怎么插入的gif不显示预览啊)

有一个很大的表,需要插入给前面每一个二级指标插入若干行,我是通过标记一个很大的序号,并标记颜色,然后再通过排序将使其插进去,但是顺序需要重新排序,我会筛选1跟我刚刚标记的很大的序号,然后一个个选中1跟大序号,然后点填充123会自动排序,但是如果我的表很大,如何通过智能工具箱的这个功能把所有1~大序号之间全部排序123啊,当前是直接从第一个到选中的最后全部填充了123。

内蒙古
浏览 1609
收藏
3
分享
3 +1
18
+1
全部评论 18
 
千叶
=LET(a,DROP(H.:.J,1),b,INDEX(a,,1),c,UNIQUE(b),REDUCE({"项目","项目1","项目2","排序"},c,LAMBDA(x,y,VSTACK(x,LET(f,FILTER(a,b=y),HSTACK(f,SEQUENCE(ROWS(f),,1)))))))
· 湖北省
1
回复
叶尔孤白
用上了,虽然公式太复杂看不明白,但是真的有效,解决了我的困难,再次感谢
· 内蒙古
回复
 
千叶
是要这样的效果?
· 湖北省
回复
恰同学少年
真强悍!
· 黑龙江省
回复
 
恰同学少年
用宏,实现的话,可扩展性就强大多了。 itemnames 批量添加行的项目名称 addrowsnumber 每次批量添加行时,增加指定的行数 function add_rows_byname(){ let itemnames = ["男装","童装"] let addrowsnumber = 2 for (var i=0;i<itemnames.length;i++){ Range(Range("C1:C9").Find(itemnames[i],undefined,xlValues).Address()).Resize(addrowsnumber).EntireRow.Insert(); } }
· 黑龙江省
回复
恰同学少年
当然可以为itemnames指定同长度的数组,对应每个项目需要插入的行数
· 黑龙江省
回复
 
恰同学少年
试了一下,公式也能填充,但填充效果,我感觉应该不是你想要的(不是源数据,涉及到数据处理问题可能会不理想)。这个公式再扩展一下。递归调用传入的数组参数(就是需要处理的多个项目名称),应该都能实现。也许有人需要。 =LET(addrowsnum,1,nnum,MATCH("童装",$C$1:$C$9),VSTACK(EXPAND(INDIRECT("C1:"&"E"&nnum-1),nnum+addrowsnum-1,,""),INDIRECT("C"&nnum&":E9")))
· 黑龙江省
回复
恰同学少年
addrowsnum名称值为 需要添加的行数。这里是1; 童装 就是要查寻的项目名称。在第一个出现该名称的行号前,插入1个空白行。
· 黑龙江省
回复
 
HC.旋
说人话
· 福建省
回复
叶尔孤白
就是这样,最后一步能不能批量进行
· 内蒙古
回复
 
wils
wils

创作者俱乐部成员

比如要根据单元格的值插入指定数量的行,可以试试 function tt() { for (let i = Range(`A${Rows.Count}`).End(xlUp).Row; i > 1; i--) { Range(`A${i}`).Resize(Range(`A${i - 1}`).Value2, 1).EntireRow.Insert() } }
· 海南省
回复
叶尔孤白
收到,谢谢,我研究一下这段代码
· 内蒙古
回复
 
千叶
没看懂, 做个大概的示例出来
· 湖北省
回复
叶尔孤白
大佬,是这样的,看看有啥好技巧吗,这个演示的少,实际上有几万行数据
· 内蒙古
回复
 
叶尔孤白
要是智能工具箱可以自定义快捷键的话也行啊
· 内蒙古
回复