Excel 中有一份股票收益数据:
| A | B | |
| 1 | Date | Stock_Return |
| 2 | 1995-01-01 | -5.20% |
| 3 | 1995-02-01 | 2.10% |
| 4 | 1995-03-01 | 3.70% |
| 5 | 1995-04-01 | 6.90% |
| 6 | 1995-05-01 | 6.50% |
| 7 | 1995-06-01 | -5.60% |
| 8 | 1995-07-01 | 6.60% |
| 9 | 1995-08-01 | 6.20% |
计算目标:按指定区间[负无穷,-0.07,-0.05,-0.03,0,0.03,0.05,0.07] 对Stock_Return 列按段分组,并按Stock_Return逆序横向排列对应的Date。结果写在原 Excel 右侧,应当如下:
| D | E | F | G | H | |
| 1 | -Infinity to -0.07 | ||||
| 2 | -0.07 to -0.05 | 1995-06-01 | 1995-01-01 | ||
| 3 | -0.05 to -0.03 | ||||
| 4 | -0.03 to 0 | ||||
| 5 | 0 to 0.03 | 1995-02-01 | |||
| 6 | 0.03 to 0.05 | 1995-03-01 | |||
| 7 | 0.05 to 0.07 | 1995-08-01 | 1995-05-01 | 1995-07-01 | 1995-04-01 |
按段分组虽然稍有难度,但用Excel 公式还是可以实现的,真正麻烦的是分组后横向按次序排列。
实现步骤:
1. 运行集算器(可以到润乾官网下载,用职场版,首次运行时会提示加载授权,下载个免费的就够了)
2. 用Excel 打开要计算的文件,选中 A1:B9 区域,按 ctrl+C 复制到剪贴板。
3. 切换到集算器,选中A1 格,注意要让光标落到 A1 的编辑状态中,用 ctrl+V,将数据粘贴进来。

4. 在集算器中继续填写脚本:
| A | |
| 1 | …(复制来的数据) |
| 2 | =A1.import@t() |
| 3 | =[-0.07,-0.05,-0.03,0,0.03,0.05,0.07] |
| 4 | =A2.group@n(A3.pseg(Stock_Return)+1) |
| 5 | =A4.(~.sort(Stock_Return).(Date)) |
| 6 | =A5.concat@n("\t") |
脚本函数group 可将数据分组(但不汇总),@n 表示从 1 开始按组号分组。函数 pseg 用于计算某个值所属的区间号,默认从 0 开始。函数 concat 用指定符号将大序列里的小序列合并为字符串,@n 表示字符串之间用回车换行分隔。
5. 按F9 执行,点击 A6,在右侧可以看到执行结果,点击"copy data" 按钮,将 A6 的计算结果复制到剪贴板

6. 在Excel 选中 E1 单元格,用 ctrl+V 粘贴,即可把结果填入 E1:H7。
7. 还剩Excel 的 D 列(左表头)未处理,可以手工填,也可以继续写如下集算器脚本,并用同样的方法将 A8 的计算结果复制粘贴到 Excel 的 D 列。
| A | |
| 7 | =-inf()|A3 |
| 8 | =A7.new(~ / "to "/ ~[1]).to(A7.len()-1) |
至此,所有的步骤已完成。
这篇博客介绍了如何使用集算器软件,结合Excel公式,将股票收益数据按特定区间分组并按逆序横向排列。通过运行集算器、复制数据、编写脚本、执行计算等步骤,实现了数据的处理和结果的导出。
686

被折叠的 条评论
为什么被折叠?



