Foxtable(狐表)用户栏目专家坐堂 → [求助]关于Excel报表调用excel函数的问题


  共有3890人关注过本帖树形打印复制链接

主题:[求助]关于Excel报表调用excel函数的问题

美女呀,离线,留言给我吧!
1452565001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:54 积分:486 威望:0 精华:0 注册:2017/6/7 16:59:00
[求助]关于Excel报表调用excel函数的问题  发帖心情 Post By:2017/8/9 16:10:00 [只看该作者]

我想使用excel报表功能分别统计每个月的人数,金额,和费率,同一个名字算同一个人,想用excel函数进行统计,逻辑如下:

人数:计算相同的名字有n个,每个都记为1/n 人数就等于所有1/n的和

金额:计算所有金额列的和

费率:以金额为权,计算费率的加权平均数。

实例上传了,按照自己的想法做了简单的报表,但是运行不了。请老师指点。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 16:49:00 [只看该作者]

模板,这样写

 

[!数量1] [!金额1]

 

你生成之前,先执行代码

 

Dim filter As String = "时间 >= #2017-07-01# and 时间 < #2017-08-01#"
vars("数量1") = DataTables("表a").GetValues("姓名", filter).count
vars("金额1") = DataTables("表a").compute("sum(金额)", filter)

 

 


 回到顶部
美女呀,离线,留言给我吧!
1452565001
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:54 积分:486 威望:0 精华:0 注册:2017/6/7 16:59:00
  发帖心情 Post By:2017/8/9 17:12:00 [只看该作者]

老师,不知道是不是我的浏览器显示问题,这个模板没看懂。
图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20170809171118.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 17:25:00 [只看该作者]

你excel单元格直接写 [!数量1] 就行了。

 

你生成报表之前,先用代码给 数量1 赋值

 

Dim filter As String = "时间 >= #2017-07-01# and 时间 < #2017-08-01#"
vars("数量1") = DataTables("表a").GetValues("姓名", filter).count

 

 


 回到顶部
美女呀,离线,留言给我吧!
1452565001
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:54 积分:486 威望:0 精华:0 注册:2017/6/7 16:59:00
  发帖心情 Post By:2017/8/9 17:26:00 [只看该作者]

奥,好的 谢谢老师

 回到顶部
美女呀,离线,留言给我吧!
1452565001
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:54 积分:486 威望:0 精华:0 注册:2017/6/7 16:59:00
  发帖心情 Post By:2017/8/9 17:30:00 [只看该作者]

那能否计算加权费率呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 18:01:00 [只看该作者]

以下是引用1452565001在2017/8/9 17:30:00的发言:
那能否计算加权费率呢?

 

Dim filter As String = "时间 >= #2017-07-01# and 时间 < #2017-08-01#"
Dim drs = DataTables("表a").Select(filter)
Dim sum1 As Double = 0
Dim sum2 As Double = 0
For Each dr As DataRow In drs
    sum1 += dr("金额") * dr("费率")
    sum2 += dr("金额")
Next

Dim avg = sum1 / sum2

msgbox(avg)


 回到顶部
美女呀,离线,留言给我吧!
1452565001
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:54 积分:486 威望:0 精华:0 注册:2017/6/7 16:59:00
  发帖心情 Post By:2017/8/9 18:03:00 [只看该作者]

谢谢指点!

 回到顶部
帅哥哟,离线,有人找我吗?
wfkbabro
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:2425 威望:0 精华:0 注册:2011/10/21 17:07:00
  发帖心情 Post By:2021/9/7 22:31:00 [只看该作者]

收藏。

 回到顶部