ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 表格中如何根据多重条件查询出文本并依次列出

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-6 16:03 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位老师好,此问题我花了2小时解决不了,所以不得不求助各位,希望指导啊。

附件表格中,黄色标题列(E-G列)是希望实现的结果,我是手工方式实现的。
希望根据左方A19:D43的源数据,求得E-G列的数据,实现全自动呈现。
A-D列的数据一变化,E-G列数据可以跟着变化。

非常感谢啊。



根据已有数据查询文本并排列出来.rar (9.95 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

发表于 2018-6-6 16:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yylucke 于 2018-6-6 16:57 编辑

既然数据量这么小,给你一个公式版本
E3=OFFSET($A$1,SMALL(IF(($E$1=$C$2:$C$43)*(E$2=$D$2:$D$43),ROW($C$2:$C$43),9999),ROW(1:1))-1,0)
公式输入完成后,同时按Ctrl+Shift+Enter结束
然后拖拉到其他单元格另,把计算选项改为“自动计算”

TA的精华主题

TA的得分主题

发表于 2018-6-6 17:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
参看附件,函数版本

根据已有数据查询文本并排列出来.7z

11.7 KB, 下载次数: 6

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 11:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yylucke 发表于 2018-6-6 16:56
既然数据量这么小,给你一个公式版本
E3=OFFSET($A$1,SMALL(IF(($E$1=$C$2:$C$43)*(E$2=$D$2:$D$43),ROW($ ...

非常感谢,我在附件的文件中用你的方法实现了。太棒了,我还需要时间去理解。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 11:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yylucke 发表于 2018-6-6 17:00
参看附件,函数版本

太棒了,昨天我用你的函数也做出来了,你还花时间帮我做到了那个文件里面,真是太好了。
谢谢老师的辛苦付出啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 11:17 | 显示全部楼层
本帖最后由 bluebird73 于 2018-6-7 11:21 编辑

yylucke老师好,很抱歉,我在我的原表中实现不了。昨天发送时我对原表做了一些处理,删除了很多数据行,为了保密。现在觉得没啥好保密的了,我把原表发上来,里面也有你的函数,但不成功啊。能否麻烦老师再帮我看看呢?十分感谢。

1804.7z (15.65 KB, 下载次数: 2)

offset函数.png
就是如上图这个位置,我用了你的函数,也调整了行列号,但实现不了。我怀疑是因为数据行上面有很多行,存在其他数据,造成了offset函数在处理时出现问题。

感谢yylucke老师指导。谢谢。

TA的精华主题

TA的得分主题

发表于 2018-6-7 12:04 | 显示全部楼层
bluebird73 发表于 2018-6-7 11:17
yylucke老师好,很抱歉,我在我的原表中实现不了。昨天发送时我对原表做了一些处理,删除了很 ...

你客气了!
你的错误在于,那个small函数返回的是基于单元格A1的行值,因此起始偏移值应该定位在A1
=OFFSET($A$1,SMALL(IF(($F$24=$C$18:$C$43)*(F$25=$D$18:$D$43),ROW($C$18:$C$43),9999),ROW(1:1))-1,0)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 12:09 | 显示全部楼层
yylucke 发表于 2018-6-7 12:04
你客气了!
你的错误在于,那个small函数返回的是基于单元格A1的行值,因此起始偏移值应该定位在A1
=OF ...

offset函数2.png

成功实现,并且在函数后面添加& "",去除了0返回值。

太感谢啦!!哈哈。

TA的精华主题

TA的得分主题

发表于 2018-6-7 12:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
bluebird73 发表于 2018-6-7 12:09
成功实现,并且在函数后面添加& "",去除了0返回值。

太感谢啦!!哈哈。

其实,遇见函数错误,教你一招:
在顶部的编辑栏,选中你的函数,按F9,就能看见该函数当前的值,这样便于调试参数。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-7 14:28 | 显示全部楼层
yylucke 发表于 2018-6-7 12:15
其实,遇见函数错误,教你一招:
在顶部的编辑栏,选中你的函数,按F9,就能看见该函数当前的值,这样便 ...

哈哈,谢谢老师。很有用。
关于Excel函数,我的基础还太差,准备以后慢慢好好学习一下。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 14:47 , Processed in 0.045445 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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