ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 紧急求助,谢谢各位大佬了

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-25 20:30 | 显示全部楼层 |阅读模式
各位大佬、高人,小弟遇到了一个小难题,折腾了很久也没弄明白,不知哪位能教一下,万分感谢!
具体在附件中。

请教.rar

8.82 KB, 下载次数: 12

查找函数

TA的精华主题

TA的得分主题

发表于 2018-3-25 20:50 | 显示全部楼层
本帖最后由 mmlzh 于 2018-3-25 21:13 编辑

数组公式
B14
  1. =IFERROR(OFFSET($A$1,IF(MOD(COLUMN(),2),ROW(A1),),SMALL(IF($B2:$J2,COLUMN($A:$H)),INT((COLUMN(A1)-1)/2)+1)),"")
复制代码
自行调整单元格格式

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-25 21:00 | 显示全部楼层
mmlzh 发表于 2018-3-25 20:50
数组公式
B14自行调整单元格格式

非常感谢老师,这个公式有点复杂,我得好好研究一下,不一定能搞明白,不懂再问。

TA的精华主题

TA的得分主题

发表于 2018-3-25 21:05 | 显示全部楼层
在B14单元格填入公式=IFERROR(INDEX(IF(MOD(COLUMN(B2),2)=0,$A$1:$I$1,$A2:$I2),SMALL((IF($B2:$I2>0,COLUMN($B2:$I2),1000)),IF(MOD(COLUMN(B2),2)=0,COLUMN(B2)/2,COLUMN(B2)/2-0.5))),""),按CTRL+SHIFT+ENTER结束,然后下拉右拉就可以了。
只不过这样得来的数据项也为日期格式,需要换成常规。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-25 21:11 | 显示全部楼层
yang133319 发表于 2018-3-25 21:05
在B14单元格填入公式=IFERROR(INDEX(IF(MOD(COLUMN(B2),2)=0,$A$1:$I$1,$A2:$I2),SMALL((IF($B2:$I2>0,COLU ...

真是高手啊,太感谢了……用您这个公式,直接成功了,谢谢,谢谢。是的,需要手动改储存格格式。现在这样已经很满意了。不行,我就在第二行,加一个行模板格式,公式拉完了之后,用模板刷一下格式,这样就不用一个个手工修改了。

TA的精华主题

TA的得分主题

发表于 2018-3-25 21:16 | 显示全部楼层
LOOKUP(1,0/(b2:i2<>0),b$1:i$1)
第一个参数1,表示查询的值为1,
第二个参数0/(b2:i2<>0),首先判断b2:i2是不是0,如果不是,为TRUE,否者为FALSE,比如B2:I2为{1,2,3,4,5,6,0,0},则计算为0/{true,true,true,true,true,true,false,false},即0/{1,1,1,1,1,1,false,false},即{0,0,0,0,0,0,#na,#na}为查询范围了。,因为LOOKUP函数可以忽略错误值,同时为模糊查找,当查询范围{0,0,0,0,0,0,#na,#na}内找不到等于查询值1的数值时,则选择最接近1且小于1的数字,即0;当有多个满足条件的时,选择最后一个满足条件的值,即最后一个0,也就是对应的原来的6所对应的值了

TA的精华主题

TA的得分主题

发表于 2018-3-25 21:20 | 显示全部楼层
其实你输入一个公式并计算后,可以点击最上面工具栏的“公式”,然后点钟计算结果,再点击上面工具栏中的“公式求值”,会一步步显示计算步骤的,可以自己慢慢琢磨的

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-25 22:05 | 显示全部楼层
yang133319 发表于 2018-3-25 21:16
LOOKUP(1,0/(b2:i20),b$1:i$1)
第一个参数1,表示查询的值为1,
第二个参数0/(b2:i20),首先判断b2:i2是 ...

再次感谢你耐心的讲解。我得好好消化。

另外,前面那个公式数组公式。

现在是A B ....I  也就是说,从B2开始就有数据。

如果B-AK这几十列是其它的资料,实际判断要从AL列开始往后才是有效数据,我替换了一下公式,好像对不上了。不知道是哪有里问题。另外,我的数据实际是全部是负数的,我举例的时候是正数。不知道这有没有关系?

TA的精华主题

TA的得分主题

发表于 2018-3-26 11:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
K2:K8产品编号取不重複{=IFERROR(INDEX(A:A,TEXT(MIN(IF(($B$2:$I$8<>"")*(COUNTIF(K$1:K1,A$2:A$8)=0),ROW(A$2:A$8))),"0;;")),"")

L2:S8{=IFERROR(INDIRECT(TEXT(SMALL(IF(($B$2:$I$8<>"")*($A$2:$A$8=$K2),ROW(A$2:A$8)^(MOD(COLUMN(A1),2)=0)/1%+COLUMN($B2:$I8)),INT(COLUMN(B1)/2)),"!R0C00"),),"")
4234.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 19:26 | 显示全部楼层
hcm19522 发表于 2018-3-26 11:24
K2:K8产品编号取不重複{=IFERROR(INDEX(A:A,TEXT(MIN(IF(($B$2:$I$8"")*(COUNTIF(K$1:K1,A$2:A$8)=0),ROW(A ...

非常感谢您的讲解,我试了一下,电脑直接卡死了,难度是用了数组公式的原因?。我现在郁闷死了。另外,我在跟贴里,重新上传了一个文件,不知道能不能帮忙设置一下,谢谢!

试验.rar

247.57 KB, 下载次数: 1

试验

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

本版积分规则

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

GMT+8, 2024-11-17 15:34 , Processed in 0.043971 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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