[算表] Excel自訂函數的數值問題

看板Office作者 (未免也太熱了吧)時間11年前 (2013/07/26 17:12), 編輯推噓0(0020)
留言20則, 3人參與, 最新討論串1/1
軟體: Excel 版本: 2007 下面是我的程式碼: Function taxa(收入) Dim index As Integer index = 收入 / 20000 + 1 If 收入 > 80000 Then index = 5 taxa = 1 * Choose(index, 0.06, 0.06, 0.08, 0.11, 0.15) End Function 1. 函數名是不是不能有數字啊?因為我一開始用tax1,不行用,後來我才改成taxa 2. Dim index as Integer這行有加和沒加跑出來的結果不一樣 可以請問為什麼嗎?我想不透。 收入 有Index as Integer 沒有Index as integer 28,500 0.06 0.06 47,200 0.08 0.08 78,600 0.15 0.11 24,580 0.06 0.06 36,170 0.08 0.06 個人猜想,有加那一行代表Index會四捨五入嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.16.155

07/26 17:28, , 1F
對了,自訂函數為什麼可以不用宣告變數Index
07/26 17:28, 1F

07/26 17:55, , 2F
重覆儲存格名了~2007以上是有TAX1這個儲存格
07/26 17:55, 2F

07/26 17:57, , 3F
函數名是可以英文+數字的,但不可和儲存格名一樣
07/26 17:57, 3F

07/26 18:01, , 4F
不加,index是定義為Variant有帶小數點
07/26 18:01, 4F

07/26 18:02, , 5F
加integer為整數型態-32,768~32,767不帶小數點
07/26 18:02, 5F

07/26 18:04, , 6F
沒有將工具→選項→要求變數宣告(打勾)的話,就不強制要宣
07/26 18:04, 6F

07/26 18:04, , 7F
告變數
07/26 18:04, 7F

07/26 19:45, , 8F
非常感謝,說明得很詳細!另外想請教第二點的問題
07/26 19:45, 8F

07/26 19:47, , 9F
為什麼有宣告index為integer會使結果不一樣?
07/26 19:47, 9F

07/26 19:59, , 10F
先說Choose函數choose(index,[值1],[值2],[值3],..[值29])
07/26 19:59, 10F

07/26 20:00, , 11F
index為1~29的整數,忽略小數點,http://goo.gl/c737tx
07/26 20:00, 11F

07/26 20:10, , 12F
所以宣告integer後,變數就會小數點以下四捨五入嗎?
07/26 20:10, 12F

07/26 20:11, , 13F
integer不是四捨五入,1.5,3.5,5.5是會進位
07/26 20:11, 13F

07/26 20:13, , 14F
2.5,4.5,6.5是捨位
07/26 20:13, 14F

07/26 20:14, , 15F
2.51,2.6,4.51,4.6,6.51,6.6則是進位
07/26 20:14, 15F

07/26 20:17, , 16F
以78600/20000+1=4.93,interge會進位到5
07/26 20:17, 16F

07/26 20:18, , 17F
您可以改30000/20000+1=2.5會指定到第二個
07/26 20:18, 17F

07/26 20:30, , 18F
哦哦!好奇怪的行為哦!為什麼不統一一下。
07/26 20:30, 18F

07/26 20:30, , 19F
不過很謝謝你的解答
07/26 20:30, 19F

07/27 00:31, , 20F
四捨六入五成雙
07/27 00:31, 20F
文章代碼(AID): #1HyZs1g2 (Office)