译冰博客-行走在网络营销的路上

vba数组

http://www.baidu.com/

? [简介- vba阵列]

  《中国科普》科学百科词条编写及应用项目VBA(Visual Basic for Applications),是一种在中执行通用自动化(OLE)任务的编程语言。它主要用于扩展——应用程序的可视化基础(VBA),实际上VBA是一个寄生在VB应用程序上的版本。在1994年发布的5.0版中,提供了VBA宏功能。微软视窗操作系统是基于视窗操作系统开发的新一代标准宏语言。它不同于传统的宏语言。传统的宏语言不具备高级语言的特征。没有

  只有使用电子表格,你的效率才能提高一倍!

  作者:何明科

  他已经在咨询公司、风险投资/私募股权/对冲基金等基金生活多年,一直依靠Excel的各种技能安定下来,获得晋升和加薪。也许是因为程序员的背景,我一直希望从更深的层面探索Excel和各种办公软件,除了学习假装酷图表、快捷键和一些稍微复杂的功能(VLookup等)。)上面提到的答案,直到我遇到他们。

  数组函数

  和

  VBA节目。一旦掌握了这些技能,他们就能高效地工作。

  增加几倍甚至十倍以上

  然而,周围很少有人掌握它。

  数组函数和VBA编程只适合程序员:

  数组函数充满了数据库思维,而VBA本身就是一个完整的程序设计,加上各种接口,可以将各种办公软件和操作系统下的各种功能完美结合。

  因为VBA是图灵完成的,并最终借助于Excel简单高效的数据呈现界面。

  在我看来,VBA的Excel数组函数只是一个网页前端客户端守护程序数据库。我觉得在学习了这些东西之后,我在某种意义上成为了一名全堆栈开发人员(Full Stack Developer,全堆栈工程师),一个所有互联网公司都梦想招聘的人。

  数组函数

  数组函数通常与地址相关和块相关函数结合使用,如索引、间接和地址。如果不考虑效率,数组函数基本上可以取代各种各样的SQL语句。数组函数的案例1:计算某些产品的总值

  计算AA产品的总价值,而不是从以下各项中选择总和(产品数量x产品单价).其中产品编号=' AA '

  {=金额(如果($ 4: $ b8=' AA '),($ 4: $ c8)*($ 4: $ D8),0))

  如果没有数组函数,使用sumif这样的函数也非常复杂。

  数组函数的第二种情况:选择不重复的值并计算总和

  左边的白色区域是原始数据,右边的颜色区域使用数组函数的输出区域。阵列功能实现两种功能:

  黄色区域:过滤掉不重复的月份名称。

  蓝色区域:从以下位置替换selectsum (tot).groupbyname、month和adds tot对应于name month。

  如果没有数组函数,只能使用复杂的方法,如透视表(Pivot Table),这不仅昂贵,而且不灵活。

  数组函数的第3种情况:

  这是一个帮助国际家电制造商预测2005年至2024年中国各种家电市场潜力和规模的项目。一般的电子表格功能只能解决二维问题,但这一次客户提出了这种异常的多维需求,需要精确到5个维度,包括年份、电器类别、渠道类型、用户高低端、城市级别,才能看到市场规模和潜力。简而言之,下表用于随时检查给定维度中给定年份的市场潜力和规模。

  展开全文

  使用数组函数建模可以轻松实现以下功能。只要在指定区域内选择了相关值,就可以计算出这些值所需的市场规模和潜力,这相当于使用了SQL语句:从条件1=A1、条件2=A2、条件3=A3的表中选择*.(共5个条件)

  复杂的数组函数编码如下

  =SUM(((汇总_市场!$ 71: $ 308=$ A7)(汇总_市场!$ 71: $ 308=$ V7)(总结_市场!$ 71: $ 308=$ AA7)($ A7=' ')

  0)*((摘要_市场!$ 71: $ t308=$ B7)(汇总_市场!$71:$T$308=$W7)(汇总_市场!$ 71: $ t308=$ AB7)($ B7=' ')0)*((摘要_市场!$ 71: $ 308=$ C7)(汇总_市场!$ 71: $ 308=$ X7)(总结_市场!$ 71: $ 308=$ AC7)($ C7=' ')

  0)*((摘要_市场!$V$71:$V$308=$D7)(摘要_市场!$71:$V$308=$Y7)(汇总_市场!$V$71:$V$308=$AD7) ($D7=' ')

  0)*(摘要_市场!BB$71:BB$308))

  整个模型和复杂数组函数的界面如下图所示。左边的界面实际上是一个图形化的SQL语句。这个模型已经被这个客户和我们的咨询公司使用了5年多,部分原因是它的超级灵活性。

  VBA节目

  首先,不要被“编程”这个词吓跑,因为VBA不用编程就可以编程,而且可以通过录制宏来完成。下图显示了录制宏的技巧:

  如果你真的想升级成为一名VBA程序员,你仍然需要学习和编写自己的VBA程序。以下是我自己写的一些VBA优秀项目。

  VBA编程案例1:自动打印

  只要父亲不是李刚,刚刚进入职场的新人就基本上是最佳男演员赢家(shadow=print,各种手工复印和打印工作)。尤其是咨询和投资银行服务行业,在为客户准备一份大报告或一次大傻瓜会议之前,花几个小时或几个晚上打印几份文件并不是一个寓言。此外,此事针对的是同一堆文件,这些文件经常被修改,而且经常会重复出现。

  我加入波士顿咨询公司的第一个项目是帮助一家大型企业从上到下设计和实施关键绩效指标体系。从上到下涉及几十个部门,大约需要完成100个关键绩效指标表。这些关键绩效指标表分布在不同的Excel文件中。我们四名顾问的任务如下:

  (1)设定关键绩效指标的基本格式,然后每个顾问对几个部门负责,在电子表格中不断修改关键绩效指标表格,打印出来,并去各方及其领导讨论修改;

  (2)每周收集所有Excel文件中的关键绩效指标表,按部门顺序打印,需要多份。找负责项目的人力资源主管汇报进度和情况。

  这是一个费时费力的过程。每周,我们需要在几个Excel文件中找出目标工作表,然后选择合适的区域作为输出表单,按照一定的格式和顺序打印出这100多张表单。以前,我们都依赖人力。每周,分析师收集所有最新的电子表格文件,然后逐一打开文件,选择适当的工作表,并选择设置打印格式的区域。每一个都需要一两个小时,而且不能保证不会有错误。所以我写了我的第一个VBA程序,这个程序在宏记录后基本上改变了。我没有使用参考书和搜索引擎。我依赖F1和自动提示,所以我把它贴出来作为特殊的记忆。实现的功能是完全自动化上述由人体实现的功能。按一个女孩,等待打印机按顺序产生结果。

  后来,该程序的升级版计划了多台打印机,进一步提高了效率,并将打印机堵塞导致的队列错误的可能性降低到了非常小的范围。

  VBA规划案例2:制作复杂矩阵分析图

  下图用于研究每种车型的用户之间的转换关系。因为一维转换向量将被改变成二维矩阵,所以使用以下复杂公式。

  =IF(ISERROR(OFFER($ 2,MATCHE)(CONCATENATE(ROW(A4)、'-',COLUMN(A4)),$ D $ : $ D $ 600,FALSE),0)/OFFER($ 2,MATCHER(CONCATENATE(ROW(A4)、'-',ROW(A4)),$ D $ : $ D $ 600,FALSE),0)),'',OFFER($ 2,MATCHER(CONCATENATE(ROW(A4)、'-',COLUMN(A4)),$ D $ 3333330美元

  同时,VBA用来给下面的矩阵上色,以颜色深度来表达转换率的大小关系,便于比较。当然,有些人肯定会说可以使用条件格式,但VBA保持了最高的灵活性和效率。

  VBA编程案例3:管理分布式任务流并将Excel表单导出到Powerpoint

  这是为了帮助一家大型国际汽车制造商完成新品牌及其新车型的上市。面对模型很快就会过时的困境,列出这个新模型非常关键,不能错过时间节点。然而,新模式的推出涉及众多分支机构:制造、产品、市场、渠道、营销、公共关系、金融等,同时协调欧洲的两个总部和中国的两个分支机构。

  此次咨询的核心任务是项目管理,控制整个大型项目的进度,每周向中国首席执行官汇报进展情况,找出容易出现问题的关键节点来分配资源。我们的四名顾问被指定负责多个部门或项目分支机构、规划流程、绘制甘特图、确定里程碑和时间点、安排负责人等。和团队一起。每天回到办公室时,每个人都把进步聚集在一起,发现挑战和困难。每个任务线并不是独立发展的,而是相互交织、相互影响的。一些核心人员出现在多个任务行中。例如,负责预算的财务人员几乎会出现在负责批准相关预算的每一行。

  某些任务行的里程碑是其他任务行里程碑的必要条件,并且是相互关联的。例如,新车下线时间影响新闻发布会的时间,相关法律法规的通过也影响车辆下线时间等。

  随着任务线数量的增加和任务线之间的交叉越来越频繁,聚集任务的数量将呈几何级数增加,这是我们在项目过程中遇到的问题。所以我用VBA表格完成了这项工作的自动化。主要功能有

  自动将分散的电子表格文件收集到4名顾问手中,形成一个大的汇总表,如下图所示:

  每位顾问手中的表格根据部门规模进行划分。汇总后,需要根据不同维度输出不同类型的表,如:按任务行输出的表、按负责人输出的表、所有延迟任务的表、所有需要资源关注的任务的表等。

  在此基础上,上述各维度(约200多张)下的所有表格将按照要求的格式粘贴到PPT中,并每周提交中国总部进行报告和评估。密集形式如下。因此,我编写了另一个程序,将Excel中的表单输出到Powerpoint,将秘书一次需要几个小时才能完成的工作简化为一键发布,并完成了Excel中PPT的更新。

  这个项目的程序量不小,类似于微软项目(Microsoft Project),微软项目已经编写了一个迷你版本来管理这个项目。

  最后,下图中密集的PPT需要每周更新一次,每次的工作负载接近100份。然而,更新基本上是由电子表格自动完成的。因为PPT的模板每次都没有太大变化,所以我会记录这些模板,每周更新时只需要根据Excel中的最新数据来更改PPT中的数据。

  VBA规划案例4:建立财务模型和基于结果的反推假设

  通用财务模型基于许多假设计算最终结果。然而,在服务顶级手机品牌的过程中,我们遇到了相反的尴尬。最初,所需销售人员的数量是根据地面销售人员的特定服务水平来计算的。结果在项目过程中,销售人数的人数由总公司确定,要求我们根据总部的情况确定服务水平。然而,服务水平不是单一变量,而是由零售店覆盖率、销售拜访频率、拜访期间的服务深度等多种因素决定的。也可以根据一线城市的情况更改为无线城市。所以我们不得不再次发送超越VBA的法宝。首先,按照常规思维建立财务模型,并获得人力资本的初步结果。然后编写VBA程序,根据不同的场景、不同的优先级和不同的权重来调整零售店的覆盖范围、销售拜访频率、拜访中的服务深度等因素,同时设定这些因素的可接受范围,逐渐接近HC的默认值。

  如果没有程序,结果以前基本上是手动调整的,由于情况不同,需要进行许多调整。然而,通过该程序,它基本上是自动完成的,并且可以智能地设置优先级和权重,而无需手动参与。

  VBA编程案例5:彭博数据的大规模下载和分析的完成

  通过彭博的VBA应用编程接口,数百张目标股票的股票数据和订单被大量下载。

  根据建立的数学模型,计算在后台完成,实时数据转化为每只股票的实时交易成本,实时显示在交易者最常用的Excel界面中,便于交易者评估当前的交易成本,优化交易策略。

  阵列函数VBA

  该项目对电子表格的要求非常全面。首先,通过数组函数,按省份统计RIO葡萄酒购买时间的年提及率。

  其次,VBA程序用于根据省份将上表中第H列和第I列的数据着色为下图中的地图。

  (着色部分来自一个在线程序,GIF动画是我自己制作的。)

  最后,再次使用VBA编程和调用外部程序(GIFSICLE)将图形合成在一起,生成GIF动画。

  最后一个鸡蛋也可以用VBA画。零基金会变成了一个艺术青年,他用艺术作品来吸引他的妹妹来到韩寒身边。下图以油画的形式展示了这位女神。

【相关推荐】

vba数组相乘

VBA让二位数组为空

vba数组array

vba数组实例

VBA数组赋值

上一篇:zuul2

下一篇:java游戏开发,java模拟器

发表vba数组相关评论 (已有 条评论)

评论列表

    快来评论,快来抢沙发吧~