ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

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

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

试验.rar

247.57 KB, 下载次数: 1

试验

TA的精华主题

TA的得分主题

发表于 2018-3-26 20:08 | 显示全部楼层
不知道你要的是不是这样

试验-Y.rar

258.6 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 20:30 | 显示全部楼层
yang133319 发表于 2018-3-26 20:08
不知道你要的是不是这样

非常感谢您,您太牛了。

就是您弄的这个结果。我需要直接判断哪一天欠多少。要不,我现在先用IF算欠货的逻辑关系,我头都想大,才没让这个逻辑关系出错,后来,怕出错,用辅助栏来防错,您现在一步就到位了。唯一美中不足的,我需要做一个辅助栏,把欠货表这个表里不欠的隐藏起来,但是现在这个已经很方便很方便了。太感谢了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 20:43 | 显示全部楼层
yang133319 发表于 2018-3-26 20:08
不知道你要的是不是这样

虽然我现在还没完成弄明白,您计算这个欠货的结果的逻辑关系,但看我自己弄的那个欠货,用IF算的,自己头都想晕,在您这里,三下五除二就搞定了。这就是差距。

TA的精华主题

TA的得分主题

发表于 2018-3-26 21:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=IFERROR(INDEX(IF(MOD(COLUMN(A1),2)=1,发货量!$A$1:$BP$1,发货量!$A2:$BP2),SMALL(IF(发货量!$AL2:$BP2<>0,COLUMN(发货量!$AL2:$BP2),100),IF(MOD(COLUMN(A1),2)=1,COLUMN(A1)/2+0.5,COLUMN(A1)/2))),"")
公式解释如下:
IF(MOD(COLUMN(A1),2)=1,发货量!$A$1:$BP$1,发货量!$A2:$BP2):判断所在的列是奇数还是偶数,如果是奇数,为,发货量!$A$1:$BP$1,否则的话为发货量!$A2:$BP2。前面加上INDEX,就是奇数时在第一行取值,偶数时在第二行取值
IF(发货量!$AL2:$BP2<>0,COLUMN(发货量!$AL2:$BP2),100):将AL2:BP2中单元格的数字与0比较,如果不为0,就返回单元格所在的列,否则就返回100(也可以是1000,只要比关系列数大就可以)。这样就构成一个新数列,出来不为0的返回所在列外,其他都是100.假如有10列,第3、7列满足条件,则新数列为{100,100,3,100,100,100,7,100,100,100}
IF(MOD(COLUMN(A1),2)=1,COLUMN(A1)/2+0.5,COLUMN(A1)/2)):随着右拉,如果所在列为奇数,则变成1、2、3、4……,偶数列也是如此,主要是与上面的新数列匹配,分别求出里面的小值。
SMALL(IF(发货量!$AL2:$BP2<>0,COLUMN(发货量!$AL2:$BP2),100),IF(MOD(COLUMN(A1),2)=1,COLUMN(A1)/2+0.5,COLUMN(A1)/2))):分别在奇数列和偶数列取出新数列的第1小、第2小、第3小……的数字,也就是新数列中的第3列、第7列。
确定了所在列,又已知所在行,用INDEX函数就可以定位出这个数字了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 22:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yang133319 发表于 2018-3-26 21:01
=IFERROR(INDEX(IF(MOD(COLUMN(A1),2)=1,发货量!$A$1:$BP$1,发货量!$A2:$BP2),SMALL(IF(发货量!$AL2:$BP20, ...

我都不知道怎么说谢 谢了,您回答的太细致了,我要好好消化消化。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-26 22:30 | 显示全部楼层
yang133319 发表于 2018-3-26 21:01
=IFERROR(INDEX(IF(MOD(COLUMN(A1),2)=1,发货量!$A$1:$BP$1,发货量!$A2:$BP2),SMALL(IF(发货量!$AL2:$BP20, ...

另外,前面的公式,我又仔细看了,从发货表里得出是什么哪一天欠多少,应该还是利用我原来那个的逻辑关系得出的结果。我发觉得这个逻辑挺麻烦的,一直没找好好的办法,最近才想明白现有的逻辑算法。不知道别人是怎么算这个欠货的。或者说,用程序写代码时,也是这样算?那脑子得很好使才行。哈。看来,我是学不会写代码了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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