返回列表 上一主題 發帖

[發問] 關於累進計算的值,有問題請教(excel2003)

[發問] 關於累進計算的值,有問題請教(excel2003)

本帖最後由 zero20209 於 2013-11-7 09:00 編輯

計算上傳.rar (2.11 KB)

詳細參閱附件
-------------------------------------------------
         A                                            B                                  C                          D                                 E
1     里程數                         每一長度/體積        日數        當日進行長度                      每天結算
2     0K+000                                                     11月1日                    5.12                         "=5.12*9.108"
3     0K+016.16        9.108                         11月2日                16.15                             "=(16.15-5.12)*9.108"
4     0K+036.16        4.56                            11月3日                   36.16                          "[(16.16-16.15)*9.108]+(36.16-16.16)*4.56"
5     0K+056.16        2.766                         11月4日                 37.2                             "=(37.2-36.16)*2.766"
6     0K+076.16        1.931                         11月5日                56.17                             "=[(56.16-37.2)*2.766]+[(56.17-56.16)*1.931]"



↑                 0≦16.16為9.108
            16.17≦36.16為 4.56
            36.17≦56.16為2.766
            56.17≦76.16為1.931

-------------------------------------------------
類似這樣子的一個表格
每天要分開結算
超過了範圍之後便從下一個範圍開始計算
前面的範圍如果超過了則不重覆計算
請問這樣子的公式用EXCEL有辦法寫出來嗎?

  1. E2 =SUMPRODUCT(LOOKUP(ROW(INDIRECT(N(D1)*100+1&":"&D2*100)),(A$2:A$5+0.01)*100,B$3:B$6))%
複製代碼
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 2# ML089

感謝,我絕對不可能想出這種公式
不過有一個地方數值跟手算起來有點誤差

除了11/3算起來有誤差以外
其它日期都完全正確
而11/3依照公式跑出來答案是91.33656
                           但實際上應該是91.29108

正在思考是哪邊出問題

TOP

回復 3# zero20209

應該是浮點運算的誤差所致,增加 ROUND來消減誤差

=SUMPRODUCT(LOOKUP(ROW(INDIRECT(N(D1)*100+1&":"&D2*100)),ROUND((A$2:A$5+0.01)*100,),B$3:B$6))%
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 4# ML089


是了,原來是小數點的關係
這次真的完全OK了,十分感謝

我也要來好好研究一下這個公式寫法

TOP

        靜思自在 : 人生沒有所有權,只有生命的使用權。
返回列表 上一主題