ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2042|回复: 11

[求助] 如何按指定的包含的关键字分表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-8-23 14:13 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 aman1516 于 2014-8-23 20:16 编辑

一个订单跟踪表引出很多新的问题,求助如下:

      按整个单元字符的关键字分表EH有很多示例,而按首字符、未字符分表本人也求助过,都得到了老师们的帮助,但今天又遇到新问题,如何按“包含”的关键字进行分表。
      当指定几个关键字,如Array("成品整灯","成品灯盖","成品灯管","成品线路板")如何在F列中,按包含指定的关键字进行分表并以关键字命名。如无指定关键字的,则分到"其它"工作表中。
      或者,物料代码第三个字段(1.01.01.14.0006, 1.01.04.01.0009, 1.01.03.01.0046, 1.01.02.01.0038)与上面要求是对应的。按E列第三个字段分表也可行。

      而且A~O列有合并单元格(麻烦)。但有老师已帮忙可实现排序、筛选功能,只是不知怎样与分表结合起来。
      动态指定列进行排序,有合并单元格的筛选方法
             http://club.excelhome.net/thread-1144615-1-1.html


      详见附件:    如何按指定的包含的关键字分表.rar (19.54 KB, 下载次数: 26)          请大家帮忙,谢谢!

上面的描述有误,分表的依据及对应的数据是:成品整灯——成品整灯;成品灯盖——成品整灯+成品灯盖;成品管——成品整灯+成品灯管;成品线路板——成品整灯+成品线路板;   即除成品整灯外,其它都是双关键字筛选分表,见五楼的要求,以及重新下载六楼的更新附件。




TA的精华主题

TA的得分主题

发表于 2014-8-23 14:46 | 显示全部楼层
  1. arr = [a5:ah276]
  2. brr = YjhSort(arr, "SP1;.;2", 5, , , , 2)
复制代码
按物料代码第三个字段排序

TA的精华主题

TA的得分主题

发表于 2014-8-23 15:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yjh_27 于 2014-8-23 15:28 编辑

成品整灯,筛选,分表
后二句代码参照楼下,编辑不了
  1. Sub bb()
  2. arr = [a5:ah276]

  3. crr = Array("成品整灯")
  4. 'crr = Array(2014)
  5. brr = YjhSort(arr, "a", "6u2;1;1", , , , 2, , , crr)

  6. Sheets("成品整灯").Range("a5").Resize(UBound(arr, 1), UBound(arr, 2)) = ""
复制代码

TA的精华主题

TA的得分主题

发表于 2014-8-23 15:08 | 显示全部楼层
其他,,筛选,分表
  1. Sub bb()
  2. arr = [a5:ah276]

  3. crr = Array("成品整灯", "成品灯盖", "成品灯管", "成品线路板")
  4. 'crr = Array(2014)
  5. brr = YjhSort(arr, "a", "6u2;1;3", , , , 2, , , crr)

  6. Sheets("其他").Range("a5").Resize(UBound(arr, 1), UBound(arr, 2)) = ""
  7. Sheets("其他").Range("a5").Resize(UBound(brr, 1), UBound(brr, 2)) = brr
  8. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-23 20:10 | 显示全部楼层
yjh_27 发表于 2014-8-23 15:08
其他,,筛选,分表

不好意思,回来才发现附件及一楼的描述有一点弄错了,就是成品整灯是还要分到各分表里面去的。

    分表的依据及对应的数据是:成品整灯——成品整灯;成品灯盖——成品整灯+成品灯盖;成品管——成品整灯+成品灯管;成品线路板——成品整灯+成品线路板;

    即除成品整灯外,其它都是双关键字筛选并分表。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-23 20:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
重新上个分表效果的附件:   如何按指定的包含的关键字分表.rar (29.23 KB, 下载次数: 13)     请大家重新下载。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-25 14:37 | 显示全部楼层
目前的代码只得到各个独立结果:   按指定的包含的关键字分表.rar (90.01 KB, 下载次数: 11)   

对 YjhSort  函数的各对数与对应关系还在琢磨之中,不知如何做双条件筛选。  不过, yjh_27  真的很牛!

TA的精华主题

TA的得分主题

发表于 2014-8-25 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
aman1516 发表于 2014-8-23 20:10
不好意思,回来才发现附件及一楼的描述有一点弄错了,就是成品整灯是还要分到各分表里面去的。

    分 ...

成品灯盖——成品整灯+成品灯盖
  1. Sub bb()
  2. arr = [a5:ah276]

  3. crr = Array("成品整灯", "成品灯盖")
  4. 'crr = Array(2014)
  5. brr = YjhSort(arr, "a", "6u2;1;1", , , , 2, , , crr)

  6. Sheets("成品灯盖").Range("a5").Resize(UBound(arr, 1), UBound(arr, 2)) = ""
  7. Sheets("成品灯盖").Range("a5").Resize(UBound(brr, 1), UBound(brr, 2)) = brr
  8. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-26 08:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 aman1516 于 2014-8-26 09:10 编辑
yjh_27 发表于 2014-8-25 16:40
成品灯盖——成品整灯+成品灯盖



就只直接增加一个关键字吗?  另外:  brr = YjhSort(arr, "a", "6u2;1;1", , , , 2, , , crr)

与“其它”的筛选代码中,只有  "6u2;1;1", 与 "6u2;1;3",  里面的一个1与3的差别:即一个为“不在自定义序列的排除,输出数组行数变”,一个为“在自定义序列的排除,输出数组行数变”。

'参数3:   L          排序列,多列以“,”分隔。可省略,默认为:1
'                     u;n;p        本列按自定义序列(参数10)排序,n 自定义序列 列号(默认首列)
'                         u0           全相同
'                         u1           (默认)前面相同
'                         u2           含自定义序列
'                         p=0          不在自定义序列的排尾(默认),输出数组行数不变
'                         p=1          不在自定义序列的排除,输出数组行数变
'                         p=2          在自定义序列的排尾,输出数组行数不变
'                         p=3          在自定义序列的排除,输出数组行数变
'                         p=4          区间,已排序(升序)
'                         p=5          区间,已排序(降序)
'                         p=6          最接近,已排序
'                         p=7          区间,未排序
'                         p=8          最接近,未排序
'                     A            本列数值按绝对值排序
'                     S            本列字符串的字符顺序是反向的(倒卷的)
'                     R;n          本列处理重复(如:1,2R 为第2列处理重复)  后面的排序将被忽略(已为唯一,无需再排)
'                        n=1           仅唯一
'                        n=2           仅多重(保留一个)
'                        n=3           去重复  默认
'
“6u2 ” 对应上面是什么意思?    u2 ——含自定义序列 , 6 是指第6列吗?  复杂弄不懂啊。
因为是按关键字分表的,分完表之后再我想对各个分表再按B列“单据编号”进行排序,之前有个排序代码是多列排序的,这里要怎样改呢?


TA的精华主题

TA的得分主题

发表于 2014-8-26 14:08 | 显示全部楼层
aman1516 发表于 2014-8-26 08:49
就只直接增加一个关键字吗?  另外:  brr = YjhSort(arr, "a", "6u2;1;1", , , , 2, , , crr)

与 ...

是的,理解正确。

分完表之后再我想对各个分表再按B列“单据编号”进行排序:
试试
brr = YjhSort(arr, "a,a", "6u2;1;1,2", , , , 2, , , crr)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 07:49 , Processed in 0.041633 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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