Foxtable(狐表)用户栏目专家坐堂 → [求助]excel公式计算


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

主题:[求助]excel公式计算

帅哥哟,离线,有人找我吗?
188802386
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
[求助]excel公式计算  发帖心情 Post By:2018/8/14 12:05:00 [只看该作者]

我有一个提成公式=ROUND(MAX(E3*{0.16,0.19,0.22,0.25,0.3,0.35,0.4,0.45,0.45,0.45}-{0,300,900,1800,3800,6300,9300,12800,12800,12800},0),2)
请问在系统里面业绩列输入业绩后,提成列通过上面的公司得出相应的金额,请问该如何操作。
E3为业绩列

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


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

写代码计算吧,比较麻烦的。

 

Dim ary1() As Double = {0.16,0.19,0.22,0.25,0.3,0.35,0.4,0.45,0.45,0.45}
Dim ary2() As Double = {0,300,900,1800,3800,6300,9300,12800,12800,12800}
Dim v As Double = 10000

Dim ary3(ary1.length-1) As Double
For i As Integer = 0 To ary3.length-1
    ary3(i) = v*ary1(i)-ary2(i)
Next
array.sort(ary3)
msgbox(ary3(ary3.length-1))


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/8/14 12:33:00 [只看该作者]

甜老师太牛了,结果是我想要得。但能不能解释下是怎么得出来的呢,这代码啃不透,看不懂啊。

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


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

以下是引用188802386在2018/8/14 12:33:00的发言:
甜老师太牛了,结果是我想要得。但能不能解释下是怎么得出来的呢,这代码啃不透,看不懂啊。

 

比如excel公式是 100*{1,2,3}-{7,8,9}

 

实际上展开就是 100*1-7,100*2-8,100*3-9,如果再加上max,就是获取三个数的最大值。


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/8/16 12:25:00 [只看该作者]

列1 {0.16,0.19,0.22,0.25,0.3,0.35,0.4,0.45,0.45,0.45}
列2 {0,300,900,1800,3800,6300,9300,12800,12800,12800}
业绩 10000
sql数据库里有这三列数据,能否用sql语句来计算提成呢

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


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

回复5楼,是无法直接计算的。

 

如果需要计算,你要在数据库那里添加一个函数,用来分割出值,计算,最后返回一个结果。


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/8/16 13:14:00 [只看该作者]

甜老师,能详细讲下具体步骤吗,我看到sql里也有max round 函数啊
表里有个提成公式列 {0.16,0.19,0.22,0.25,0.3,0.35,0.4,0.45,0.45,0.45}-{0,300,900,1800,3800,6300,9300,12800,12800,12800}  就是这样的内容
如果这种不得行的话,或者需要怎么改动表 只要能实现sql来计算这个提成就行
[此贴子已经被作者于2018/8/16 13:18:08编辑过]

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


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

1、添加函数,编写计算逻辑

 

https://www.baidu.com/baidu?wd=sql+server+create+function

 

2、调用函数返回计算结果。

 

3、函数的编写类似2楼的代码,自行学习sqlserver编程。


 回到顶部