یک سؤال بسیار متداول که من توسط Newbies Power BI از من پرسیده شده است (به ویژه مواردی که پیشینه اکسل دارند) این است که چگونه آنها می توانند Vlookup محبوب را در Power BI با استفاده از DAX انجام دهند. من همیشه آنها را به دو عملکرد DAX نشان داده ام که می توانند برای دستیابی به این هدف به راحتی از جمله توابع مرتبط و LookupValue DAX استفاده شوند.
اما از تجربه ، من خودم را دیده ام که مجبور شدم DAX را برای کاربران تجاری بنویسم زیرا برخی از جنبه های استفاده از این توابع وجود دارد که ممکن است باعث شود آنها در موقعیت های خاصی کار نکنند. از این رو ، به همین دلیل است که من مجبور شدم این آموزش را بنویسم تا به روش ساده توضیح دهم که چگونه و چه موقع از این توابع DAX برای انجام یک جستجوی در داده های SQL Server خود استفاده می کنم.
راه حل
قبل از اینکه نحوه استفاده از این توابع DAX را نشان دهم ، اجازه می دهیم ابتدا هر یک از این توابع DAX را خلاصه کنیم.
عملکرد مربوط به DAX
این عملکرد DAX هنگام استفاده از آن به عنوان یک عملکرد جستجو ، مقدار مرتبط را از جدول دیگری برمی گرداند. در حین استفاده از این عملکرد DAX ، درک موارد زیر مهم است:
- برای کار این عملکرد مهم است که اطمینان حاصل شود که بین جدول فعلی و جدول با اطلاعات مربوطه که در حال انجام جستجوی آن هستید ، رابطه ایجاد شده است.
- رابطه موجود باید یک نوع به یک نوع باشد که طرفین بسیاری از آنها هستند که مقادیری را که به آن نگاه کرده اید آورده اید.
- این عملکرد به یک متن ردیف نیاز دارد. بنابراین ، فقط می تواند در عبارات ستون محاسبه شده استفاده شود.
- اگر کاردینال بودن شما بسیار زیاد است یا اینکه مدل شما یک مدل کامپوزیت است ، نمی توانید از این عملکرد برای انجام جستجوی استفاده کنید.
نحو برای عملکرد مرتبط بسیار ساده است که در زیر مشاهده می شود. فقط به یک پارامتر واحد نیاز دارد که یک ستون است. مورد نیاز پارامتر ستون به ستون در جدول دیگر اشاره دارد که می خواهید در جدول اصلی بازیابی کنید. خروجی یک مقدار واحد است که مربوط به ردیف فعلی است.
بیایید به یک مثال ساده از نحوه استفاده از عملکرد مربوط به DAX بپردازیم. بیایید بگوییم ما سه مجموعه داده زیر را داریم



آنچه ما در این نسخه ی نمایشی سعی در دستیابی به آن داریم این است که به دنبال "دسته" در "مجموعه داده 1" به "مجموعه داده 2" باشید و ستون "مقدار" را در مجموعه داده 1 برگردانیم زیرا در مجموعه داده ها وجود ندارد. به طور خلاصه ، چه چیزی مادر حال تلاش برای دستیابی به آن است که در نمودار زیر مشاهده می شود.

این امر می تواند به راحتی با استفاده از عملکرد مرتبط حاصل شود زیرا رابطه بین مجموعه داده های 1 و DataSet 2 یک نوع یک به یک است که در زیر مشاهده می شود.

بنابراین می توانیم از عملکرد مرتبط همانطور که در زیر مشاهده می شود استفاده کنیم.
نتیجه این همانطور که در نمودار زیر مشاهده می شود.

بیایید همچنین به شرایطی بپردازیم که بین مجموعه داده ها رابطه ای با بسیاری از مجموعه ها داشته باشیم ، همانطور که بین "مجموعه داده 2" و "مجموعه داده 3" مشاهده می شود. نمودار رابطه بین این مجموعه داده ها همانطور که در زیر مشاهده می شود.

بنابراین ، اگر ما باید ستون "مقدار" را از ردیف 3 ردیف به صورت ردیف به مجموعه داده 2 بازیابی کنیم ، یک جستجوی را انجام دهیم ، همانطور که در زیر مشاهده می شود ، خطایی را دریافت می کنیم.

همانطور که به یاد می آورید ، ما در این مورد واضح هستیم که نمی توانیم از عملکرد مرتبط استفاده کنیم که رابطه بین جداول مانند این مورد از نوع بسیاری از افراد باشد ، از این رو دلیل پیام خطا است. اما در مورد شما ، شما فقط ممکن است یک کاردینال بودن داشته باشید که فقط در بسیاری از افراد وجود دارد ، بنابراین شما قادر به استفاده از عملکرد مربوط به DAX نیستید. نگران نباشید ، راه حلی برای آن وجود دارد که هدف این مقاله است. فقط به خواندن ادامه دهید!
عملکرد Dax LookupValue
عملکرد DAX LookupValue مقدار ردیفی را که تمام معیارهای مشخص شده را با یک یا چند شرایط جستجو مطابقت می دهد ، برمی گرداند. اطلاعات دیگری وجود دارد که من توصیه می کنم در مورد عملکرد LookupValue که من در این مقاله تفصیل نداده ام ، بخوانید. لطفاً به بخش "مراحل بعدی" این مقاله مراجعه کنید.
به طور خلاصه ، در حالی که استفاده از عملکرد DAX LookupValue ، درک اظهارات زیر مهم است:
- استفاده از این عملکرد را در نظر بگیرید تا یک جستجوی در جایی که کاردینال جداول یک نوع به یک نوع نیست
- از استفاده از توابع ISError یا IFERROR برای ضبط خطاهای برگشتی توسط این عملکرد خودداری کنید
- در حالت پرس و جو مستقیم هنگام استفاده در قوانین RLS یا ستون های محاسبه شده پشتیبانی نمی شود
نحو عملکرد DAX LookupValue پیچیده تر از عملکرد مربوط به DAX است که در زیر مشاهده می شود.
در نحو فوق سه پارامتر اجباری و برخی از اختیاری های دیگر وجود دارد.
پارامترهای اجباری شامل موارد زیر است:
- Result_ColumnName: این پارامتر به نام ستونی که مایل به بازگشت هستید اشاره دارد. در سناریویی که برای سه مجموعه داده بالا استفاده کردیم ، این ستون "مقدار" از مجموعه داده 3 خواهد بود.
- search_columame: این پارامتر به نام ستون از جایی که شما با رشته یا کلمه کلیدی خود مطابقت دارید ، اشاره دارد. در مثال بالا ، ما در ستون "دسته" در مجموعه داده 3 مطابقت و جستجو می کنیم.
- search_value: این به نام مقدار یا ستونی است که شما در جستجوی خود به عنوان مقدار جستجو استفاده می کنید. در مثال بالا ، ما در تلاش هستیم تا "دسته" را در مجموعه داده 2 از مجموعه داده 1 جستجو کنیم.
اکنون می بینیم که چگونه می توانیم از این عملکرد در موقعیت هایی استفاده کنیم که مرتبط نباشد ، به عنوان مثال در جایی که ما بین میزها رابطه ای بسیار زیاد داریم. نحو برای استفاده از عملکرد LookupValue همانطور که در زیر مشاهده می شود.
نتیجه این همانطور که در نمودار زیر مشاهده می شود.

به طور کلی ، با استفاده از مثال شرح داده شده در این مقاله ، عملکرد DAX LookupValue را می توان به شرح زیر تفسیر کرد. از آنجا که پارامتر "search_value" عملکرد ابتدا قبل از "search_columame" و پارامترهای "result_columame" ارزیابی می شود ، می توانید نمونه ای مانند "جستجوی مقدار یا ستون" یا ستون در مجموعه داده 2 را از مجموعه داده 3 تفسیر کنید ، و جایی که مطابقت دارد"مقدار" را از مجموعه داده 3 برگردانید.
به طور خلاصه ، در این مقاله ، من از برخی اصطلاحات پیشرفته استفاده کرده ام که فراتر از محدوده این مقاله است ، می خواهم شما را ترغیب کنم که در مورد این موارد همانطور که در بخش "مراحل بعدی" ذکر شده است ، بیشتر بخوانید. من مطمئن هستم که اکنون پس از خواندن این مقاله ، اکنون باید مطمئن باشید که در صورت نیاز به جستجوی جستجوی در DAX چه کاری باید انجام دهید.
فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید
برچسب :
نویسنده : آرش اصل زاد
بازدید : <-PostHit->
تاريخ : پنجشنبه
7 ارديبهشت
1402 ساعت: 20:00