ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 厚着脸皮给同事讲课的底稿

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-16 13:23 | 显示全部楼层

TO 40楼 柠檬,我想是可以的,这样的话主要是在名称定义的时候使用动态方式OFFSET函数中的高,宽用COUNTA()来动态变化。然后需要生成新表的地方就直接写公式就性了,写的时候多用ROW(),column()来完成自动化。这样我想所要做的工作就是手工调整一下公式的打击范围。写公式的时候可以使用IF(ISERROR(VLOOKUP()),”“,VLOOKUP)的结构来避免预先设置的范围过大时产生的错误现象。

表达不清楚,请见谅

可以用宏录制的,当然录制过程可能也有很多技巧,我的方式是先写一个公式,然后录制的内容就是简单的用鼠标拖这个公式了。执行后再继续拖直到完美就行了,我觉得自动半自动结合会简单些,如果你的表格大小都是固定的就没关系。

[此贴子已经被作者于2007-8-16 13:27:47编辑过]

TA的精华主题

TA的得分主题

发表于 2007-8-16 13:40 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-16 14:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

去除重复数据。


先把列子传上来

                   原数据                             生成数据

西侠 
西侠西侠
东侠东侠
西侠泥腿僧
泥腿僧北侠
北侠横推八百无人敌
横推八百无人敌震八方紫面昆仑侠
震八方紫面昆仑侠南侠
西侠光芒万丈无人敌满洲首剑
南侠神剑惊天
震八方紫面昆仑侠#NUM!
震八方紫面昆仑侠#NUM!
光芒万丈无人敌满洲首剑#NUM!
西侠#NUM!
东侠#NUM!
横推八百无人敌#NUM!
北侠#NUM!
横推八百无人敌#NUM!
光芒万丈无人敌满洲首剑#NUM!
光芒万丈无人敌满洲首剑#NUM!
东侠#NUM!
北侠#NUM!
泥腿僧#NUM!

我们先把需求分析清楚:我们是要把红色A列数据进行减肥(把重复的数据去掉)生成到B列。

但我们怎么给EXCEL下指令呢?我们开始一般没有思路(除非这个问题很简单 OR 你已经多次接触熟悉了),那

我们就先自己这台运算速度慢但超智能的生物脑先运行一下:在B1自然是A1,那么B2呢,我们从A列中去找这样

的元素,这个元素在B列当前区域没有出现过,然后把这个数据添到B列最后一格B2。然后B3,通过和刚才差不多

的过程我们在数据A列中找到一个元素,他在当前B列区域(B1:B2)没有出现过,把他放到B3。这样我们如果把

BN加上数据了,那么在B(N+1)我们也能按上面的逻辑给他选择数据直到在A列中没有这样的数据为止。

这个过程为我们产生灵感。

具体实施如下:

                    步骤1:定义名称 DATAA=OFFSET(A1,,,COUNTA(A:A),1),效果就是用DATAA就能表示数据A列的数据区域

                    步骤2:人工"跑"一边,看看应该是怎么样的逻辑关系。

                           1.动态定义B列数据 Mdatab=$B$1:$B(n-1). 

                              在DATAA中取一个数据,看看他在B列中有没有,如果没有那么把她放入B列,如果有那么把她舍弃。

                              这里可以看出这里的B列是动态的,比如我们现在要决定BN中放什么数据的时候她的B列当前区域就

                              是B1:B(N-1),我们根据这个定义动态B列数据区域Mdatab=$B$1:$B(n-1).

                            2.在A列选元素时的核心表达:BX=IF(COUNTIF(MDATAB,DATAA)>0,"",ROW(DATAA))

                              逻辑过程表达:BX=IF(COUNTIF(MDATAB,DATAA)>0,"",ROW(DATAA))

                              通过这个核心表达式我们把需要的坐标(行号选出来了),然后的逻辑就是把DATAA中对应的这些

                               数据挑出来。

                              BX=IF(COUNTIF(MDATAB,DATAA)>0,"",ROW(DATAA)),这个过程就是把DATAA的每个数据到

DATAB中去查找,如果发现能找到--COUNTIF()>0,那么不记录他的行号,否则把他的行号记录下来(row(dataa)).

这样IF函数生成的数组输出就是这么一个行数组,元素要么是"",要么是 行号 row(dataa中对应的元素)。我们在B列需要

的数据在A中的行号就全部聚合在这个数组里面了。接下去我们就是要去罗列出这些数据。

对于数组公式我是这么去理解的,一个输入就有一个输出,数组输入自然就是数组输出,输出数组的每个元素就是输入输

入的每个元素对应的函数值,输出输入以行数组的形式存在。

                            3。罗列需要的数据 FuncInColumnB=INDEX(DATAA,SAMLL(BX,1)),

                                 INDEX(DATAA,SAMLL(BX,1)),我把她记做FuncInColumnB,这里要注意的是BX的内容是变化的,因为MDATAB是变化的。

                          步骤3。想美化,把#NUM!去掉,可以给公式一个外套:if(iserror(FuncInColumnB),"",FuncInColumnB)

q9jutcaA.zip (5.01 KB, 下载次数: 65)
[此贴子已经被作者于2007-8-16 15:35:27编辑过]

vQVz9HKV.zip

4.78 KB, 下载次数: 63

TA的精华主题

TA的得分主题

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

谢谢  大致了解了,还有人跟我说用透视表,请问透视表是什么?这个跟VLOOKUP有什么区别吗?原表会有变化,因为业务量每个月都不一样,生成的新表不会有变化,因为新表是固定的统计表.

TA的精华主题

TA的得分主题

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

按重复数据的次数排序

数据透视表,很好 很强大的东西。就是能对表格数据进行灵活的统计分析。你搜一下好了,关键时先要熟悉,我那个不太熟的,呵呵。

             

按重复数据的次数排序

rA2R07tQ.zip (5.01 KB, 下载次数: 65)

里面写的非常详细了

[此贴子已经被作者于2007-8-18 0:56:20编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-16 14:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
新表不会变化就好办了,原表就用我的名称定义动态方式来选表格就能搞定,这样应该容易了。希望你明白了

TA的精华主题

TA的得分主题

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

呵呵,谢谢阿

TA的精华主题

TA的得分主题

发表于 2007-8-16 21:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-8-16 23:08 | 显示全部楼层

TA的精华主题

TA的得分主题

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

谢谢你的分享!!!!!

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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