آموزش تابع LAMBDA جدیدترین تابع اکسل
آموزش تابع LAMBDA جدیدترین تابع اکسل
آنچه در این مقاله می خوانید
اخیرا اکسل در نسخه Insider یا Beta آفیس 365 تابعی به نام LAMBDA اضافه کرده است که میتوان از آن به عنوان انقلابی در ایجاد فرمول در اکسل نام برد.
این تابع در حقیقت به شما اجازه می دهد در محیط اکسل و بدون هیچ گونه برنامه نویسی توابع اختصاصی خودتان رو تولید کرده و از آن براحتی استفاده کنید.
در این بحث از آموزش اکسل که در تصویر زیر مشاهده می کنید در قسمت اول تابع می توانید متغیر های خود را تعریف کرده و در ادامه محاسبات اختصاصی خود را فرمول نویسی کنید
سپس بعد از بستن پرانتز به راحتی میتوانید متغیرهایی که داخل پرانتز تعریف کرده اید را تایپ کنید یا به سلولهای مشخصی ارجاع دهید.
همچنین از این تابع در قسمت نامگذاری نیز میتوانید استفاده کنید تا سپس با فراخوانی نام مورد نظر به راحتی هرچه تمام تر از آن استفاده کنید.
شاید در نگاه اول به نظر شما این تابع چندان کاربردی نداشته باشد اما وقتی از این تابع استفاده کنید متوجه قدرت بینظیر و کاربرد فوق العاده آن خواهید شد.
فرمول های اکسل پرکاربردترین زبان برنامه نویسی در جهان هستند اما در این میان ایجاد یک تابع اختصاصی توسط کاربر در این محیط از قلم افتاده بود که با ساخت تابع LAMBDA این محدودیت برطرف شد.
LAMBDA
به زبان ساده ، LAMBDA به شما این امکان را می دهد که توابع دلخواه خود را با استفاده از زبان فرمول نویسی در اکسل تعریف کنید.
تا قبل ازین اکسل به شما امکان تعریف توابع سفارشی را می داد ، اما این کار فقط از طریق تعریف آن در زبان متفاوتی مانند JavaScript یا VBA امکان پذیر بود.
اما تابع LAMBDA به شما امکان می دهد یک تابع دلخواه را به زبان فرمول نویسی خود اکسل تعریف کنید. علاوه بر این ، یک تابع می تواند تابع دیگری را فراخوانی کند
بنابراین محدودیتی در توان شما برای استفاده از این تابع وجود ندارد.
افرادی که دارای سابقه آشنایی با علوم کامپیوتر هستند ، احتمالاً قبلاً با مفهوم لامبدا در سایر زبان های برنامه نویسی آشنا هستند.
تابع اختصاصی قابل استفاده مجدد
با LAMBDA می توانید فرمولی را که در اکسل ساخته اید بردارید و آن را در یک تابع LAMBDA قرار دهید و به آن یک نام دهید (مانند “MYFUNCTION”).
سپس در هرجای کاربرگ خود می توانید به MYFUNCTION ارجاع داده و از آن تابع سفارشی در کل فایل خود استفاده مجدد کنید. نمونه هایی را در ادامه خواهید دید.
بازگشتی (RECURSION)
عملکرد قابلیت استفاده مجدد این تابع دلیل کافی برای شروع استفاده از LAMBDA است ، اما این تابع همچنین امکان ارجاع به خود را دارد.
اگر به عنوان مثال LAMBDA به نام MYFUNCTION ایجاد کنید ، می توانید در تعریف MYFUNCTION به MYFUNCTION ارجاع دهید و آن را فراخوانی کنید.
این چیزی است که قبلاً فقط در اکسل از طریق کدنویسی(مانند VBA / JavaScript) امکان پذیر بود.
همچنین در ادامه مثالهایی میزنیم که قبلا فقط از طریق برنامه نویسی امکان پذیر بود.
توابع سفارشی قابل استفاده مجدد
یکی از بخشهای چالش برانگیز آموزش فرمول نویسی در اکسل این است که شما اغلب فرمولهای نسبتاً پیچیده ای دریافت می کنید که بارها و بارها دوباره استفاده می شود (اغلب فقط با کپی / چسباندن).
این مسئله می تواند خواندن و فهم این فرمولها را برای دیگران سخت کند و شما را بیشتر در معرض خطر خطاهای احتمالی قرار داده و یافتن و رفع خطاها را مشکل کند.
با استفاده از LAMBDA ، شما از قابلیت استفاده مجدد و ترکیب فرمولها برخوردار هستید.
برای هر منطقی که قصد دارید چندین بار استفاده کنید ، میتوانید تابعی را در محیط اکسل تعریف کنید و خطر خطاها را کاهش دهید.
مثال: استخراج شناسه های هر مرکز از درون متن
به عنوان مثال ، فرض کنید من لیستی از کدهای هر مرکز را دارم و میخوام نام مرکز را از داخل این کدها استخراج کنم.
=LEFT(RIGHT(B18,LEN(B18)-FIND("-",B18)),FIND("-",RIGHT(B18,LEN(B18)-FIND("-",B18)))-1)
اگر این فرمول را بنویسیم و برای کل ستون کپی کنیم می توانیم نتیجه نشان داده شده در جدول بالا را بدست آوریم.
اما این رویکرد دو چالش دارد:
- خطاها – اگر در فرمول خود خطایی پیدا کنم که باید آن را برطرف کنم ، مجبورم دوباره برگردم و آن را در هر کجا که استفاده شده تغییر بدم و ممکنه بعضی از فرمولها رو فراموش کنم اصلاح کنم.
- علاوه بر این ، وقتی فرمولهای پیچیده ای را تکرار کنید که بارها و بارها تکرار شده و سپس به آنها مراجعه کنید ،احتمال خطا بیشتر است.
- به عنوان مثال ، برخی از شناسه های مرکز وجود دارد که شبیه این “105532-872332-WA-73” هستند و فرمول ما برای آنها عمل نمی کند.
- اگر این خطا را پیدا کردم و بخواهم آن را برطرف کنم ، باید به هر خانه ای که از آن فرمول استفاده کرده ام برگردم و آن را به روز کنم.
- قابلیت انعطاف پذیری / خوانایی – اگر من نویسنده اصلی فرمولها نباشم، خیلی سخته که بفهمم هدف از این فرمول (استخراج مرکز) چیست؟
- استفاده از این فرمول در ترکیب با با فرمولهای دیگر نیز دشوار است ، مثلا اینکه اگر بخواهیم شناسه استخراج شده در فرمول فوق را مستقیما در ویلوکاپ بگذارم فرمول ما طولانی خواهد شد.
با استفاده از LAMBDA می توانیم تابعی به نام GETLOCATION ایجاد کنیم و منطق فرمول را در تعریف آن تابع قرار دهیم.
=LAMBDA(stationID, LEFT(RIGHT(stationID,LEN(stationID)-FIND("-",stationID)),FIND("-",RIGHT(stationID,LEN(stationID)-FIND("-",stationID)))-1))
توجه داشته باشید وقتی آرگومان های تابع ساخته شده (در این مورد stationID) و عملیاتی که تابع باید انجام دهد را مشخص کردیم
آن را در قسمت نامگذاری وارد کردیم، اکنون در فایل خود ، می توانیم به سادگی GETLOCATION را به عنوان یک فرمول بنویسم و به سلول دارای stationID ارجاع دهیم ، دقیقاً مانند سایر توابع Excel.
اگر دیدید که خطایی رخ داده است ، آن را یک جا برطرف می کنید و هر کجا که از این تابع استفاده کرده باشید خطای آن رفع خواهد شد.
یکی دیگر از مزایای اضافه شده ، این است که اکنون می توانیم آن تابع را درون توابع دیگر استفاده کنیم.
به عنوان مثال ، اگر یک جدول از نرخ مالیات برای هر مرکز داشته باشیم ، می توانیم این فرمول ساده را بنویسیم تا نرخ را بر اساس stationID استخراج کنیم.
=XLOOKUP(GETLOCATION(B18), table1[locations], table1[tax]).
درباره محمود بنی اسدی (مدیر سایت)
فارغ التحصیل کارشناسی ارشد حسابداری، ده سال سابقه تدریس اکسل در سطوح مختلف از قبیل فرمول نویسی، ابزارهای هوش تجاری، ترفندها و ... ، نویسنده شش مقاله در سطح ملی و ISI
نوشتههای بیشتر از محمود بنی اسدی (مدیر سایت)
دیدگاهتان را بنویسید