تابع LOOKUPVALUE در Power BI
تابع LOOKUPVALUE در زبان DAX یکی از پرکاربردترین توابع در Power BI است که عملکردی مشابه VLOOKUP در Excel دارد. این تابع برای جستجوی مقدار از یک جدول دیگر بر اساس یک یا چند شرط استفاده میشود و معمولاً در ساخت ستونهای محاسبهشده یا معیارهای سفارشی کاربرد دارد.
تعریف تابع LOOKUPVALUE
LOOKUPVALUE(
result_columnName,
search_columnName, search_value
[, search_columnName2, search_value2, ...]
[, alternateResult]
)
- result_columnName: ستونی که میخواهید مقدار آن را بازیابی کنید.
- search_columnName / search_value: ستون و مقدار جستجو برای یافتن ردیف مورد نظر.
- alternateResult (اختیاری): مقداری که در صورت عدم یافتن نتیجه بازگردانده میشود.
عملکرد چگونه است؟
تابع LOOKUPVALUE در جدول مشخصشده بهدنبال ردیفی میگردد که با شرطهای جستجو مطابقت داشته باشد، سپس مقدار ستون مقصد را از آن ردیف بازمیگرداند. این تابع زمانی مفید است که بخواهید اطلاعاتی را از یک جدول دیگر به جدول فعلی منتقل کنید، حتی اگر رابطهای بین آنها وجود نداشته باشد.
✅ مثال ساده
فرض کنید دو جدول دارید:
- جدول
Salesبا ستونCustomerID - جدول
Customersبا ستونهایCustomerIDوCustomerName
اکنون میخواهید در جدول Sales، نام مشتری را بر اساس شناسهاش بازیابی کنید:
CustomerName :=
LOOKUPVALUE(
Customers[CustomerName],
Customers[CustomerID], Sales[CustomerID]
)
در این مثال، مقدار CustomerName از جدول Customers برای هر CustomerID در جدول Sales بازیابی میشود.
کاربردهای رایج
- افزودن اطلاعات از جدول دیگر بدون استفاده از روابط مدل
- ساخت ستونهای محاسبهشده با دادههای مرجع
- جستجوی مقادیر بر اساس چند شرط همزمان
- جایگزینی
RELATEDدر مواقعی که رابطه مستقیم وجود ندارد
مثال پیشرفته: جستجوی نام محصول بر اساس شناسه و دستهبندی
ProductName :=
LOOKUPVALUE(
Products[Name],
Products[ProductID], Sales[ProductID],
Products[Category], Sales[Category]
)
در این مثال، مقدار Name فقط زمانی بازیابی میشود که هم شناسه محصول و هم دستهبندی مطابقت داشته باشند.
⚠️ نکات مهم
- اگر چند ردیف با شرایط مشابه وجود داشته باشد، Power BI ممکن است خطا دهد یا مقدار نامشخصی بازگرداند.
- برای جلوگیری از خطا، مطمئن شوید که ترکیب شرطها منحصربهفرد است.
- اگر مقدار یافت نشود، میتوانید از پارامتر
alternateResultبرای بازگرداندن مقدار پیشفرض استفاده کنید. - این تابع فقط در ستونهای محاسبهشده یا معیارها (Measures) قابل استفاده است.
ملاحظات
- اگر رابطهای بین جدولی که شامل ستون نتیجه است و جداولی که شامل ستونهای جستجو هستند وجود داشته باشد، در بیشتر موارد، استفاده از تابع RELATED به جای LOOKUPVALUE کارآمدتر است و عملکرد بهتری را ارائه میدهد.
- میتوان چندین جفت search_columnName و search_value را مشخص کرد.
- پارامترهای search_value و alternateResult قبل از اینکه تابع در ردیفهای جدول جستجو تکرار شود، ارزیابی میشوند.
- از استفاده از توابع ISERROR یا IFERROR برای ثبت خطایی که توسط LOOKUPVALUE برگردانده میشود، خودداری کنید. اگر برخی از ورودیهای تابع منجر به خطا شوند، زمانی که یک مقدار خروجی واحد قابل تعیین نباشد، ارائه یک پارامتر alternateResult قابل اعتمادترین و با بالاترین عملکرد برای مدیریت خطا است.
- پارامتر alternateResult در صورت مشخص شدن در یک ستون محاسبه شده Power Pivot، خطا را برمیگرداند.
- این تابع برای استفاده در حالت DirectQuery هنگام استفاده در ستونهای محاسبه شده یا قوانین امنیتی سطح ردیف (RLS) پشتیبانی نمیشود.
برای خرید لایسنس نرم افزار Power BI ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.
میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download
