ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 自下而上合并A列所有不重复数据显示在最后数据行的对应位置

[复制链接]

TA的精华主题

TA的得分主题

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

1.gif

老师:如果计算结果如C列所示的那样--要求逐行显示自此行以上区域内的所有不重复数据,公式又该怎样写?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-20 03:38 | 显示全部楼层
本帖最后由 WYS67 于 2019-5-20 07:42 编辑

老师:比葫芦画瓢抄写您的公式,逐行显示计算结果的公式为:=IF(A5<>"",CONCAT(UNIQUE(RIGHT(TEXT(SORT((ROW($5:5)+$A$5:$A5/10)*($A$5:$A5<>""),1,-1),"0.0")))),"")

如果需要屏蔽不足十位数的计算结果【D5:D23】为空白,除了增加十位数的判断IF(LEN(原公式)<10,"",原公式)外,还有没有其它办法?

=IF(A5<>"",IF(LEN(CONCAT(UNIQUE(RIGHT(TEXT(SORT((ROW($5:5)+$A$5:$A5/10)*($A$5:$A5<>""),1,-1),"0.0")))))<10,"",CONCAT(UNIQUE(RIGHT(TEXT(SORT((ROW($5:5)+$A$5:$A5/10)*($A$5:$A5<>""),1,-1),"0.0"))))),"")   这样也太啰嗦了吧?

TA的精华主题

TA的得分主题

发表于 2019-5-20 08:05 | 显示全部楼层
WYS67 发表于 2019-5-20 03:38
老师:比葫芦画瓢抄写您的公式,逐行显示计算结果的公式为:=IF(A5"",CONCAT(UNIQUE(RIGHT(TEXT(SORT((RO ...
  1. =IF(AND(A6="",A5<>""),CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),)))),"")
复制代码
这样写就可以了,开始一心想用预览函数考虑复杂了。原楼公式早就改了,当时直接在最后行写的,所以懒得想直接套容错了

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-20 08:43 | 显示全部楼层
本帖最后由 WYS67 于 2019-5-20 08:44 编辑
jivy1212 发表于 2019-5-20 08:05
这样写就可以了,开始一心想用预览函数考虑复杂了。原楼公式早就改了,当时直接在最后行写的,所以懒得想 ...

1.gif


老师:比葫芦画瓢抄写您的公式,逐行显示计算结果的公式则为:D5 =IF(A5<>"",CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),)))),"")

如果需要屏蔽不足十位数的计算结果【D5:D23】为空白,除了增加十位数的判断IF(LEN(原公式)<10,"",原公式)外,还有没有其它办法

如E5=IF(A5<>"",IF(LEN(CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),)))))<10,"",CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),))))),"")

有点太啰嗦了!

TA的精华主题

TA的得分主题

发表于 2019-5-20 09:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
WYS67 发表于 2019-5-20 08:43
老师:比葫芦画瓢抄写您的公式,逐行显示计算结果的公式则为:D5 =IF(A5"",CONCAT(UNIQUE(N(OFFSET ...

判断去重后小于10位方法有很多,但要短没想的好的办法,你公式基础上可以略短
  1. =IF(A5<>"",IF(COUNT(UNIQUE($A$5:a5))<10,"",CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),))))),"")
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-20 09:23 | 显示全部楼层
jivy1212 发表于 2019-5-20 09:14
判断去重后小于10位方法有很多,但要短没想的好的办法,你公式基础上可以略短

唉,基础不牢,地动山摇啊!

再次感谢老师施以援手!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-21 03:13 | 显示全部楼层
本帖最后由 WYS67 于 2019-5-21 07:42 编辑
jivy1212 发表于 2019-5-20 09:14
判断去重后小于10位方法有很多,但要短没想的好的办法,你公式基础上可以略短

1.gif

老师:您35楼的公式=IF(A5<>"",IF(COUNT(UNIQUE($A$5:a5))<10,"",CONCAT(UNIQUE(N(OFFSET(A5,1-ROW($1:1),))))),"")  非常完美地解决了问题!

    但公式针对的是:数据源A列每个单元格里只有一个数字。如果数据源A列是3【或n个,但最多不超过九位数,如053278392】个数字【如上边截图所示】,按逐行从右到左,自下而上的顺序去重后显示在B列的对应位置。应该怎样编写公式?

从右到左,自下而上提取A列的不重复数字.zip (11.86 KB, 下载次数: 142)

TA的精华主题

TA的得分主题

发表于 2019-5-21 08:19 | 显示全部楼层
WYS67 发表于 2019-5-21 03:13
老师:您35楼的公式=IF(A5"",IF(COUNT(UNIQUE($A$5:a5))

公式当然不可能适应所有情况。判断条件不写了,在单位没有条件测试。
  1. =CONCAT(UNIQUE(--MID(CONCAT(T(OFFSET(A5,1-ROW($1:1),))),ROW(OFFSET($A$1,,,ROW(A1)*3)),1)))
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-21 08:42 | 显示全部楼层
jivy1212 发表于 2019-5-21 08:19
公式当然不可能适应所有情况。判断条件不写了,在单位没有条件测试。

UNIQUE函数好像只能在OFFICE365里使用,不能在2019专业增强版里使用。

TA的精华主题

TA的得分主题

发表于 2019-5-21 08:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
WYS67 发表于 2019-5-21 08:42
UNIQUE函数好像只能在OFFICE365里使用,不能在2019专业增强版里使用。

预览函数在OFFICE2016Mondo以及OFFICE 365开通预览通道或狗粮通道可用,而2016、2019是阉割的固化版不可能有这种实时更新的新增功能,或许2022固化版本可能存在。

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-10 03:48 , Processed in 0.047883 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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