تابع 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 استفاده کنید. انتخاب تابع مناسب بستگی به نیاز تحلیلی شما، نحوه محاسبه خطا و نحوه نمایش دادهها دارد.
آیا این مطلب برای شما مفید بود ؟




