Excel精英培训网

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

[已解决]求帮忙解决关于提取不重复值的问题

[复制链接]
发表于 2014-1-26 08:17 | 显示全部楼层 |阅读模式
问题附件.rar (8.19 KB, 下载次数: 16)
发表于 2014-1-26 08:50 | 显示全部楼层
回复

使用道具 举报

发表于 2014-1-26 08:57 | 显示全部楼层
本帖最后由 风林火山 于 2014-1-26 09:43 编辑
  1. Sub 提取回单号()
  2.     Dim d As Object, arr, k%, i%
  3.     Set d = CreateObject("scripting.dictionary")
  4.     arr = Sheets("产品逐单列表").Range("h1:h" & Sheets("产品逐单列表").Cells(Rows.Count, 8).End(3).Row)
  5.     For k = 2 To UBound(arr)
  6.         If d.exists(arr(k, 1)) = False And Len(arr(k, 1)) > 1 Then d(arr(k, 1)) = ""
  7.     Next k
  8.     Sheets("效果").Columns("a:a").ClearContents
  9.     Sheets("效果").Range("a1:a" & d.Count + 1).NumberFormatLocal = "@"
  10.     Sheets("效果").Range("a1") = "回单号"
  11.     Sheets("效果").Cells(2, 1).Resize(d.Count, 1) = Application.Transpose(d.keys)
  12. End Sub
复制代码

回单号码提取.zip

16.64 KB, 下载次数: 5

回复

使用道具 举报

发表于 2014-1-26 09:01 | 显示全部楼层
  1. =INDEX(产品逐单列表!H:H,SMALL(IF((MATCH(data,data,)=ROW(INDIRECT("1:"&COUNTA(data))))*(data<>"1"),ROW(INDIRECT("1:"&COUNTA(data)))+1,4^8),ROW(1:1)))&""
复制代码
定义名称data
  1. =OFFSET(产品逐单列表!$H$2,,,COUNTA(产品逐单列表!$H:$H)-1)
复制代码
回复

使用道具 举报

发表于 2014-1-26 09:02 | 显示全部楼层
A2单元格公式:=INDEX(产品逐单列表!H:H,SMALL(IF((产品逐单列表!H$2:H$144<>"1")*(MATCH(产品逐单列表!H$2:H$144,产品逐单列表!H$2:H$144,)+1=ROW($2:$144)),ROW($2:$144),999),ROW(A1)))
公式复制后三键回车(同时按下Ctrl、Shift和Enter三个键),公式下拉。
回复

使用道具 举报

发表于 2014-1-26 09:15 | 显示全部楼层
效果!A2
  1. =INDEX(INDIRECT("产品逐单列表!H2:H"&COUNTA(产品逐单列表!H:H)),SMALL(IF(MATCH(INDIRECT("产品逐单列表!H2:H"&COUNTA(产品逐单列表!H:H)),INDIRECT("产品逐单列表!H2:H"&COUNTA(产品逐单列表!H:H)),)=ROW(INDIRECT("1:"&COUNTA(产品逐单列表!H:H)-1)),ROW(INDIRECT("1:"&COUNTA(产品逐单列表!H:H)-1))),ROW(A1)))
复制代码
三键下拉
回复

使用道具 举报

 楼主| 发表于 2014-1-26 10:53 | 显示全部楼层
tgydslr 发表于 2014-1-26 09:15
效果!A2三键下拉

可以用,但是会把1也提取出来。
用没有办法不提取出1来,因为1原来是空格,是我填上去的!谢谢!
回复

使用道具 举报

 楼主| 发表于 2014-1-26 11:04 | 显示全部楼层
baksy 发表于 2014-1-26 09:02
A2单元格公式:=INDEX(产品逐单列表!H:H,SMALL(IF((产品逐单列表!H$2:H$144"1")*(MATCH(产品逐单列表!H$2:H ...

是我要的效果,但是数据源中1的位置本来是空,我是定位填充的。
如果把1改成空的话,公式貌似会出错。
回复

使用道具 举报

发表于 2014-1-26 11:07 | 显示全部楼层
今天比昨天长 发表于 2014-1-26 11:04
是我要的效果,但是数据源中1的位置本来是空,我是定位填充的。
如果把1改成空的话,公式貌似会出错。

楼主可以把公式中的  【产品逐单列表!H$2:H$144<>"1"   】
改为  【产品逐单列表!H$2:H$144<>""  】就可以了。
回复

使用道具 举报

 楼主| 发表于 2014-1-26 11:11 | 显示全部楼层
baksy 发表于 2014-1-26 11:07
楼主可以把公式中的  【产品逐单列表!H$2:H$144"1"   】
改为  【产品逐单列表!H$2:H$144""  】就可以了 ...

我试了,它返回错误值。不知道为什么
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 15:17 , Processed in 0.396681 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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