ExcelHome技术论坛

 找回密码
 免费注册
QQ登录 只需一步,快速开始
   
高效办公必会的Office99uu优优 永久免费,网表让Excel秒变数据库 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! 国内首部Excel函数公式学习大典 职场充电黑科技, Office微99uu优优 免费下载Excel行业应用视频
300集Office 2010微99uu优优 Tableau-数据可视化工具 突破Excel限制,用活字格提高效率 12门Excel免费公开课任你学
你的Excel 201099uu优优学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 175|回复: 8
打印 上一主题 下一主题

[已解决] 数字去重复,请大家协助,谢谢

[复制链接]
TA的精华主题TA的得分主题
跳转到指定楼层
1
发表于 2018-1-13 12:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 haojiong888 于 2018-1-13 15:16 编辑


请问以上标黄色的输入函数代码是什么,然后下拉得到以上标黄色的数字
excel数字去重.rar 6.68 KB, 下载次数: 9
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 有用有用 无用无用
TA的精华主题TA的得分主题
2
发表于 2018-1-13 13:36 | 只看该作者
这公式一般比较难处理。VBA语句:
  • Sub 合并()
  •     Dim i As Long, j As Long, Ro As Long
  •     Range("B1:B65536").ClearContents
  •     Ro = Range("A" & Rows.Count).End(xlUp).Row
  •     For i = 1 To Ro
  •         If Range("a" & i).Value <> "" Then
  •             j = j + 1
  •             If j = 1 Then
  •                 Range("B" & 1).Value = Range("a" & i).Value
  •             Else
  •                 If InStr(1, Range("B" & 1).Value, Range("a" & i).Value, vbTextCompare) = 0 Then
  •                     Range("B" & 1).Value = Range("B" & 1).Value & " " & Range("a" & i).Value
  •                 End If
  •             End If
  •         End If
  •     Next
  • End Sub
  • 复制代码
    TA的精华主题TA的得分主题
    3
    发表于 2018-1-13 13:37 | 只看该作者
    VBA源程序文件
    excel数字去重.rar 15.13 KB, 下载次数: 3
    TA的精华主题TA的得分主题
    4
     楼主| 发表于 2018-1-13 13:47 | 只看该作者 |楼主
    TA的精华主题TA的得分主题
    5
    发表于 2018-1-13 14:30 | 只看该作者
    Sub dddd()
    Dim d As Object, arr, i%, j%, a
    Set d = CreateObject("scripting.dictionary")
    arr = Range("a1", Cells(Rows.Count, 1).End(xlUp))
    For i = 1 To UBound(arr)
        For j = i + 1 To UBound(arr)
            If arr(i, 1) < arr(j, 1) Then
                a = arr(i, 1)
                arr(i, 1) = arr(j, 1)
                arr(j, 1) = a
            End If
        Next
    Next
    For i = 1 To UBound(arr)
        d(arr(i, 1)) = arr(i, 1)
    Next
    Cells(1, 3) = Join(d.keys)
    End Sub
    TA的精华主题TA的得分主题
    6
    发表于 2018-1-13 14:47 | 只看该作者
    D2下拉{=IFERROR(" "&LARGE(IF(MATCH(B$2:B$11,B$2:B$11,)=ROW(B$2:B$11)-1,B$2:B$11),ROW(A1))&D3,"")
    3941.png (4.54 KB, 下载次数: 0)
    3941.png
    TA的精华主题TA的得分主题
    7
    发表于 2018-1-13 15:42 | 只看该作者
    本帖最后由 Excel实战分享 于 2018-1-13 15:43 编辑

    支持去重后不多于7个小于100的非负整数的情况,工作表函数,三键Ctrl+Shift+Enter:
  • =SUBSTITUTE(TRIM(TEXT(SUM(IFERROR(SMALL(IF(FREQUENCY($A$1:$A$10,$A$1:$A$10),$A1:$A10),ROW($1:$7)),)*100^(ROW($1:$7)-1)),REPT(" ##",7)))," 0"," ")
  • 复制代码

    支持任意数量的任意数字,自定义函数:
  • =getValue($A$1:$A$10)
  • 复制代码
    Function getValue(rngSource As Range) As String
    Dim sRes As String, sTemp As String, rng As Range
    For Each rng In rngSource
        sTemp = " " & rng.Value & " "
        If InStr(sRes, sTemp) = 0 Then sRes = sRes & sTemp
    Next
    getValue = Application.Trim(sRes)
    End Function


    TA的精华主题TA的得分主题
    8
     楼主| 发表于 2018-1-13 18:01 | 只看该作者 |楼主
    =SUBSTITUTE(TRIM(TEXT(SUM(IFERROR(SMALL(IF(FREQUENCY($A2:$A4,$A2:$A4),$A2:$A4),ROW($1:$7)),)*100^(ROW($1:$7)-1)),REPT(" ##",7)))," 0"," ")

    测试OK,感谢!
    TA的精华主题TA的得分主题
    9
    发表于 2018-1-13 21:28 | 只看该作者
    =SUBSTITUTE(TEXT(SUM((COUNTIF(OFFSET(A2,,,{1;2;3}),A2:A4)=1)*A2:A4*10^{0;2;4}),"00 00 00"),"00",)
    您需要登录后才可以回帖 登录 | 免费注册
    本版积分规则
    关闭

    最新热点上一条 /1 下一条

    关注官方微信,每天坐享新鲜教程
    手机版|关于我们|联系我们|ExcelHome    GMT+8, 2018-1-18 02:08 , Processed in 1.096687 second(s), 24 queries , Gzip On.
    Powered by Discuz! X3.3 © 2001-2017 Wooffice Inc.
        沪公网安备 31011702000001号 沪ICP备11019229号 本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师
    快速回复 返回顶部 返回列表
    99uu优优