Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1996|回复: 7

对新增内容匹配序号

[复制链接]
发表于 2019-10-15 16:52 | 显示全部楼层 |阅读模式
对新增内容匹配序号,如附加所示

对新增内容匹配序号.zip

9.83 KB, 下载次数: 5

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-10-15 17:42 | 显示全部楼层
111111.jpg
对应序号AAA是怎么得出来的?写代码根据什么判断对应的是AAA,CCC啥的?
回复

使用道具 举报

发表于 2019-10-15 17:53 | 显示全部楼层
Sub 增加()
Dim arr, row As Long
With ActiveSheet
     arr = .Range("I4:K" & .Cells(Rows.Count, "i").End(xlUp).row)
     row = .Cells(Rows.Count, "a").End(xlUp).row + 1
     .Cells(row, 3).Resize(UBound(arr), UBound(arr, 2)) = arr
     .Cells(row, 2).Resize(UBound(arr)).FormulaR1C1 = "=COUNTIF(R2C3:R[-1]C3,RC[1])+1"
     .Cells(row, 1).Resize(UBound(arr)).FormulaR1C1 = "=LEFT(INDEX(C1,MATCH(RC3,C3,0)),FIND(""-"",INDEX(C1,MATCH(RC3,C3,0))))&RC[1]"
     .Cells(row, 1).Resize(UBound(arr), 2) = .Cells(row, 1).Resize(UBound(arr), 2).Value
End With
End Sub


对新增内容匹配序号.rar

19.91 KB, 下载次数: 1

评分

参与人数 1学分 +2 收起 理由
1005423860 + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-10-16 08:49 | 显示全部楼层
0126 发表于 2019-10-15 17:53
Sub 增加()
Dim arr, row As Long
With ActiveSheet

你好,请问下FormulaR1C1 = "=COUNTIF(R2C3:R[-1]C3,RC[1])+1" 这句能否解释下啊,我想换下订单号的列,但是换了之后就出现错误了。。谢谢
回复

使用道具 举报

 楼主| 发表于 2019-10-16 09:07 | 显示全部楼层
0126 发表于 2019-10-15 17:53
Sub 增加()
Dim arr, row As Long
With ActiveSheet

如 订单号变了列数后,如何实现原来功能啊

对新增内容匹配序号(修改).zip

20.13 KB, 下载次数: 3

回复

使用道具 举报

发表于 2019-10-16 09:38 | 显示全部楼层
本帖最后由 0126 于 2019-10-16 09:46 编辑
1005423860 发表于 2019-10-16 08:49
你好,请问下FormulaR1C1 = "=COUNTIF(R2C3:R[-1]C3,RC[1])+1" 这句能否解释下啊,我想换下订单号的列, ...

以r1c1引用单元格方式录入,"=COUNTIF(R2C3:R[-1]C3,RC[1])+1" 。R2是引用第二行,c3是引用第三列,r2c3那就是引用c2单元格。省略数字是引用当前列或行,用括号扩起来数字表示根据当前单元格偏移几格,R[-1]C3,录入单元格是G10的话,引用单元格就是c9,

假如订单号变成e列
FormulaR1C1 = "=COUNTIF(R2C3:R[-1]C3,RC[1])+1"    改成    FormulaR1C1 = "=COUNTIF(R2C5:R[-1]C5,RC5)+1"
FormulaR1C1 = "=LEFT(INDEX(C1,MATCH(RC3,C3,0)),FIND(""-"",INDEX(C1,MATCH(RC3,C3,0))))&RC[1]"    改成    FormulaR1C1 = "=LEFT(INDEX(C1,MATCH(RC5,C5,0)),FIND(""-"",INDEX(C1,MATCH(RC5,C5,0))))&RC[1]"

你可以去掉下面这句,就可以看到录入的公式,或者录制输入单元格公式的宏熟练
.Cells(row, 1).Resize(UBound(arr), 2) = .Cells(row, 1).Resize(UBound(arr), 2).Value






评分

参与人数 1学分 +2 收起 理由
1005423860 + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-10-16 21:15 | 显示全部楼层
0126 发表于 2019-10-16 09:38
以r1c1引用单元格方式录入,"=COUNTIF(R2C3:R[-1]C3,RC[1])+1" 。R2是引用第二行,c3是引用第三列,r2c3 ...

老师你好,我们在实际运用过程中发现,很多序号并不是从1开始的,但是还是想用该方法排序生成序号,想过用max取序号最大值然后+1这么排列,但是怎么运行都有问题,可否再指点下 谢谢!!

对新增内容匹配序号(修改111).zip

20.11 KB, 下载次数: 9

回复

使用道具 举报

发表于 2019-10-17 10:40 | 显示全部楼层
1005423860 发表于 2019-10-16 21:15
老师你好,我们在实际运用过程中发现,很多序号并不是从1开始的,但是还是想用该方法排序生成序号,想过用max ...

     嗯改成这个吧,
     .Cells(row, 2).FormulaArray = "=INDEX(R1C2:R[-1]C2,MAX((R1C3:R[-1]C3=RC3)*ROW(R1C3:R[-1]C3)))+1"
     .Cells(row, 2).AutoFill .Cells(row, 2).Resize(UBound(arr))


评分

参与人数 1学分 +2 收起 理由
1005423860 + 2 学习

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 09:49 , Processed in 0.380052 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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