ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 261|回复: 8

[已解决] 存在包含和被包含关系,就清除被包含的,筛选取最大行数(最大包含)的

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-1-24 00:19 | 显示全部楼层 |阅读模式
本帖最后由 Nsp=娜!再来# 于 2020-1-24 00:23 编辑

提前给各位老师拜个早年了,感谢老师们的付出!
祝福老师们身体健康、万事如意!
请教附件如下:
筛选取最大行数(最大包含)的.zip (129.01 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

发表于 2020-1-24 17:26 | 显示全部楼层
本帖最后由 micch 于 2020-1-24 17:31 编辑

明白了个大概,模拟举例都是相同并包含的情况,如果有不包含而交叉的情况,要什么结果??比如C5,是194,那改怎么办

因为字符处理的原因,函数恐怕会很麻烦

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-24 17:31 | 显示全部楼层
本帖最后由 Nsp=娜!再来# 于 2020-1-24 17:32 编辑
micch 发表于 2020-1-24 17:26
明白了个大概,模拟举例都是相同并包含的情况,如果有不包含而交叉的情况,要什么结果??

因为字符处理 ...

请把具有那6个情况的被包含的清除掉。麻烦老师了!

TA的精华主题

TA的得分主题

发表于 2020-1-24 17:34 | 显示全部楼层
本帖最后由 micch 于 2020-1-24 18:26 编辑

好吧,我只能说函数做不到了,包含与被包含的判断可能性太多了,建议你发代码版求助
不考虑复杂情况,直接根据A列去重的结果,写个代码

  1. Sub AAA()
  2.     arr = Sheets("数据源").[a1].CurrentRegion
  3.     Set d = CreateObject("scripting.dictionary")
  4.     For i = 2 To UBound(arr)
  5.         For k = 2 To 5
  6.             s = s & " " & Mid(arr(i, k), InStrRev(":" & arr(i, k), ":"))
  7.         Next
  8.         d(s) = IIf(arr(i, 1) * 100 + i > Val(d(s)), arr(i, 1) * 100 + i, d(s))
  9.         s = ""
  10.     Next
  11.     ReDim brr(d.Count, 1 To 5)
  12.     For i = 0 To d.Count - 1
  13.         s = d.items()(i) Mod 100
  14.         For k = 1 To 5
  15.             brr(i, k) = arr(s, k)
  16.     Next k, i
  17.     Sheets("结果").[a12].Resize(i, 5) = brr
  18. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2020-1-24 18:21 | 显示全部楼层
  1. =INDEX(数据源!A:A,MOD(MIN(COUNTIFS($B$1:$B1,"*"&RIGHT(数据源!$B$2:$B$9,4),$C$1:$C1,"*"&RIGHT(数据源!$C$2:$C$9,4),$D$1:$D1,数据源!$D$2:$D$9,$E$1:$E1,数据源!$E$2:$E$9)/1%%-数据源!$A$2:$A$9*10+ROW($2:$9)),10))
复制代码


公式数组右拉下拉。仅限于模拟数据,其他复杂情况不一定适用

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-24 18:50 | 显示全部楼层
micch 发表于 2020-1-24 17:34
好吧,我只能说函数做不到了,包含与被包含的判断可能性太多了,建议你发代码版求助
不考虑复杂情况,直接 ...

出现的2个问题.zip (273.67 KB, 下载次数: 1)

TA的精华主题

TA的得分主题

发表于 2020-1-24 18:58 | 显示全部楼层
本帖最后由 micch 于 2020-1-24 19:00 编辑

Sub AAA()
    arr = Sheets("数据源").[a1].CurrentRegion
    Set d = CreateObject("scripting.dictionary")
    For i = 2 To UBound(arr)
        For k = 2 To 5
            s = s & " " & Mid(arr(i, k), InStrRev(":" & arr(i, k), ":"))
        Next
        d(s) = IIf(arr(i, 1) * 10 ^ 4 + i > Val(d(s)), arr(i, 1) * 10 ^ 4 + i, d(s))
        s = ""
    Next
    ReDim brr(d.Count, 1 To 5)
    For i = 0 To d.Count - 1
        s = d.items()(i) Mod 10 ^ 4
        For k = 1 To 5
            brr(i, k) = arr(s, k)
    Next k, i
    Sheets("结果").[d2].Resize(i, 2).NumberFormatLocal = "@"
    Sheets("结果").[a2].Resize(i, 5) = brr
End Sub

评分

参与人数 1鲜花 +2 收起 理由
Nsp=娜!再来# + 2 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-24 19:09 | 显示全部楼层
micch 发表于 2020-1-24 18:58
Sub AAA()
    arr = Sheets("数据源").[a1].CurrentRegion
    Set d = CreateObject("scripting.dictio ...

请问老师:
把10 ^ 4修改为1048576是否可以?

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-1-28 22:28 | 显示全部楼层
Sub AAA()
    arr = Sheets("数据源").[a1].CurrentRegion
    Set d = CreateObject("scripting.dictionary")
    For i = 2 To UBound(arr)
        For k = 2 To 5
            s = s & " " & Mid(arr(i, k), InStrRev(":" & arr(i, k), ":"))
        Next
        d(s) = IIf(arr(i, 1) * 1048576 + i > Val(d(s)), arr(i, 1) * 1048576 + i, d(s))
        s = ""
    Next
    ReDim brr(d.Count, 1 To 5)
    For i = 0 To d.Count - 1
        s = d.items()(i) Mod 1048576
        For k = 1 To 5
            brr(i, k) = arr(s, k)
    Next k, i
    Sheets("结果").[d2].Resize(i, 2).NumberFormatLocal = "@"
    Sheets("结果").[a2].Resize(i, 5) = brr
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2020-4-7 06:23 , Processed in 0.083618 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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