以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教老师一个异常复杂的公式。(用笨办法解决了,有没有更好的建议?) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5772) |
||||
-- 作者:菜鸟foxtable -- 发布时间:2010/1/12 22:40:00 -- 请教老师一个异常复杂的公式。(用笨办法解决了,有没有更好的建议?)
![]() ![]() 如图所示:红色数字全部为变量。蓝色数字为结果。 现在不考虑变量的问题,全部固定如图红色所示数值,想求自付金额合计部分数值,狐表中应该如何写公式? 医保金额5000以内自费金额=(5000-起付标准)*10% 医保金额 >5000 且 <=10000 则 5000至10000部分自费金额=(医保金额-5000)*8% 医保金额 >10000 则 5000至10000部分自费金额=5000*8% 以此类推。 另外还有个限制!医保金额如果>最高限额-本次住院以前医保费用 则进入分段计算的金额需减去超出部分。。。 因为有个分段的问题,所以想来想去都不明白。 如果直接求结果不行,能否提供一个思路?建立一个表?先求出分段部分金额再分别统计? 把C版的示例放上来给大家修改。
[此贴子已经被作者于2010-1-13 1:52:58编辑过]
|
||||
-- 作者:菜鸟foxtable -- 发布时间:2010/1/13 0:54:00 -- ![]() ![]() 我想到一个方法,用窗口来计算,但是分段金额用的笨办法,代码如下: 在起付标准的ValueChanged事件中 If e.Form.Controls("TextBox1").Value > 5000 Then e.Form.Controls("TextBox3").Value = 5000-e.Sender.Value Else e.Form.Controls("TextBox3").Value = e.Form.Controls("TextBox1").Value - e.Sender.Value End If ........后面省略。 ![]() [此贴子已经被作者于2010-1-13 1:08:25编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/13 1:09:00 -- 我想只需求出了总金额就好办了吧,将总金额保存在变量中,直接用iif好象就可以了。 |
||||
-- 作者:czy -- 发布时间:2010/1/13 1:15:00 -- 5000一个分段用Mod来完成。 理解错了,Mod行不通。 你这个类推怎么个推法? [此贴子已经被作者于2010-1-13 1:20:12编辑过]
|
||||
-- 作者:菜鸟foxtable -- 发布时间:2010/1/13 1:34:00 -- 以下是引用czy在2010-1-13 1:15:00的发言:
5000一个分段用Mod来完成。 理解错了,Mod行不通。 你这个类推怎么个推法? [此贴子已经被作者于2010-1-13 1:20:12编辑过] 它分段不完全是5000一个段,一个5000减起付金额,一个5000,一个10000,一个上限为止。而且每个段的比例都不同。。 [此贴子已经被作者于2010-1-13 1:41:52编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/13 1:41:00 -- 已知第一段和第二段的规律是5000一分段 第三段是10000 第四段是所有前面已分段金额的余数,是这样吗? 那么它们的比例分别是怎样的呢? |
||||
-- 作者:菜鸟foxtable -- 发布时间:2010/1/13 1:43:00 -- 比例只能手工录入。。或者预设。比如图中所示。 [此贴子已经被作者于2010-1-13 1:44:41编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/13 1:46:00 -- 如果比例需手工的话,二楼应该是个好办法了。 |
||||
-- 作者:菜鸟foxtable -- 发布时间:2010/1/13 1:47:00 -- ![]() [此贴子已经被作者于2010-1-13 1:50:11编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/1/13 12:30:00 -- 没想到好办法,看来只能用原始的方法了。 |