طراحی سایت - طراحی و پیاده سازی پروژه های نرم افزاری - پیاده سازی محیط های شبکه، تنظیمات حرفه ای مودم های Cisco - مشاوره ارتباط سایت (ارتباط شعب)

محل لوگو

تابع محاسبه مالیات سال 1397 در اکسل


همانطور که در پست مطلب قبلی اشاره کردیم، اکسل توانایی نوشتن و اجرای توابع شخصی را دارا میباشد. در اینجا قصد داریم تا تابعی بنویسیم تا مالیات سال 1397 را که در چند سقف مالیاتی میباشد بنویسیم. (در ادامه فرمول خطی آنرا نیز خواهیم گفت)

پس مانند پست قبل یک فایل با حالت macro enabled ایجاد کرده و با کلید alt+f11 وارد محیط vb شده و تابع زیر را مینویسیم :

Public Function CalculateTax97(ByVal mashmoolMaliat As Double) As Double

  Dim tx As Double

  If mashmoolMaliat > 161000000 Then
    tx = (mashmoolMaliat - 161000000) * 0.35 + 11500000 + 3450000 + 6900000
  Else
    If mashmoolMaliat > 115000000 Then
      tx = (mashmoolMaliat - 115000000) * 0.25 + 3450000 + 6900000
    Else
      If mashmoolMaliat > 92000000 Then
        tx = (mashmoolMaliat - 92000000) * 0.15 + 6900000
      Else
        If mashmoolMaliat > 23000000 Then
          tx = (mashmoolMaliat - 23000000) * 0.1
        Else
          tx = 0
        End If
      End If
    End If
  End If

  CalculateTax97 = tx


End Function

سپس از منوی فایل گزینه save را انتخاب کرده و با کلید alt+f11 به محیط اکسل برمیگردیم و در یک سلول خالی عبارت CalculateTax97(92000000)= را تایپ میکنیم. تابع، عدد 6.900.000 را بازمیگرداند.

 

فرمول خطی این تابع (بدون نیاز به نوشتن تابع) بصورت زیر میباشد که میتوان در یک سلول خالی آنرا تایپ کرد. (با فرض اینکه عدد مشمول مالیات یا 92.000.000 ما در ستون B9 تایپ شده باشد، در ستون B10 این فرمول را مینویسیم :

=IF(B9>161000000;((B9-161000000)*0.35)+11500000+3450000+6900000;IF(B9>115000000;((B9-115000000)*0.25)+3450000+6900000;IF(B9>92000000;((B9-92000000)*0.15)+6900000;IF(B9>23000000;((B9-23000000)*0.1)+0;0))))

همانطور که مشاهده میکنید، جواب مانند مثالی که با تابع نوشته شد، برابر است.

 

در اینجا باید درنظر گرفت که در بعضی شرایط که میتوان تابع خود را بصورت خطی (در محیط اکسل و نه در vb) نوشت، قطعا" اینکار بهتر است. اما در شرایطی بدلیل طولانی شدن فرمول خطی و یا پیچیده شدن آن و یا استفاده از دستوراتی مانند حلقه ها و یا if های مکرر، استفاده از توابع شخصی اجتناب ناپذیر میباشد.

 

موفق باشید.

  انتشار : ۲۷ فروردین ۱۳۹۷               تعداد بازدید : 78

برچسب های مهم

دیدگاه های کاربران (0)

تمام حقوق مادی و معنوی این وب سایت متعلق به "" می باشد

فید خبر خوان    نقشه سایت    تماس با ما