预见未来to50的专栏

Life is limited, but art is long

学以致用——使用VBA查询并记录单元格在字典(总表)中所在的行号(Finding row number of the string containing another string)

为了整理VBA关键字列表,竟然促成了本文的VBA。原因很简单,现在很多Excel操作我都不想吭哧吭哧手动编辑半天了,宁可花两三小时苦思冥想一个自动化的解决方案不可。喜哉,悲哉?长远来看,肯定是好事了!VBA代码:Sub RowNumberLookup() For Each keyword In R...

2018-05-31 21:35:37

阅读数:90

评论数:0

辛苦整理的VBA关键字列表-Part 1(Consolidated VBA Keywords List)

最近由于工作的原因,再次感受到了VBA在生成企业级报表时具有节省人力、提升质量的显著效果。觉得应该系统的学习一下VBA的理论知识了。首先,先来看看VBA有哪些关键字吧。列表1. VBA关键字的分类及其描述(资料来源:Visual Basic Language Reference)Category ...

2018-05-31 19:42:27

阅读数:437

评论数:0

调试经验——Oracle获取当前季度的第一天(Get first day of current quarter in Oracle)

手头的一个报表,需要使用当前季度的第一天作为数据过滤条件。目前的SQL脚本(query)中采用了硬编码(hard-coding),即  AND REPORT_DATE < TO_DATE ('01-04-2018','dd-mm-yyyy')这种硬编码有两个缺点:1. 到了...

2018-05-31 14:40:00

阅读数:132

评论数:0

学以致用——使用VBA实现创建新记录时自动添加时间戳(Add timestamp when adding new record in Excel)

