|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 mrsjun 于 2017-6-23 08:43 编辑
有一个交易记录表格,相同的 交易品种 有 多条交易记录,每一条都有 买入日期 和 卖出日期,如果以 交易品种 为主关键字,进行日期汇总,去掉重复日期,看看一共持有了多少天,同时利用公式计算出整个交易周期持有仓位的天数,怎么办?大神们,请帮忙看看!
部分解决,还有其它问题,解决公式在8楼,现移到下方,谢谢【红旗雪】
- =COUNT(0/MMULT(TRANSPOSE((B$2:B$46<>"")*1),(TRANSPOSE(ROW($42736:$46752))>=E$2:E$46)*(TRANSPOSE(ROW($42736:$46752))<=F$2:F$46)*(MOD(TRANSPOSE(ROW($42736:$46752)),7)>1)*(B$2:B$46=B2)))
复制代码
2017-6-22 22:00
还有一个问题求教?交易日期内有节日需要排除的,会指定如下图,例:(为了配合NETWORKDAYS.INTL函数才这样指定的)指定节日 | 2017-5-29 | 2017-5-30 | 2017-10-1 | 2017-10-2 | 2017-10-3 | 2017-10-4 | ...... | 2017-10-8
|
|
|
应该如何从数组中把它排除呢?
*附小提示:我把结束日期定义到2027-12-31,数组多了3000维,感觉整个表的速度都将下来啦。所以就把ROW配合indirect把结束日期范围动态指定为今天加1天,速度就快多了,MMULT的乘积运算太浪费内存,数组多了机器跑不动。
2017-6-23 2:42
我试着把指定需要排除的节日日期改为以列的形式存放,并且和记录条数一样多,都是从2行到46行。如下图:4.png
然后在公式增加一个<>“不等于”的条件,只能排除列首第一行的日期,这是为什么呢?
增加部分为:
=COUNT(0/MMULT(TRANSPOSE((B$2:B$46<>"")*1),(TRANSPOSE(ROW(42826:42909))<>J$2:J$46)*(TRANSPOSE(ROW(42826:42909))>=E$2:E$46)*(TRANSPOSE(ROW(42826:42909))<=F$2:F$46)*(MOD(TRANSPOSE(ROW(42826:42909)),7)>1)*(B$2:B$46=B2)))
不知道什么原因,不能正常排除全部节日日期。请教高手?
|
-
问题1-日期去重汇总
-
问题2-排除指定日期
-
指定日期改为一列,和记录数量对应。
-
-
工作簿1.zip
10.05 KB, 下载次数: 14
|