办公office软件,Microsoft Office,Lotus Notes,等。

这是我用Excel 2007编写的上海市四金缴纳计算器,如下。

2013-Shanghai-salary-tax-calculator

改过几版,下面是最新版,具体参见下面的更新记录。下载后记得用【spyrise.org】解压。

最近在尝试使用indirect生成动态字段来定义为某个名称,比如Summary_Date和Summary_Profit。

本想使用这两个字段用于生成动态图表的, 最终到了最后一步竟然发现无法引用。

用=Summary_Date不行,说是错误。用=!Summary_Date也不行,说是错误。再用='xxxx.xlsx'!Summary_Date,错误信息变化了,说是无法引用……我考。

然后开始不断百度,先是好几个贴子说是indirect生成的动态字段只能用于工作表云云,不能用于图表。反正就是说,死了这条心吧。

突然,发现有个网页说,要使用完整的引用,就可以了。比如:

今天遇到一个实例问题:在对应不同对象的记录里,查找某事件相关的日期,然后返回最早及最晚的日期。

最早和最晚无非用MIN()和MAX(),难度在于在一堆记录里,某个事件可能会有好几条记录相关。当然,这个工作用数据透视表也可以完成,但我这不是研究如何用函数得到嘛。那最终的问题在于,如何就某个事件返回一个数组,然后就这个数组进行最小最大分析。

在百度上查了一下,我们采用具体一个案例介绍如何实现这个目的。

Tags: , ,

Excel真是学无止境。我一直觉得自己的Excel水平还可以,想不到用的时候发现自己还是不行。

最近在折腾一个事情,想某段长度列的总和。

本想用sumifs的,结果sumifs不能处理复杂的多条件求和。结果转而使用sumproduct。sumproduct真是牛啊,真是多条件求和。

结果,sumproduct不能用于整列(sumifs可以),必须明确的某一段数列。用了这个某一段数列,我就折腾开了。

比如,我要A2:A107这段数字,可是由于107是在变的,我不能直接写A2:A107,必须用公式。我先得到107这个值,比如存在B1。这个107是怎么得到呢?match用于返回找到的值的所在行,而不是返回找到的值。

=MATCH(VLOOKUP(9E+304,'Data from FIN'!U:U,1),'Data from FIN'!U:U,0)

然后怎么用这个B1的值,间接表示出A2:A107这段引用呢?

发现方法有两种:

简单的是:用=indirect("'Data from FIN'!$A$2:$A"&$B$1)。indirect就是将字符串转义为引用。有点像C语言中的指针。用address函数可以产生某个单元格的引用。

复杂的是:用=offset('Data from FIN'!$A$1,1,0,$B$1-1,1)。offest是基于某个位置,偏置row行,偏置column列,高height行,宽width列。

另外,就是针对这个数列,数组,矩阵,在函数输完后,按F9,可看到矩阵。逗号表示行,分号表示列。用shift+ctrl+enter表示确认。

我以前摘录了一个方法,如何破解Excel VBA工程的密码

但,有时候也会遇到需要破解工作表保护密码的时候,不管是你准备破别人的表格,还是自己忘了当初煞费苦心设计的强密码。

方法是这样的,也是我网上找来的。这个方法我在Excel2007里面验证了一下,有用。

下面是方法:

1、打开文件
2、工具---宏----录制新宏---输入名字如:aa
3、停止录制(这样得到一个空宏)
4、工具---宏----宏,选aa,点编辑按钮
5、删除窗口中的所有字符(只有几个),替换为下面的内容(复制吧)。
6、关闭编辑窗口
7、工具---宏-----宏,选DecodeAllInternalPasswords,运行,确定两次,等2分钟,再确定。OK,没有密码了!!!

Excel计算分析常用函数

        
  • SUMPRODUCT
         
  •     
  • SUMIFS
  •     
  • COUNTIFS
  •     
  • AVERAGEIFS
         
  •     
  • SLOPE
  •     
  • INTERCEPT
         
  •     
  • VLOOKUP
  •     
  • HLOOKUP

先想到这些

分页: 1/9 第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]