今天又实现了一个“梦寐以求”的功能:为Excel中创建的新记录自动添加时间戳。虽然这是个简单需求,但是我却等了很久。虽然代码不难,但是调试却花了我一个多小时,特次分享给所有有缘之人。方法:1. 首先要确保当前Excel文件的保存格式支持VBA(使用.xlsm或.xlsb格式)2. 在VBE(在Ex...

2018-05-30 13:21:09

阅读数:277

评论数:2

调试经验——使用ROW_NUM()函数在Oracle中获取每个分组的最大值(Finding latest date within group in Oracle)

今天将一个比较繁琐的Excel手动报表操作通过SQL的方式给自动化了,今后每月至少节省半小时有余,哈哈。需求描述:每个Ukey对应多个report ID,每个report ID都有report type和report date这两个属性。现要求查询出每个Ukey的最新的report的report ...

2018-05-29 01:13:04

阅读数:158

评论数:0

高等数学Mathematica实验题——3.1 - 15. 逻辑斯谛曲线族人口增加极限模型(Logistic growth model)

高数的精进终于进入到第三章了,不容易啊。题目:3.1 - 15.逻辑斯谛曲线族y=A/(1+Be^-\[Lambda]x),-\[Infinity]<x<+\[Infinity],A,B,\[Lambda]>0,建立了人口增加极限的...

2018-05-28 02:32:24

阅读数:139

评论数:0

高等数学Mathematica实验题——2.5 - 11. 验证级数的收敛性

这几天陷入了级数的泥潭之中而不能自拔,虽然艰苦,但必须攻下这一关,从而充满信心的进入下一章节。题目:2.5 -11. 用Mathematica软件验证级数 \!\(\*UnderoverscriptBox[\(\[Sum]\), \(n = 1\), \(\[Infinity]\)]\(\*Sup...

2018-05-27 03:23:32

阅读数:72

评论数:0

Spotfire调试经验——嵌套使用Over函数各选项实现动态同比分析(Dynamic period-over-period compare in Spotfire)

各季度销售额的直方图如下所示:问题:如何展现出各时间段内(年、季度、月、星期、天、小时、分、秒)以其上一层级为分组单位的累计销售额相比上一期同时间段的变化情况?解决方案:单击图标左侧Y轴销售额,编辑公式为“(Sum([Sales Total]) OVER(Intersect(Parent([Axi...

2018-05-24 18:25:32

阅读数:176

评论数:0

Spotfire调试经验——分组累计值的动态计算(Dynamic calculation of grouped accumulated value in Spotfire)

前面用over函数的AllPrevious选项实现了累计值的计算,效果如下:这张图表现的是“单调上升”的销售额,并没有按年分组。如果要按年分组,就需要联合使用Intersect选项及Parent选项了。各季度销售额的直方图如下所示:问题:如何展现出各时间段内(年、季度、月、星期、天、小时、分、秒)...

2018-05-24 18:07:29

阅读数:71

评论数:0

Spotfire调试经验——动态平均值的计算及动态基准线的绘制(Dynamic average value calculation and benchmarking in Spotfire v

很久以来都想找到动态基准线的绘制方法,今天终于找到方法了。真是“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。平均销售额的直方图如下所示:问题:如何将销售额的当期平均值与其父节点(Parent Node,如,月度的父节点为季度,季度的父节点为年度)的平均值进行比较。也就是如何画出一条基准线,方便...

2018-05-24 17:29:19

阅读数:117

评论数:0

Spotfire调试经验——同比的动态计算(Dynamic parallel period compare in Spotfire visualization)

各季度销售额的直方图如下所示:问题:如何展现出销售额的同比变化(如,与上一年度同一季度的进行比较)?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) - Sum([Sales Total])OVER (ParallelPeriod([Axis.X]))”,即可实现...

2018-05-24 16:28:53

阅读数:65

评论数:0

Spotfire调试经验——移动平均值的动态计算(Dynamic calculation of moving average in Spotfire visualization)

各季度销售额的折线图如下所示:问题:如何展现出过去时间段内(年、季度、月、星期、天、小时、分、秒)的移动平均值?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) OVER (LastPeriods(3,[Axis.X]))/ 3”,即可实现该要求。其中的3表示过去...

2018-05-24 15:03:33

阅读数:85

评论数:0

Spotfire调试经验——累计值的动态计算(Dynamic accumulated value calculation in Spotfire visualization)

各年度销售额的直方图如下所示:问题:如何展现出各时间段内(年、季度、月、星期、天、小时、分、秒)的累计销售额?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) OVER (AllPrevious([Axis.X]))”,即可实现该要求。按季度计算的累计销售额:按年...

2018-05-24 14:28:05

阅读数:61

评论数:0

Spotfire调试经验——环比增长率的动态计算(Dynamic moving data percentage calculation in Spotfire visualization)

各年度销售额的直方图如下所示:问题:如何展现出销售额在各时间段内(年、季度、月、星期、天、小时、分、秒)间的变化?解决方案:单击图标左侧Y轴销售额,编辑公式为“(Sum([Sales Total]) - Sum([Sales Total]) OVER(previous([Axis.X]))) / ...

2018-05-24 14:16:08

阅读数:62

评论数:0

Spotfire调试经验——环比的动态计算(Dynamic moving data calculation in Spotfire visualization)

已知各年度销售额的直方图如下所示:问题:如何展现出销售额在各年度间的变化?解决方案:单击图标左侧Y轴销售额,编辑公式为“- Sum([Sales Total]) Over (Previous([Axis.X]))”,即可实现用户所选择的各年度环比动态计算。 --------------------...

2018-05-24 13:59:26

阅读数:71

评论数:0

Spotfire调试经验——百分比的动态计算(Dynamic percentage calculation in Spotfire visualization)

使用百分比展现数据的好处就是可以进行数据的normalization(标准化),进而便于对相关指标进行比较。那么,应该如何动态计算百分比呢?其实这个问题应该是初学Spotfire时就应该掌握的,奈何当时Spotfire是边学边干(美称learning by doing,哈哈),没有接受过良好而系统...

2018-05-24 13:39:49

阅读数:70

评论数:0

调试经验——Spotfire中使用Javascript脚本实现可折叠菜单风格的筛选器(Accordion widget in Spotfire)

Spotfire中自带的筛选器(filtering schema, filter group, filters)其实已经非常强大了(用户/开发人员基本上不用操心,Spotfire会自动生成所有字段/数据列对应的筛选器/prompt)。所以,从实用角度来讲,不用另外创建filter panel。自己...

2018-05-23 15:02:38

阅读数:108

评论数:0

调试经验——Spotfire中使用Python脚本实现下拉菜单切换数据表(Switch datatable with Python script in Spotfire)

有位美国同事向我请教问题,如何下拉菜单切换Table visualization(表格视图)所引用的数据表。经过一番google, baidu, yahoo,以及stackoverflow等技术网站的搜索,以及在Spotfire中的不断调试,总算是实现了这个功能。不错!基本步骤:1. 创建Text...

2018-05-23 14:39:31

阅读数:172

评论数:0

高等数学Mathematica实验题——2.3 - 10. 求(有限或者无穷)和 (Partial sum or limit of series calculation)

这节的Mathematica实验题算是目前为止最简单的了。题目:2.3 -10. 用Mathematica软件求(有限或者无穷)和的命令计算下列各式的值:

2018-05-21 22:38:42

阅读数:27

评论数:0

高等数学Mathematica实验题——2.3 - 9. 级数极限的计算(Limit calucaltion of series)

题目:2.3-9. 用数值计算来体验级数 \!\(\*UnderoverscriptBox[\(\[Sum]\), \(n = 1\), \(\[Infinity]\)]\*FractionBox[SuperscriptBox[\((\(-1\))\), \(n - 1\)], \(n\)]\) ...

2018-05-21 22:21:42

阅读数:59

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