ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 两组数在范围内合并的方法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-1-26 22:21 | 显示全部楼层 |阅读模式
本帖最后由 sz414 于 2021-1-26 22:29 编辑

有两组数A和B分别对应A值、B值
现在想在一定的范围内和并。就是ABS(A-B)<=0.1的范围内合并为1组数,并赋值。
要求:如图,
比如       1和1.1合并,保留A值、B值
             插入B中的6.8,A值没有就赋值0,保留B值。                     
            同样的插入B中的12.1,14.1,18.1 并赋A值为0,保留B值



感谢各位大神



无标题.png

新建 Microsoft Excel 工作表 (2).rar

7.5 KB, 下载次数: 22

TA的精华主题

TA的得分主题

发表于 2021-1-26 23:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看半天就像在看故事,一头雾水,不知道你要干什么,更不知道你凭什么这么做,就更不要说如何助你实现理想了。。。。。。
你这数据插来插去的,总要说个为什么吧??

TA的精华主题

TA的得分主题

发表于 2021-1-27 11:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hcm19522 于 2021-1-27 14:57 编辑

L6 下拉{=IFERROR(SMALL(IF((F$6:I$15-N(L5)>0.1)*{1,0,0,1},F$6:I$15),1),"")

M6 下拉=IFERROR(VLOOKUP($L6,$F:$G,2,),)

N6 下拉=IFERROR(IF(L6="","",LOOKUP(1,0/MMULT(N(I$6:I$15-{0,0.1}=L6),{1;1}),J$6:J$15)),)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-27 14:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 sz414 于 2021-1-27 14:20 编辑
hcm19522 发表于 2021-1-27 11:32
L6 下拉{=IFERROR(SMALL(IF((F$6:I$15-N(L5)>0.1)*(MOD(COLUMN(F:I),3)=0)*(F$6:I$15>N(L5)),F$6:I$15),1), ...

NB,给你跪下了。能不能解释下思路,真的看不明白

TA的精华主题

TA的得分主题

发表于 2021-1-27 15:03 | 显示全部楼层
L6有簡化
條件 1 :{1,0,0,1} 排除中間二列
條件 2 :F$6:I$15-N(L5)>0.1 所有數-上格 >0.1  取最小值

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-27 19:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hcm19522 发表于 2021-1-27 15:03
L6有簡化
條件 1 :{1,0,0,1} 排除中間二列
條件 2 :F$6:I$15-N(L5)>0.1 所有數-上格 >0.1  取最小值

大神,咨询个问题,是不是数组IF只有第一值是ture,才会返回ture值,不然ture是第二个值得话,返回的总是false的。
比如我用{if(ABS(F1-I:I)<0.1,"ture","false")},总是范围false值的。

点评

体会一下 =IF(MOD(ROW(1:9),2),"A","B")  发表于 2021-1-27 20:19

TA的精华主题

TA的得分主题

发表于 2021-1-28 09:36 | 显示全部楼层
sz414 发表于 2021-1-27 19:08
大神,咨询个问题,是不是数组IF只有第一值是ture,才会返回ture值,不然ture是第二个值得话,返回的总是 ...

只有第一值 沒錯  
但無意義  因為產生數組 並非結果 尚須做判斷 如本題 再取最小值

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-28 20:26 | 显示全部楼层
本帖最后由 sz414 于 2021-1-28 21:46 编辑
hcm19522 发表于 2021-1-28 09:36
只有第一值 沒錯  
但無意義  因為產生數組 並非結果 尚須做判斷 如本題 再取最小值

牛B,理解了,不过这个问题其实是简化了,实际情况我是要求abs((A-B)/(A+B))<=0.00004的范围内合并数据,还可以套用这个算法列出 L6吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-29 21:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 sz414 于 2021-1-29 23:13 编辑
hcm19522 发表于 2021-1-27 11:32
L6 下拉{=IFERROR(SMALL(IF((F$6:I$15-N(L5)>0.1)*{1,0,0,1},F$6:I$15),1),"")

M6 下拉=IFERROR(VLOOKUP ...

N6 下拉=IFERROR(IF(L6="","",LOOKUP(1,0/MMULT(N(I$6:I$15-{0,0.1}=L6),{1;1}),J$6:J$15)),)

大神,这个N6能再解释下吗?因为把I6的3.1改成3.05就不对了

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-1-29 23:39 | 显示全部楼层
本帖最后由 sz414 于 2021-1-30 10:17 编辑
hcm19522 发表于 2021-1-27 11:32
L6 下拉{=IFERROR(SMALL(IF((F$6:I$15-N(L5)>0.1)*{1,0,0,1},F$6:I$15),1),"")

M6 下拉=IFERROR(VLOOKUP ...

大神还在吗?如果把I6的3.1改成3.05,N6的公式就不好用了吧?
修改:自己提供一个思路:M6=INDEX(G:G,MIN(IF(ABS(L6-F$6:F$15)<=0.1,ROW(F$6:F$15))))
                                       N6==INDEX(J:J,MIN(IF(ABS(L6-I$6:I$14)<=0.1,ROW(I$6:I$14))))

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-3-29 05:12 , Processed in 0.052221 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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