ساخت صورت جریان نقدی در اکسل
ساخت صورت جریان نقدی در اکسل : چرا باید جریان نقدی کسبوکار را کنترل کنیم؟...
فهرست مطالب در این مقاله:
مقدمه تفاوت VLOOKUP و XLOOKUP در اکسل:
اگر با اکسل کار میکنید، احتمالاً برای پیدا کردن اطلاعات یک مشتری، کالا، فاکتور یا کارمند در میان حجم زیادی از دادهها به تابع جستوجو نیاز پیدا کردهاید. دو تابع پرکاربرد برای این کار، VLOOKUP و XLOOKUP هستند.
تابع VLOOKUP سالها یکی از ابزارهای اصلی کاربران اکسل بوده است؛ اما تابع XLOOKUP با قابلیتهای بیشتر و ساختار انعطافپذیرتر، بسیاری از محدودیتهای VLOOKUP را برطرف کرده است.
اما آیا همیشه باید از XLOOKUP استفاده کنیم؟ آیا VLOOKUP دیگر کاربردی ندارد؟
در این مقاله، تفاوت VLOOKUP و XLOOKUP را به زبان ساده بررسی میکنیم، ساختار هر دو فرمول را توضیح میدهیم و با مثالهای حسابداری نشان میدهیم در چه شرایطی انتخاب هرکدام منطقیتر است.
تابع VLOOKUP برای جستوجوی یک مقدار در اولین ستون یک جدول و بازگرداندن اطلاعات از یکی دیگر از ستونهای همان جدول استفاده میشود.
برای مثال، فرض کنید فهرستی از کالاها دارید که شامل کد کالا، نام کالا و قیمت واحد است. با وارد کردن کد کالا، میتوانید نام یا قیمت آن را بهصورت خودکار پیدا کنید.
=VLOOKUP(lookup_value,table_array,col_index_num,FALSE)
اجزای این فرمول عبارتاند از:
lookup_value: مقداری که میخواهید جستوجو کنید.table_array: محدوده جدولی که اطلاعات در آن قرار دارد.col_index_num: شماره ستونی که نتیجه از آن برگردانده میشود.FALSE: درخواست تطبیق دقیق مقدار جستوجو.برای جستوجوی کد مشتری، کالا یا سند مالی معمولاً تطبیق دقیق انتخاب مناسبی است.
فرض کنید جدول زیر در شیت Products قرار دارد:
| کد کالا | نام کالا | قیمت واحد |
|---|---|---|
| 1001 | کاغذ A4 | 2,500,000 |
| 1002 | خودکار | 150,000 |
| 1003 | زونکن | 800,000 |
فرض کنید کد کالا را در سلول A2 وارد میکنید و میخواهید نام کالا را در سلول B2 نمایش دهید.
فرمول زیر را وارد کنید:
=VLOOKUP(A2,Products!A:C,2,FALSE)
اکسل کد موجود در A2 را در ستون اول محدوده Products!A:C جستوجو میکند و مقدار متناظر از ستون دوم، یعنی نام کالا، را برمیگرداند.
برای دریافت قیمت واحد کافی است شماره ستون را از 2 به 3 تغییر دهید:
=VLOOKUP(A2,Products!A:C,3,FALSE)
این روش در فایلهای خرید، فروش، انبار و حسابداری کاربرد زیادی دارد.
تابع XLOOKUP نسخه جدیدتر و انعطافپذیرتری از توابع جستوجو در اکسل است. این تابع میتواند در یک محدوده جستوجو کند و مقدار متناظر را از محدوده دیگری برگرداند؛ حتی اگر محدوده نتیجه در سمت چپ محدوده جستوجو قرار داشته باشد.
=XLOOKUP(lookup_value,lookup_array,return_array,if_not_found)
اجزای فرمول:
lookup_value: مقدار مورد جستوجوlookup_array: محدودهای که باید در آن جستوجو انجام شودreturn_array: محدودهای که نتیجه از آن برگردانده میشودif_not_found: نتیجه دلخواه در صورت پیدا نشدن مقدارمزیت مهم این تابع آن است که برای تعیین محدوده جستوجو و محدوده نتیجه، به شماره ستون نیاز ندارید.
فرض کنید همان جدول کالاها را دارید و کد کالا در سلول A2 وارد میشود.
برای دریافت نام کالا بنویسید:
=XLOOKUP(A2,Products!A:A,Products!B:B,"کالا یافت نشد")
برای دریافت قیمت کالا:
=XLOOKUP(A2,Products!A:A,Products!C:C,"کالا یافت نشد")
اگر کد کالا در جدول وجود نداشته باشد، بهجای خطای معمول #N/A پیام «کالا یافت نشد» نمایش داده میشود.
این قابلیت در فایلهای حسابداری که کاربران مختلف با آن کار میکنند، به خواناتر شدن خروجی کمک میکند.
| ویژگی | VLOOKUP | XLOOKUP |
|---|---|---|
| محل جستوجو | اولین ستون محدوده جدول | محدوده جستوجوی مستقل |
| بازگرداندن نتیجه از سمت چپ | بهصورت مستقیم امکانپذیر نیست | امکانپذیر است |
| نیاز به شماره ستون | دارد | ندارد |
| پیام سفارشی در صورت نبود نتیجه | معمولاً با IFERROR | با آرگومان if_not_found |
| تطبیق دقیق | با FALSE |
بهصورت پیشفرض |
| جستوجو از آخر به اول | بهصورت مستقیم پشتیبانی نمیشود | پشتیبانی میشود |
| سازگاری با نسخههای قدیمی اکسل | گستردهتر | محدود به نسخههای پشتیبانیکننده |
| بازگرداندن چند ستون | محدودتر | در نسخههای پشتیبانیکننده امکانپذیر است |
در مجموع، XLOOKUP برای بسیاری از کاربردهای جدید گزینه انعطافپذیرتری است؛ اما سازگاری فایل با نسخه اکسل مخاطبان نیز باید در انتخاب تابع در نظر گرفته شود.
یکی از محدودیتهای مهم VLOOKUP این است که مقدار جستوجو باید در اولین ستون محدوده جدول قرار داشته باشد و نتیجه از ستونی در سمت راست آن برگردانده شود.
برای مثال، فرض کنید جدول شما به این شکل است:
| نام کالا | کد کالا | قیمت |
|---|---|---|
| کاغذ A4 | 1001 | 2,500,000 |
| خودکار | 1002 | 150,000 |
| زونکن | 1003 | 800,000 |
اگر کد کالا در سلول E2 باشد و بخواهید نام کالا را پیدا کنید، VLOOKUP در محدوده A نمیتواند مستقیماً از ستون B جستوجو کند و نتیجه را از ستون A برگرداند.
اما XLOOKUP بهراحتی این کار را انجام میدهد:
=XLOOKUP(E2,B2:B4,A2:A4,"یافت نشد")
در این فرمول، اکسل کد کالا را در ستون B جستوجو میکند و نام کالا را از ستون A برمیگرداند.
نتیجه: اگر ساختار جدول شما ثابت نیست یا لازم است از ستونی به ستون سمت چپ آن جستوجو کنید، XLOOKUP انتخاب سادهتری است.
در VLOOKUP باید شماره ستونی را مشخص کنید که نتیجه از آن برگردانده میشود.
برای مثال:
=VLOOKUP(A2,Products!A:C,3,FALSE)
عدد 3 یعنی نتیجه از سومین ستون محدوده انتخابشده برگردانده شود.
اگر بعداً ستونی به جدول اضافه شود یا ساختار محدوده تغییر کند، ممکن است لازم باشد شماره ستون را اصلاح کنید.
در XLOOKUP نیازی به شماره ستون نیست:
=XLOOKUP(A2,Products!A:A,Products!C:C,"یافت نشد")
محدوده جستوجو و محدوده نتیجه بهصورت مستقل مشخص میشوند. این ساختار خواناتر است و در بسیاری از فایلهای قابل توسعه، نگهداری فرمولها را آسانتر میکند.
هنگامی که VLOOKUP نتواند مقدار موردنظر را پیدا کند، معمولاً خطای #N/A نمایش داده میشود.
برای مدیریت این خطا میتوانید از IFERROR استفاده کنید:
=IFERROR(VLOOKUP(A2,Products!A:C,2,FALSE),"کالا یافت نشد")
در XLOOKUP، آرگومان چهارم برای همین منظور در نظر گرفته شده است:
=XLOOKUP(A2,Products!A:A,Products!B:B,"کالا یافت نشد")
هر دو روش قابل استفاده هستند؛ اما در XLOOKUP نیازی به نوشتن تابع جداگانه برای مدیریت نبود نتیجه ندارید.
توجه کنید که IFERROR تمام خطاهای فرمول را میتواند پوشش دهد؛ بنابراین اگر هدف فقط مدیریت نبود مقدار است، پیام عمومی آن ممکن است خطاهای دیگری را هم پنهان کند.
در VLOOKUP، آرگومان آخر تعیین میکند که جستوجو دقیق باشد یا تقریبی:
=VLOOKUP(A2,Products!A:C,2,FALSE)
در این مثال، FALSE یعنی مقدار باید دقیقاً پیدا شود.
در XLOOKUP، تطبیق دقیق بهصورت پیشفرض استفاده میشود:
=XLOOKUP(A2,Products!A:A,Products!B:B,"یافت نشد")
این ویژگی برای کد پرسنلی، شماره فاکتور، کد کالا و شناسه مشتری اهمیت دارد؛ زیرا معمولاً نباید اطلاعات یک شناسه متفاوت بهعنوان نتیجه برگردانده شود.
اگر از VLOOKUP برای جستوجوی تقریبی استفاده میکنید، باید به نوع مرتبسازی دادهها و آرگومان انتخابی توجه داشته باشید.
گاهی ممکن است یک کد مشتری یا کالا چند بار در جدول تکرار شده باشد و بخواهید آخرین رکورد مطابق آن را پیدا کنید.
XLOOKUP امکان تعیین جهت جستوجو را دارد. برای جستوجو از آخر به اول میتوانید از آرگومانهای اختیاری آن استفاده کنید:
=XLOOKUP(A2,Products!A2:A100,Products!C2:C100,"یافت نشد",0,-1)
در این فرمول، مقدار -1 در آرگومان آخر باعث میشود جستوجو از آخرین مقدار به سمت اولین مقدار انجام شود.
این قابلیت زمانی کاربرد دارد که ترتیب رکوردها معنا داشته باشد؛ برای مثال، وقتی میخواهید آخرین قیمت ثبتشده برای یک کد کالا را پیدا کنید. البته اگر دادهها مربوط به سوابق قیمت هستند، بهتر است تاریخ ثبت نیز بررسی شود تا آخرین ردیف الزاماً با جدیدترین تاریخ اشتباه گرفته نشود.
فرض کنید جدولی به نام Customers دارید که ستونهای آن شامل کد مشتری، نام مشتری و شماره تماس است.
| کد مشتری | نام مشتری | شماره تماس |
|---|---|---|
| C101 | علی رضایی | 09120000001 |
| C102 | مریم احمدی | 09120000002 |
| C103 | رضا محمدی | 09120000003 |
اگر کد مشتری در سلول A2 وارد شود، میتوانید با XLOOKUP نام او را نمایش دهید:
=XLOOKUP(A2,Customers!A:A,Customers!B:B,"مشتری یافت نشد")
برای نمایش شماره تماس:
=XLOOKUP(A2,Customers!A:A,Customers!C:C,"مشتری یافت نشد")
با این روش، هنگام ثبت فاکتور فروش، لازم نیست نام مشتری و شماره تماس او را هر بار دستی وارد کنید.
اگر از VLOOKUP استفاده میکنید، فرمول مشابه برای دریافت نام مشتری به این شکل است:
=IFERROR(VLOOKUP(A2,Customers!A:C,2,FALSE),"مشتری یافت نشد")
هر دو فرمول میتوانند نتیجه موردنظر را ارائه دهند، به شرط آنکه ساختار دادهها و نسخه اکسل با تابع انتخابشده سازگار باشد.
خیر؛ انتخاب تابع به نیاز شما بستگی دارد.
XLOOKUP معمولاً انتخاب مناسبتری است اگر:
VLOOKUP همچنان مفید است اگر:
پیش از جایگزین کردن VLOOKUP با XLOOKUP، نسخه اکسل کاربران نهایی را بررسی کنید. XLOOKUP در برخی نسخههای قدیمیتر در دسترس نیست و استفاده از آن ممکن است باعث نمایش خطای #NAME? شود.
برای اینکه فرمولهای جستوجو در فایلهای حسابداری دقیقتر عمل کنند، این موارد را بررسی کنید:
در فایلهای حسابداری، صرفاً حذف خطا از ظاهر گزارش کافی نیست؛ باید مطمئن شوید مقدار برگشتی واقعاً به رکورد موردنظر تعلق دارد.
XLOOKUP در بسیاری از کاربردها جایگزین انعطافپذیرتری است، اما VLOOKUP همچنان برای فایلهای قدیمی و محیطهایی که XLOOKUP را پشتیبانی نمیکنند، کاربرد دارد.
ممکن است نسخه اکسل شما از این تابع پشتیبانی نکند. اگر پس از وارد کردن فرمول خطای #NAME? مشاهده کردید، نسخه اکسل را بررسی کنید یا از تابعی سازگار مانند VLOOKUP استفاده کنید.
در نسخههای پشتیبانیکننده از آرایههای پویا، میتوان محدوده چندستونی را بهعنوان محدوده نتیجه انتخاب کرد تا چند ستون اطلاعات برگردانده شود؛ البته باید فضای کافی برای نمایش نتایج وجود داشته باشد.
اگر کاربران از نسخههای جدید اکسل استفاده میکنند، XLOOKUP معمولاً انتخاب خوبی برای دریافت اطلاعات مشتری، کالا و کارکنان است. اگر سازگاری با نسخههای قدیمی اهمیت دارد، VLOOKUP میتواند انتخاب مناسبتری باشد.
لزوماً نه. عملکرد فایل به حجم دادهها، تعداد فرمولها، محدودههای ارجاعشده و ساختار workbook بستگی دارد. بهتر است از محدودههای مناسب استفاده کنید و در فایلهای بزرگ، عملکرد را با دادههای واقعی آزمایش کنید.
تفاوت اصلی VLOOKUP و XLOOKUP در انعطافپذیری و شیوه تعریف محدوده جستوجو است. VLOOKUP به شماره ستون نیاز دارد و نتیجه را از ستونهای سمت راست محدوده جستوجو برمیگرداند؛ در مقابل، XLOOKUP محدوده جستوجو و نتیجه را جداگانه مشخص میکند و امکانات بیشتری برای مدیریت نبود نتیجه و جهت جستوجو دارد.
اگر از نسخه جدید اکسل استفاده میکنید، XLOOKUP معمولاً گزینه مناسبتری برای ساخت فایلهای حسابداری جدید است. بااینحال، برای فایلهایی که باید در نسخههای قدیمیتر اجرا شوند، VLOOKUP همچنان کاربرد دارد.
بهترین انتخاب، تابعی است که ضمن پاسخگویی به نیاز شما، با نسخه اکسل کاربران سازگار باشد و اطلاعات مالی را بهشکل درست و قابل کنترل برگرداند.
آموزش حسابداری در اکسل
ساخت صورت جریان نقدی در اکسل : چرا باید جریان نقدی کسبوکار را کنترل کنیم؟...
آموزش حسابداری در اکسل
مدیریت حسابهای دریافتنی و پرداختنی در اکسل : چرا مدیریت مطالبات و بدهیها اهمیت دارد؟ فرض...
آموزش حسابداری در اکسل
ساخت فاکتور فروش در اکسل: اگر صاحب فروشگاه، کسبوکار خدماتی یا یک مجموعه کوچک هستید، احتمالاً...