ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]如何根据自变量的变化,结果自动改变

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-1-15 20:38 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
详见附件? 0AOHyQME.zip (3.56 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

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

能不能不要用宏解决?因为宏一点都不会啊。

这个最主要的是CC No.不是惟一的。

TA的精华主题

TA的得分主题

发表于 2008-1-15 20:42 | 显示全部楼层
如果使用宏来解决,请楼主发布到VBA专区,因为那里对VBA比较熟悉

TA的精华主题

TA的得分主题

发表于 2008-1-15 20:53 | 显示全部楼层

TA的精华主题

TA的得分主题

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

不才,使用了OFFSET,请过目

03pF33aN.rar (4.26 KB, 下载次数: 11)


=IF(ROW()>COUNTIF(Sheet1!$A:$A,hujian!$B$2),"",OFFSET(Sheet1!$A$1,ROW()-1,MATCH(hujian!C$1,Sheet1!$1:$1,0)-1))

根据满足的个数确定是否返回空白,然后使用OFFSET函数 结合 MATCH函数完成动态智能的切换

[此贴子已经被作者于2008-1-15 21:00:48编辑过]

TA的精华主题

TA的得分主题

发表于 2008-1-15 21:04 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-1-15 22:14 | 显示全部楼层
谁会数组函数呀?请教请教。

TA的精华主题

TA的得分主题

发表于 2008-1-15 22:16 | 显示全部楼层
高级筛选 或ADO+SQL 或 VBA 数组 或字典均可解决,搜索以前的相关帖子

TA的精华主题

TA的得分主题

发表于 2008-1-15 22:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

函数方法:

C2=IF(ROW()>COUNTIF(Sheet1!$A:$A,$B$2)+1,"",OFFSET(Sheet1!$C$1,MATCH($B$2,Sheet1!$A$1:$A$1000,0)+ROW()-3,COLUMN()-3))

右拖下拖

TA的精华主题

TA的得分主题

发表于 2008-1-16 19:23 | 显示全部楼层

昨晚要照顾某人,呵呵,所以中途跑人了,呵呵...今天补上

楼上版主的公式好像和我昨天的公式类似,似乎不能完成搂住要求。

先把重新领会题意后的答案奉上。并打算配上解说。

2sx7NReP.rar (5.01 KB, 下载次数: 12)


==================================================

表2 C1单元格公式如下

=IF(ROW()>COUNTIF(Sheet1!$A:$A,Sheet2!$B$2)+1,"",OFFSET(Sheet1!$A$1,INDEX(ROW($1:$100),SMALL(IF(Sheet1!$A$1:$A$100=$B$2,ROW($1:$100),""),ROW()-1))-1,MATCH(Sheet2!C$1,Sheet1!$1:$1,0)-1))

庖丁解牛:最外层的IF函数根据表1A列CC NO.1 的个数和当前的行进行比较,如果行对应的数据不存在了(行2 对应第一个 CC NO.1,行3对应第二个 CC NO.1,因为特定的CC NO.1的个数是确定有限的,所以当公式所在行超过了一定数后对应的CC NO.1不存在了)就显示空,就是所谓 "".

所以关键公式是IF函数的逻辑否的区域,OFFSET函数。OFFSET函数就是根据特定的条件,把目标单元格用表1 A1的相对偏移来反馈出来。其中列的反馈很简单,就是一个MATCH 函数,用字段进行对齐。

关键中的关键其实就是行偏移,在行偏移中使用了一个非常实用的INDEX,SMALL,IF的组合应用。逻辑表达就是这样,我们不是要反馈行偏移吗?就是最后要反馈一个自然数(根据题意我认为设置最大数是100-1).先保存一下,呵呵

接保存...于是又涉及到怎么分配偏移的问题,根据条件进行分配,先把所有满足条件的偏移都筛选出来,然后根据行号大小进行逐个分配。这个条件是 表1 A列数据等于表2 B2数据,就是CC NO.1的值要相等,满足条件的就把对应的行号提取出来,不满足的就定为""(这里有个背景知识就是""比数字要大),然后用SMALL函数的第二格参数把这些满足条件的行号逐个提取出来,最后减去一个1 就是偏移值了。

这个题的关键还是 INDEX ,SMALL, IF。希望还有困难的同学好好的体会一下,这个组合是相当的有用。

[此贴子已经被作者于2008-1-16 19:55:35编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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