ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 帮忙写个多条件模糊查询且要有查询结果的公式(通过辅助行已解决,期待大神能够不....

[复制链接]

TA的精华主题

TA的得分主题

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

A表中有4个条件,这4个条件与B表中的4个列是一一对应的,现在在A表中需使用这4个条件,获取B表中符合这4个条件的其他列的数值。。。
这里有个不知道怎样解决的问题,就是4个条件,可能与B表中4个列不是一一对应,也即没有同时存在,这时需对不存在的条件根据在B是查询情况,进行近似处理获取新的条件,再根据能够一一对应的4个新的条件到B表中提取符合的其他列值。



测试1中,已解决条件4的查询,现在4个条件通过辅助行已完成需要达到的效果。。。期待大神能够通过不用辅助行的公式,直接实现所里要查询的结果。

测试.rar

46.52 KB, 下载次数: 18

需求在表格中

测试1.rar

47.15 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2019-9-22 10:10 | 显示全部楼层
试一下,数组公式右拖,F2

=LOOKUP(,0/FREQUENCY(0,IF((数据页!$B$2:$B$1273=$B2)*(数据页!$C$2:$C$1273<=$C2),ABS($D2-数据页!$D$2:$D$1273)+ABS($E2-数据页!$E$2:$E$1273),10^3)),数据页!F$2:F$3)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-22 10:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
solextrade 发表于 2019-9-22 10:10
试一下,数组公式右拖,F2

=LOOKUP(,0/FREQUENCY(0,IF((数据页!$B$2:$B$1273=$B2)*(数据页!$C$2:$C$127 ...

谢谢,但结果不对,应该是1909,现在是24941,C列的写法可能只会搜索到第1条记录,因为记录是无序的,没法判断是相近且小于吧

TA的精华主题

TA的得分主题

发表于 2019-9-22 10:26 | 显示全部楼层
本帖最后由 solextrade 于 2019-9-22 10:44 编辑
CNATB 发表于 2019-9-22 10:21
谢谢,但结果不对,应该是1909,现在是24941,C列的写法可能只会搜索到第1条记录,因为记录是无序的,没 ...

好好试一下,是数组公式,要三键结束才行
数组公式右拖,F2

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-22 10:57 | 显示全部楼层
solextrade 发表于 2019-9-22 10:26
好好试一下,是数组公式,要三键结束才行
数组公式右拖,F2

谢谢,但不知道是不是操作还是不对,确实不是希望的结果

根据左边4个条件,实际中间先处理后应得到右边4个条件,然后根据右边4个条件为合并条件在数据表中找出对应 ...

根据左边4个条件,实际中间先处理后应得到右边4个条件,然后根据右边4个条件为合并条件在数据表中找出对应 ...

测试.rar

46.63 KB, 下载次数: 1

TA的精华主题

TA的得分主题

发表于 2019-9-22 11:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你前面的例子说 1987 ,后面的例子说 1986

你把公式粘进 O2

=LOOKUP(,0/FREQUENCY(0,IF((数据页!$B$2:$B$1273=$K2)*(数据页!$C$2:$C$1273<=$L2),ABS($M2-数据页!$D$2:$D$1273)+ABS($N2-数据页!$E$2:$E$1273),10^3)),数据页!F$2:F$3)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-9-22 13:35 | 显示全部楼层
本帖最后由 CNATB 于 2019-9-22 13:44 编辑
solextrade 发表于 2019-9-22 11:01
你前面的例子说 1987 ,后面的例子说 1986

你把公式粘进 O2

非常感谢,可能我描述不是很清楚造成大神没理解我的意思,公式是在利用辅助行的基础上实现的,和我所期望的目的有差异。。。。
我的想法是:
Sheet1表中BCDE4列是要查询的条件,通过这4列单元格的内容到“数据页”表中查找出与这4个单元格数据同时满足相等的行,然后取出F/G列的数值。
但因为BCDE列中,个别列的数据在“数据页”表中不会有完全相同的值,比如说的这个年份,B列可能是1993年,在“数据页”表中没有,那么就要往前取为1987年,也就是取近似值所在单元格作为条件,从而使BCDE4列数值近似与“数据页”表中相关单元格相同,从而利用4个完全一致或近似一致的条件,提取F/G列数据。。

现在我把第4个条件辅助实现也解决了(见贴子的测试1),通过辅助行基本能够满足需求了。。。。目前看,不通过辅助行感觉实现不了吧,期待大神突破

TA的精华主题

TA的得分主题

发表于 2019-9-22 16:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 solextrade 于 2019-9-22 21:53 编辑
CNATB 发表于 2019-9-22 13:35
非常感谢,可能我描述不是很清楚造成大神没理解我的意思,公式是在利用辅助行的基础上实现的,和我所期望 ...

再试下,O2

=LOOKUP(,0/FREQUENCY(0,IF((数据页!$B$2:$B$1273=$K2),MMULT(ABS($L2:$N2-数据页!$C2:$E1273)*10^{9,5,1},ROW(1:3)^0),9^9)),数据页!F$2:F$3)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-9-22 21:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 jisijie630 于 2019-9-22 23:04 编辑
CNATB 发表于 2019-9-22 13:35
非常感谢,可能我描述不是很清楚造成大神没理解我的意思,公式是在利用辅助行的基础上实现的,和我所期望 ...

还是用辅助列吧,否则公式要开火车。
=INDEX(数据页!F:F,MAX(TEXT(ABS(IF((数据页!$B2:$B1273=$B2)*(数据页!$C2:$C1273=LOOKUP($C2,SMALL(数据页!$C2:$C1273,ROW(2:1273))))*(数据页!$D2:$D1273=LOOKUP(MIN(ABS(数据页!$D2:$D1273-$D2)),ABS(数据页!$D2:$D1273-$D2),数据页!$D2:$D1273)),数据页!$E2:$E1273)-$E2),"[="&MIN(ABS(IF((数据页!$B2:$B1273=$B2)*(数据页!$C2:$C1273=LOOKUP($C2,SMALL(数据页!$C2:$C1273,ROW(2:1273))))*(数据页!$D2:$D1273=LOOKUP(MIN(ABS(数据页!$D2:$D1273-$D2)),ABS(数据页!$D2:$D1273-$D2),数据页!$D2:$D1273)),数据页!$E2:$E1273)-$E2))&"]"&ROW(2:1273)&";!0")/1))
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 23:48 , Processed in 0.050175 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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