ویژگی تصویر

تابع TRUNC در اکسل — توضیح کامل، مثـال‌ها و کاربردها

  /  اکسل   /  تابع trunc در اکسل
بنر تبلیغاتی الف

تابع TRUNC در اکسل برای «برش» یک عدد به تعداد مشخصی رقم اعشاری یا رقم‌های سمت چپ ممیز استفاده می‌شود. برخلاف ROUND که عدد را گرد می‌کند، TRUNC به سادگی قسمت‌های اضافی را حذف می‌کند (truncate) و به سمت صفر نزدیک می‌شود. این رفتار در تحلیل داده‌ها، گزارش‌های مالی و پاک‌سازی داده بسیار مفید است.

ساختار و پارامترها

ساختار تابع به شکل زیر است:

=TRUNC(number, [num_digits])

توضیح پارامترها:

  • number: عدد یا مرجع سلولی که می‌خواهید برش بزنید.
  • num_digits (اختیاری): تعداد رقم‌های اعشاری که می‌خواهید نگه دارید. مقدار پیش‌فرض 0 است (فقط قسمت صحیح نگه داشته می‌شود). اگر این مقدار مثبت باشد، تابع تا آن تعداد رقم اعشاری نگه می‌دارد و اگر منفی باشد، رقم‌ها را سمت چپ ممیز حذف می‌کند (مثلاً دهگان، صدگان).

مثال‌های عملی

مثال‌های ساده در اکسل:

=TRUNC(12.789)        ' نتیجه: 12
=TRUNC(12.789, 1)     ' نتیجه: 12.7
=TRUNC(12.789, 2)     ' نتیجه: 12.78
=TRUNC(12.789, -1)    ' نتیجه: 10

توضیح: در اولین مثال، تمام بخش اعشاری حذف می‌شود. در دوم و سوم به ترتیب یک و دو رقم اعشاری نگه داشته شده‌اند. در مثال آخر با num_digits = -1، عدد تا دهگان برش داده شده و مقدار 10 به‌دست می‌آید.

رفتار با اعداد منفی

نکته مهم: TRUNC نسبت به صفر برش می‌زند (truncate toward zero). در نتیجه:

=TRUNC(-12.789)       ' نتیجه: -12
=TRUNC(-12.789, 1)    ' نتیجه: -12.7
=TRUNC(-12.789, -1)   ' نتیجه: -10

توضیح: برخلاف تابع INT که برای اعداد منفی به سمت -∞ گرد می‌کند (مثلاً INT(-12.3) = -13)، TRUNC بخش اعشاری را حذف کرده و مقدار را به سمت صفر نزدیک‌تر می‌کند.

مقایسه TRUNC با سایر توابع مرتبط

تابعرفتار برای 12.78رفتار برای -12.78یادداشت
TRUNC(عدد)12-12برش به سمت صفر
INT(عدد)12-13گرد به پایین (به سمت -∞)
ROUND(12.78,0)13-13گرد به نزدیک‌ترین عدد (با قاعده گرد)
ROUNDDOWN(عدد,0)12-12همانند TRUNC برای بسیاری از موارد، اما قواعد متفاوتی برای آرگومان‌ها دارد

کاربردهای عملی و معیارهای انتخاب TRUNC

  • گزارش‌های مالی: وقتی نیاز دارید فقط نمایش عدد را بدون گرد کردن نشان دهید (مثلاً نمایش مبلغ کامل بدون سنت‌های ناخواسته).
  • پاک‌سازی داده‌ها: حذف مقادیر اعشاری ناخواسته هنگام مقایسه یا گروه‌بندی اعداد.
  • حساب‌های میانی: در محاسباتی که گرد کردن می‌تواند خطای تجمعی ایجاد کند، گاهی لازم است نتایج را واضحاً truncate کنید تا رفتار قابل پیش‌بینی داشته باشید.
  • تبدیل واحد: زمانی که می‌خواهید به نزدیک‌ترین ده یا صد برش دهید از num_digits منفی استفاده می‌کنید.

مثال‌های ترکیبی و کاربردی

فرض کنید ستون A شامل قیمت‌هاست و در ستون B می‌خواهید قیمت را تا یک رقم اعشار نمایش دهید بدون گرد کردن:

=TRUNC(A2, 1)

توضیح: این فرمول مقدار سلول A2 را به یک رقم اعشاری برش می‌زند. برای مجموعه داده‌ها می‌توانید فرمول را به پایین کپی کنید.

مثال دیگر: اگر بخواهید مقدار را به نزدیک‌ترین صدگان برش دهید:

=TRUNC(A2, -2)

توضیح: num_digits = -2 باعث می‌شود که دو رقم سمت چپ ممیز حذف شوند (یعنی مقدار به صدگان برش بخورد).

استفاده در VBA

Sub ExampleTrunc()
    Dim x As Double
    x = -123.456
    Debug.Print WorksheetFunction.Trunc(x, 2)   ' -123.45
    Debug.Print WorksheetFunction.Trunc(x, -2)  ' -100
End Sub

توضیح: در کد VBA بالا از متد WorksheetFunction.Trunc استفاده شده تا عملکرد تابع TRUNC اکسل در محیط VBA اجرا شود. توجه کنید که نتیجه برای num_digits = 2 برابر -123.45 خواهد بود زیرا به سمت صفر برش زده می‌شود، و برای num_digits = -2 مقدار به صدگان (−100) برش داده می‌شود.

نکات حرفه‌ای و بهترین شیوه‌ها

  • اگر می‌خواهید نمایش عدد بدون تغییر مقدار واقعی در محاسبات باشد، از فرمت سلول‌ها (Number Format) استفاده کنید نه TRUNC؛ زیرا TRUNC مقدار را تغییر می‌دهد و روی محاسبات بعدی تاثیر می‌گذارد.
  • برای مقایسه‌ها هنگام پاک‌سازی داده بهتر است ابتدا با TRUNC یک سطح دقت یکنواخت ایجاد کنید تا مقادیر اعشاری ناخواسته باعث اختلاف نشوند.
  • در فایل‌های منطقه‌ای (Locale) به جداکننده آرگومان تابع دقت کنید؛ برخی نسخه‌ها از نقطه‌ویرگول (;) به جای ویرگول (,) استفاده می‌کنند. در این مقاله فرمول‌های انگلیسی و استاندارد با ویرگول آمده‌اند.
  • اگر نیاز به عملکرد معکوس یا بازیابی گرد شده دارید، ترکیب TRUNC با سایر توابع (مثلاً ROUND یا FLOOR/CEILING) ممکن است مفید باشد.

خلاصه و انتخاب مناسب

تابع TRUNC برای زمانی مناسب است که می‌خواهید بخش اعشاری یا بخش‌هایی از عدد را حذف کنید بدون اینکه عدد را گرد کنید. اگر نیاز به گرد کردن دارید از ROUND و اگر رفتار برای اعداد منفی باید همیشه به سمت -∞ باشد از INT استفاده کنید. انتخاب تابع مناسب بستگی به نیاز تحلیلی شما، نحوه محاسبه خطا و نحوه نمایش داده‌ها دارد.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: