ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[推荐] [答疑解惑]函数公式解释专用帖

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-2-22 09:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:公式基础
原帖由 冰么么 于 2010-2-9 16:22 发表
看了一个函数

INDIRECT("E"&MATCH(B11,B3:B7,0)+2)
问题:为什么后面要+2

=OFFSET(E3,MATCH(B11,B3:B7,0)-1,0)
还有这个-1.。。

这都跟环境有关系。必须有附件才能说明问题。
第一个大概是要单元格找到B3:B7区域内B11相等的值,并返回E列的同一行的单元格。比如B5=B11,那么返回E5的值。
为什么要+2,是因为从MATCH的区域是B3开始的,MATCH返回的是位置,而不是ROW()值,比如说B5=B11,MATCH的返回值就是3,要想通过INDIRECT正确引用,就必须把B1和B2的ROW()值加上才行,所以是3+2。如果是B1:B7就不用+2了。

用多了OFFSET就会发现,大部分OFFSET公式第2、3参数都要+1 或者-1。是因为OFFSET的2、3参数都是以第1参数偏移量。以B11=B5为例,OFFSET(E3,3,0),实际上是E6,因为从E3开始偏移,E3本身算做是偏移了0,E4才是偏移了1,E5是2,E6才是3。所以MATCH值要-1才能匹配。上公式要是改为=OFFSET(E2,MATCH(B11,B3:B7,))就是一样的了。

TA的精华主题

TA的得分主题

发表于 2010-2-22 15:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请gouweicao老师指教下 详见附件 谢谢了

=IF(ISERROR(INDEX(B$4:B$7,MATCH($A13,--LEFT($D$4:$D$7,FIND("-",$D$4:$D$7)-1),0))),"",INDEX(B$4:B$7,MATCH($A13,--LEFT($D$4:$D$7,FIND("-",$D$4:$D$7)-1),0)))
这样的公式得到的是空
=INDEX(B$4:B$7,MATCH($A13,--LEFT($D$4:$D$7,FIND("-",$D$4:$D$7)-1),0))这样的公式是#N/A

[ 本帖最后由 水平一般 于 2010-3-8 12:34 编辑 ]

产品入库--.rar

4.69 KB, 下载次数: 40

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-17 11:24 | 显示全部楼层

回复 462楼 alilee2010 的帖子

B13输入
=INDEX(B:B,MIN(IF((LEFT(D$4:D$7,8)-A13)*(RIGHT(D$4:D$7,8)-A13)<=0,ROW($4:$7),4^8)))&""
数组公式,按CTRL+SHIFT+ENTER结束,向下复制。

【解释】要判断A13的编号21002240在某一个号段区间,例如21002113-21002133应该是判断21002240是否大于等于21002113且小于等于21002133。
因而,用LEFT(D4:D7,8)-A13与RIHGT(D4:D7,8)-A13相乘,如果在这个区间,必然是一正一负或者为0,也就是乘积会小于等于0。
由此计算出对应的记录。

至于你原来的公式出的错,是因为MATCH只对D4:D7左边的数字进行判断,MATCH第3参数加了0是精确查找,即必须有一个刚刚好是21002240,不加0是模糊判断,需要升序,就变成判断是否在21002113~21002203区间,而忽略了21002133~21002202之间的数据。

TA的精华主题

TA的得分主题

发表于 2010-3-20 09:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

新手上路,请指教

怎么找出在B列符合指定条件的元素在A列记录的最后时间?
谢谢!!!!!

新建 Microsoft Office Excel 2007 工作簿.rar

12.12 KB, 下载次数: 24

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-20 09:35 | 显示全部楼层
=LOOKUP(1,0/("送料架"=B3:B500),A3:A500)
解释在前面有,请自己翻阅。

TA的精华主题

TA的得分主题

发表于 2010-3-21 22:40 | 显示全部楼层
OFFSET(A152,A172,0)此语法怎么解释?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-22 15:57 | 显示全部楼层

回复 466楼 yrq1312002 的帖子

OFFSET(reference, rows, cols, [height], [width])
OFFSET(A152,A172,0)——以A152单元格为基准,偏移A172中的值代表的行数,假设A172的值是3或-2,则向下偏移3行或向上偏移2行,偏移0列。

TA的精华主题

TA的得分主题

发表于 2010-3-22 20:55 | 显示全部楼层
INDEX($B$2:$B$15,SMALL(IF($A$2:$A$15="张",ROW($A$2:$A$15)-MIN(ROW($A$2:$A$15))+1,""),COLUMNS($A:A)))
版主,烦请帮我解释下2公式:这个当中 ROW($A$2:$A$15)-MIN(ROW($A$2:$A$15))+1是什么意思?ROW($A$2:$A$15)始终等于2,为什么不能直接输入2?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-3-23 10:01 | 显示全部楼层

回复 468楼 lovepeoplec 的帖子

请从本帖首页开始看个三五页,就可以找到类似的公式解释。
而且,这个公式有些繁琐:ROW($A$2:$A$15)-MIN(ROW($A$2:$A$15))+1,想表达的是——用数据区域的行号减去数据首行的行号再加1。
ROW($A$2:$A$15)——你说的“始终等于2”是在单元格看到的结果,你用F9看一看,得到的是数组{2;3;4;5……;13;14;15}

目前一般采用的解法是:
=INDEX(B:B,SMALL(IF($A$2:$A$15="张",ROW($A$2:$A$15),4^8),ROW(1:1)))&""
具体解释也在本帖前面发过了。

TA的精华主题

TA的得分主题

发表于 2010-3-23 18:25 | 显示全部楼层
我用了下,不知道我公式哪里有问题,我糊涂了,唉!
因为名称有一样的,但编号不一样,我需要全部查出来,并在同一行显示

练习用.rar

10.51 KB, 下载次数: 33

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

本版积分规则

关闭

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

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

GMT+8, 2024-12-24 03:52 , Processed in 0.039017 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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