خانه / هوش تجاری / پاور کوئری / توابع مرتبط با رکوردها در پاورکوئری

توابع مرتبط با رکوردها در پاورکوئری

توابع متعددی در پاورکوئری جهت استخراج اطلاعات لیستها وجود دارد مانند:

 

Record.FieldCount

به‌منظور شمارش تعداد فیلدها در یک رکورد از تابع Record.FieldCount به‌صورت ذیل استفاده می‌شود و نتیجه آن همواره یک عدد بوده که تعداد فیلدهای رکورد ورودی را نمایش می‌دهد.

Record.FieldCount(record as record) as number

لذا حاصل فرمول ذیل برابر با ۱ است.

= Record.FieldCount([A=5])

و همچنین نتیجه فرمول ذیل برابر با ۳ است.

= Record.FieldCount([A=5,b=2])

فرمول ذیل نیز نتیجه‌اش برابر با ۴ است.

= Record.FieldCount([A=5,B={1..3},C=[A=1,B=3],D={2}])

×     Record.FieldNames

تابع Record.FieldNames به‌منظور استخراج عنوان فیلدها در رکوردها به‌صورت ذیل مورداستفاده قرار می‌گیرند.

Record.FieldNames(record as record) as list

این تابع یک رکورد را به‌عنوان ورودی دریافت می‌کند و نام فیلدهای آن را به‌صورت یک لیست نتیجه می‌دهد. لذا حاصل تابع ذیل برابر است با {“A”,”B”}

= Record.FieldNames([A=5,B=2])

و حاصل تابع ذیل برابر است با {“Name”, “Family”}

= Record.FieldNames([Name=”Omid”,Family=”Motamedi”])

×     Record.FieldValues

تابع Record.FieldValues مشابه با تابع Record.FieldNames بوده با این تفاوت که با استفاده از این تابع می‌توان لیست مقادیر فیلدها ثبت‌شده درون یک رکورد را به‌صورت ذیل استخراج کرد.

Record.FieldValues(record as record) as list

این تابع یک ورودی دریافت می‌کند و حاصل آن برابر است با لیست مقادیر. لذا حاصل فرمول ذیل برابر است با {۵,۲}

= Record.FieldValues([A=5,B=2])

و حاصل فرمول ذیل برابر است با {“Omid”,”Motamedi”}

= Record.FieldValues([Name=”Omid”,Family=”Motamedi”])

Record.Field

تابع Record.Field برای استخراج مقدار یک فیلد در یک رکورد به‌صورت ذیل مورداستفاده قرار می‌گیرد.

Record.Field(

       record as record,

       field as text

              ) as any

این تابع دو ورودی به شرح ذیل دریافت می‌کند.

  • در ورودی اول رکورد مرجع ثبت می‌گردد.
  • نام فیلدی که می‌خواهیم مقدار آن را از درون رکورد مرجع استخراج‌کنیم، در ورودی دوم این تابع با فرمت متن وارد می‌کنیم..

با توجه به توضیحات فوق، مقدار فرمول ذیل برابر با ۵ است.

= Record.Field([A=5,B=2],”A”)

و مقدار فرمول ذیل برابر با Omid است.

= Record.Field([Name=”Omid”,Family=”Motamedi”],”Name”)

اما با توجه به این‌که رکورد تعریف شده در فرمول ذیل، شامل فیلد C نیست، نتیجه این فرمول برابر با خطا است.

= Record.Field([A=5,B=2],”C”)

 

Record.FieldOrDefault

این تابع همانند تابع Record.Field است با این تفاوت که کاربر در این تابع می‌تواند در ورودی سوم یک مقدار را تعریف کد تا در صورت موجود نبودن عنوان فیلد مدنظر (ورودی دوم) در رکورد تعریف شده (ورودی اول) به‌جای خطا، آن مقدار نمایش داده شود.

لذا در مثال ذیل ازآنجایی‌که رکورد تعریف شده شامل فیلد C نیست، حاصل فرمول ذیل برابر با خطا است:

= Record.Field([A=5,B=2],”C”)

درحالی‌که حاصل فرمول ذیل برابر با مقدار null است

= Record.FieldOrDefault([A=5,B=2],”C”)

و مقدار خروجی فرمول ذیل برابر با -۱ است.

= Record.FieldOrDefault([A=5,B=2],”C”,-1)

این تابع در پاورکوئری به‌صورت ذیل تعریف می‌گردد.

Record.FieldOrDefault(

       record as nullable record,

       field as text,

       optional defaultValue as any

              ) as any

Record.HasFields

اگر بخواهیم بررسی کنیم آیا یک رکورد شامل فیلدهای خاصی است، باید از تابع Record.HasFields به صوت ذیل استفاده کرد.

Record.HasFields(

       record as record,

       fields as any

              ) as logical

این تابع دو ورودی به شرح ذیل دریافت می‌کند و خروجی آن همواره برابر با True (درصورتی‌که رکورد تعریف شده شامل تمامی  فیلدهای مدنظر باشد) یا False (درصورتی‌که رکورد تعریف شده، حداقل شامل یکی از فیلدهای مدنظر نباشد) است.

  • ورودی اول این تابع برابر با رکورد مرجع است.
  • در ورودی دوم این تابع لیست نام فیلدهایی که می‌خواهیم وجودشان در رکورد مرجع را بررسی کنیم آورده می‌شود. اگر فقط یک لیست مدنظر است، کافی است آن را درون دابل کوتیشن قرارداد، اما اگر بیش از یک فیلد مدنظر است، باید نام‌ها را درون لیست تعریف کرد.

در جدول ذیل حالت‌های مختلف از نتیجه این تابع آورده شده است.

فرمول نتیجه

= Record.HasFields([A=5,B=2,C={1..4}],”C”)

True

= Record.HasFields([A=5,B=2,C={1..4}],”D”)

False

= Record.HasFields([A=5,B=2,C={1..4}],{“A”,”C”})

True

= Record.HasFields([A=5,B=2,C={1..4}],{“A”,”D”})

False

 

درباره‌ی امید معتمدی

محقق، مدرس، نویسنده و مشاور در حوزه تحلیل داده

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.