Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 新闻动态
  • Excel资源
  • 关于我们

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中交流网 联系方式

QQ:18449932 


网  址:www.excel-cn.com  

当前位置:网站首页 > Excel教程 > Excel操作
Excel操作

Excel在有序无序排列中为相同的内容添加相同编号

有如下两种表格:第一种情况是相同姓名有序排列,第二种情况相同姓名凌乱未排序。

e1.jpg

这两种情况下,如何给相同姓名添加相同编号?



函数方法:

相同姓名有序排列:

1、在A2单元格输入编号1;

2、在A3单元格输入公式:=IF(B3=B2,A2,A2+1)

(该公式的含义是:如果B3和B2姓名相同,则填写B2对应的编号A2,否则A2+1;)

e2.gif


相同姓名凌乱无序排列:

其实在真正工作中,有序排列的姓名不多,更多的是无序排列。

1、在F2中输入公式:=IFERROR(VLOOKUP(G2,IF({1,0},G$1:G1,F$1:F1),2,0),N(F1)+1)

向下填充,即得结果

e4.jpg

其中:IF({1,0},G$1:G1,F$1:F1):

是由IF函数重新构建一动态区域,该区域有两列:

  • 第一列是姓名,起始单元格是G1,结束单元格随公式向下填充而扩展;

  • 第二列是编号,起始单元格是F1,结束单元格随公式向下填充而扩展;

公式不管填充到哪一行,该动态区域的结束行都是当前公式所在行的上一行。

VLOOKUP(G2,IF({1,0},G$1:G1,F$1:F1),2,0):

在上述动态区域中精确查找姓名对应的编号。

IFERROR(VLOOKUP(G2,IF({1,0},G$1:G1,F$1:F1),2,0),N(F1)+1):

如果查找姓名G2对应的编号出错,则返回N(F1)+1;

公式向下填充,如果到第12行,则:查找姓名G12对应的编号出错,则返回N(F11)+1。

N函数:

语法:N(VALUE);

功能:将不是数值的值转换为数值形式;

不同参数VALUE,对应的返回值:


本示例中,N(F1)的返回值是0。

注:无序排列的公式同样适合有序排列!


VBA代码方法:

Sub 编号()
    Dim a As Object, i As Long '创建字典/
    Set a = CreateObject("scripting.dictionary")
    For i = 2 To Range("b1").CurrentRegion.Rows.Count
        If Not a.Exists(Cells(i, 2).Value) Then '添加编号到字典,第一个编号不存在),则
            k = k + 1 '计数
            a(Cells(i, 2).Value) = k '给字典key编号,第一个编号是1,第二个编号是2......
            Cells(i, 1) = k '返回给第一列,分组
        Else '如果字典(编号)存在
            Cells(i, 1) = a(Cells(i, 2).Value) '直接在字典里查询编号
        End If
    Next
End Sub

动态图:

e3.gif




参考至:韩老师讲office(头条号)


点击次数:  更新时间:2017-09-12 17:14:00  【打印此页】  【关闭】
上一条:Excel中几个不同查找函数(vlookup,lookup,index,match)的应用与区别  下一条:excel vba实现将多个文件内容复制汇总到一个Excel文件中
本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

中山市天鸣科技发展有限公司 版权所有 1999-2024 粤ICP备10043721号

QQ:18449932

免费Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表、Excel VBA

Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

Powered by MetInfo 5.3.12 ©2008-2026  www.metinfo.cn