ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: apolloh

[Excel 函数与公式] [开_35] [已结]不重复值问题 ★★

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-11-14 14:07 | 显示全部楼层

[求助]

以下是引用wuaza在2005-6-9 21:14:00的发言:

这是我用vba做的。

9QFCuaqb.rar (241.01 KB, 下载次数: 40)

TA的精华主题

TA的得分主题

发表于 2005-11-23 11:30 | 显示全部楼层

将前面的打包 做个记号

6qGqjCif.rar (154.48 KB, 下载次数: 72)

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-12-1 20:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

以上答案已阅,没有更新方法发现,如果你确认有新的解法,请和版主联系,为日后不重复看贴特此标注。

TA的精华主题

TA的得分主题

发表于 2005-12-5 23:23 | 显示全部楼层

Fxaw4m8M.rar (10.2 KB, 下载次数: 32)

我想将本次讨论的一些成果应用到实际工作中去,但遇到了一些麻烦,请高手援手。先谢!

有关问题在文档中有说明。

TA的精华主题

TA的得分主题

发表于 2005-12-6 21:02 | 显示全部楼层

给一个:

=INDEX(B:B,MIN(IF(COUNTIF(F$4:F4,B$5:B$17),65536,ROW(B$5:B$17))))&""

用一个65536代替FALSE,并把结果&"",解决了IF(ROW(1:1)>SUM(1/COUNTIF(DATA,DATA))的问题。

6yVau9gS.rar (12.37 KB, 下载次数: 56)

TA的精华主题

TA的得分主题

发表于 2005-12-6 21:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

gvntw版主,我先仔细看看,刚接触这个话题,感觉很费力。

我也刚刚做了一个,简直不能用。

费了九牛二虎之力,终于把这个相对引用的公式搞出来了,这么复杂,已经没有多少实用价值了。研究、或者钻牛角的价值或许有吧。
主要是返回B列中“铝土矿”左侧对应的A列的工程号。
从来没有搞过动态引用的公式,非常费力。这公式很复杂,相信还能简化,简化后应该有一定的实用价值。
另一问题是:我要将其粘贴到另一页面,但公式已经不管用了。如果添加表名引用,公式会进一步复杂。故只有定义名称了。
希望这儿的高手能给于改进和指正,先谢!

TA的精华主题

TA的得分主题

发表于 2005-12-6 21:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

{=INDIRECT("A"&SMALL(ROW($B$3:$B$121)*IF((($B$3:$B$121)="铝土矿")=TRUE,1),ROW($B121)-COUNTIF($B3:$B121,"铝土矿")-1))}

这是公式:思路是

ROW($B$3:$B$121),这是B列的行号-递增的自然数;

IF((($B$3:$B$121)="铝土矿")=TRUE,1),这是B列中与“铝土矿”对应的行-赋值为1,其余赋值为0。

两数组相乘后得一数组:不为0的就是和“铝土矿”对应的行号。{0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;20;0;0;0;0;0;0;0;0;0;0;31;0;0;0;0;36;0;0;0;0;0;42;0;0;0;46;0;0;0;0;0;0;0;0;55;0;0;0;0;0;0;62;0;0;0;0;0;0;0;70;0;0;0;0;0;0;0;0;79;0;0;0;0;0;85;0;0;0;0;0;0;0;0;0;0;0;0;0;99;0;0;0;0;0;0;106;0;0;0;0;0;0;0;114;0;0;0;0;0;0;121}

如何从这一数组中筛选出不为0的数,是我这一方案最大的败笔(small公式):ROW($B121)-COUNTIF($B3:$B121,"铝土矿")-1)

这是硬凑合的。

TA的精华主题

TA的得分主题

发表于 2005-12-6 22:57 | 显示全部楼层

我学到了高级筛选,还有一些方法

TA的精华主题

TA的得分主题

发表于 2005-12-6 23:21 | 显示全部楼层

定义名称:

x=IF(基本分析2!$B$3:$B$121="铝土矿",ROW(基本分析2!$B$3:$B$121))

引用:

=IF(ROW(1:1)>COUNT(x),"",INDEX(基本分析2!$A:$A,SMALL(x,ROW(1:1))))

——以上是“山菊花”网友给我的回帖,放在这里供交流。

经试验,通用性很好,我在另一页面任意一列粘贴,结果都正确(行号要对应)。如果数据扩充,只需修改名称定义中的数值范围即可。用定义名称后,公式看起来也简单了很多。

TA的精华主题

TA的得分主题

发表于 2005-12-7 00:50 | 显示全部楼层
以下是引用xml00在2005-12-6 23:21:45的发言:

定义名称:

x=IF(基本分析2!$B$3:$B$121="铝土矿",ROW(基本分析2!$B$3:$B$121))

引用:

=IF(ROW(1:1)>COUNT(x),"",INDEX(基本分析2!$A:$A,SMALL(x,ROW(1:1))))

——以上是“山菊花”网友给我的回帖,放在这里供交流。

经试验,通用性很好,我在另一页面任意一列粘贴,结果都正确(行号要对应)。如果数据扩充,只需修改名称定义中的数值范围即可。用定义名称后,公式看起来也简单了很多。

这个解法应该是比较常规的解法,但没有判断属于“铝土矿”的是否重复。

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

本版积分规则

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

GMT+8, 2024-4-28 09:43 , Processed in 0.048611 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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