返回列表 上一主題 發帖

奬金要如何用vba計算呢

如何計算

A1為單位  A2為職稱   A3為目標額  A4為達成額 A5為比率計算公式為((A4/A3)-100)*75
:
:
:
A300

筆數約為300筆(如何代入公式VBA)

如何用VBA寫成呢???

TOP

回復 3# sillykin
你把檔案t傳到哪裡去了?
要點選附件(迴紋針)才行!
Excel 的檔案要先壓縮成 Winrar 的 .rar、或 Winzip 的  .zip。

TOP

回復 5# sillykin


    檔案巳上傳...請大大幫忙

3333.rar (7.88 KB)

TOP

奬金要如何用vba計算呢

奬金要如何vba計算呢??
在檔案裡有相關的條件..請參閱

3333.rar (7.88 KB)

1

評分人數

    • GBKEE: 重複發帖金錢 -2

本帖最後由 GBKEE 於 2013-7-21 05:30 編輯

回復 1# sillykin
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim I As Integer
  4.     With Sheets("&&單位成績總表&&").Range("A3")
  5.         Do While .Offset(I) <> ""
  6.             獎金程式 .Offset(I), .Offset(I, 2), .Offset(I, 4)
  7.             I = I + 1
  8.         Loop
  9.     End With
  10. End Sub
  11. Private Sub 獎金程式(單位 As Range, 職稱 As String, 達成額 As Integer)
  12.     Dim Ar(1 To 2), M, 責任額 As Integer, 達成百分比 As Single, 獎金 As Integer, 副總獎金 As Integer
  13.     '  ****(條件工作表中) 沒有的職稱 ->  高級專員, 權理經理  ***
  14.     If 單位 Like "管理*" Then
  15.         '管理單位:  二等襄理, 一等襄理, 副經理,  經理
  16.         '責任額  :     600 ,     700 ,  800  ,   900
  17.         Ar(1) = Array("二等襄理", "一等襄理", "副經理", "經理")    '***管理單位 :沒有的職稱 ,副總經理
  18.         
  19.         Ar(2) = Array(300, 600, 700, 800, 900, 2500)                                '陣列(責任額) :
  20.     Else
  21.         '營業單位:  二等襄理, 一等襄理, 副經理, ( 協理、經理)  副總經理
  22.         '責任額  :     1500 ,     2000,   2200,     (註1)    ,  2,500
  23.         Ar(1) = Array("二等襄理", "一等襄理", "副經理", "協理", "經理", "副總經理")
  24.         Ar(2) = Array(500, 1500, 2000, 2200, "(註1)", "(註1)", 2500)                '陣列(責任額) :
  25.     End If
  26.     M = Application.Match(職稱, Ar(1), 0)                                           'M > 0 為幹部
  27.     副總獎金 = 0
  28.     If IsError(M) Then
  29.         '***** Match不到職稱時, M = 錯誤值 -> 非幹部**********
  30.          責任額 = Ar(2)(0)                                                          '非幹部 責任額: 300 或 500
  31.         If 單位 Like "管理*" Then   '管理單位
  32.             '陣列:管理單位 非幹部 (獎懲獎金 表)
  33.             Ar(2) = Array(0, 0, -10000, -7000, -5000, -4000, -3000, -2000, -1000, -500, 500, 55)
  34.                          ' ,  ,   <3% ,   <4%,   <5%,   <6%,   <7%,   <%8,  <9% , <10%,>=10%,每1%.
  35.         Else  '營業單位
  36.             '陣列:營業單位 非幹部 (獎懲獎金 表)
  37.             Ar(2) = Array(0, 0, -10000, -7000, -5000, -4000, -3000, -2000, -1000, -500, 800, 75)
  38.                          '0, 0,   <3% ,   <4%,   <5%,   <6%,   <7%,   <%8,  <9% , <10%,>=10%,每1%.
  39.         End If
  40.         '***** Match不到職稱時, M = 錯誤值 -> 非幹部 **********
  41.     Else
  42.        '**************幹部 ************************************
  43.         If M = UBound(Ar(1)) + 1 Then 副總獎金 = 2000                               '副總達到獎金會再多2000元
  44.         責任額 = Ar(2)(M)
  45.         If 單位 Like "管理*" Then
  46.             '陣列:管理單位 幹部 (獎懲獎金 表)
  47.             Ar(2) = Array(0, 0, -25000, -20000, -16000, -12000, -8000, -6000, -4000, -2000, 1000, 75)
  48.                          ' ,  ,   <3% ,   <4%,   <5%,   <6%,   <7%,   <%8,  <9% , <10%,>=10%,每1%.
  49.                                                                                    
  50.         Else
  51.             '陣列:營業單位 幹部 (獎懲獎金 表)
  52.             Ar(2) = Array(0, 0, -25000, -20000, -16000, -12000, -8000, -6000, -4000, -2000, 2000, 155)
  53.                          ' ,  ,   <3% ,   <4%,   <5%,   <6%,   <7%,   <%8,  <9% , <10%,>=10%,每1%.
  54.                                                                                    
  55.         End If
  56.         '**************幹部 ************************************
  57.     End If
  58.     單位.Offset(, 3) = 責任額
  59.     達成百分比 = Round(達成額 / 責任額 * 100, 0)
  60.     單位.Offset(, 5) = 達成百分比
  61.     獎金 = 0
  62.     If 達成額 / 責任額 * 10 < 3 Then
  63.         M = 2
  64.     ElseIf 達成額 / 責任額 * 10 > 10 Then
  65.         M = 10
  66.         獎金 = Ar(2)(UBound(Ar(2)))
  67.     Else
  68.         M = Int(達成額 / 責任額 * 10)
  69.     End If
  70.     'Ar(2)(M) = 獎懲的金額
  71.     單位.Offset(, 6) = Ar(2)(M) + ((達成百分比 - 100) * 獎金) + 副總獎金
  72.     '獎金計算公式: 獎懲的金額+  ((達成100%以上-100)* 獎金) + 副總獎金
  73. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# sillykin
如圖中: 貼在同一模組裡都可(因條件已寫死)


感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

大大在請教...
如何在逹成比率(%)算出來為四捨五入為整數
例如:320.55555   
答案:321

TOP

回復 12# sillykin


    測試結果..奬金都不太對

TOP

回復 13# sillykin
請修改如下
  1.   單位.Offset(, 3) = 責任額
  2.     達成百分比 = Round(達成額 / 責任額 * 100, 0)
複製代碼
獎金的計算公式為何???
不是這樣嗎->= 獎懲獎金 +  ((達成率100%以上-100)* 獎金) + 副總獎金   
達成率未達100%以上是沒獎金的(達成率100%以上-100)* 獎金
達成率有達100%,獎懲獎金才會為正值
你的公式 (ROUND(F7-100,0)*155+2000) -> 獎懲獎金(一律都有) +2000
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 14# GBKEE


    謝謝大大的協助..檢附檔案測試的結果..發生J3:J17跟奬金不合...能否幫解決..謝謝

444.rar (13.45 KB)

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題