تستخدم الدالة المخصصة لغة الصيغة M، وتأخذ مجموعة من قيم الإدخال، ثم ترجع قيمة إخراج واحدة. إذا كان لديك منطق تريد إعادة استخدامه عدة مرات أو تطبيق نفس مجموعة التحويلات على استعلام أو قيمة مختلفة، فيمكنك إنشاء دالة مخصصة ثم استدعاء الدالة حيثما ومتى احتجت إليها. هناك طرق متعددة لإنشاء دالة مخصصة:
- استخدم " المحرر المتقدم" لإضافة عبارة let الخاصة بك وابدأ من البداية.
- استخدم الأمر "استدعاء دالة مخصصة ".
- ثمة طرق إضافية لإنشاء دالات لم تتم مناقشتها في موضوع التعليمات هذا، بما في ذلك أوامر "إنشاء دالة " و "إضافة كاستعلام ". لمناقشة مفصلة، راجع فهم دالات Power Query M (docs.com) واستخدام الدالات المخصصة (docs.com).
إنشاء دالة مخصصة بسيطة واستدعائها باستخدام المحرر المتقدم
فيما يلي مثال بسيط لدالة مخصصة تتبع تقليد برمجة قديم.
لإنشاء استعلام فارغ:
Excel حدد البيانات>الحصول على البيانات>من مصادر> أخرىاستعلام فارغ.
Power Query انقر بزر الماوس الأيمن فوق مكان فارغ في جزء الاستعلامات على اليمين، ثم حدد استعلام> جديدمصادر>أخرى استعلام فارغ.
في جزء "الاستعلامات " على الجانب الأيمن، انقر نقرا مزدوجا فوق الاسم، ثم أعد تسمية الاستعلام الفارغ الجديد إلى "HelloWorld".
حدد الاستعلام الجديد ثم حدد>Home Advanced Editor.
استبدل التعليمات البرمجية لبدء تشغيل القالب بالتعليمة البرمجية التالية:
let
HelloWorld = () => ("Hello World")
in
HelloWorldحدد تم.
قمت بتغيير الاستعلام "HelloWorld" إلى دالة مخصصة. لاحظ أيقونة الدالة
على يمينها.لاستدعاء الدالة، حددها، ثم حدد "استدعاء " في معاينة البيانات.
يتم عرض نتائج الدالة في معاينة البيانات وتتم إضافتها إلى جزء الاستعلامات كاستعلام بالاسم الافتراضي، وهي الدالة Invoked. قد ترغب في إعادة تسميته بأسماء لها معنى، مثل "HelloWorldResult".
حدد ذلك الاستعلام، ثم حدد الصفحة الرئيسية>إغلاق & تحميل لرؤية النتائج في ورقة عمل.
النتائج
إنشاء دالة مخصصة لها معلمة واستدعائها باستخدام المحرر المتقدم
يوضح المثال التالي كيفية تمرير معلمة إلى دالة مخصصة لتحويل رقم عشري إلى رقم سداسي عشري.
لإنشاء استعلام فارغ:
Excel حدد البيانات>الحصول على البيانات>من مصادر> أخرىاستعلام فارغ.
Power Query انقر بزر الماوس الأيمن فوق مكان فارغ في جزء الاستعلامات على اليمين، ثم حدد استعلام> جديدمصادر>أخرى استعلام فارغ.
في جزء الاستعلامات على اليمين، أعد تسمية الاستعلام الفارغ الجديد إلى "MyHex".
حدد الاستعلام الجديد ثم حدد>Home Advanced Editor.
استبدل التعليمات البرمجية لبدء تشغيل القالب بالتعليمة البرمجية التالية:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexحدد تم.
قمت بتغيير الاستعلام، "MyHex"، إلى دالة مخصصة. لاحظ أيقونة الدالة
على يمينها.لاستدعاء الدالة، حددها، ثم في "معاينة البيانات"، أدخل رقما في المربع المعلمة 1، وحدد "استدعاء".
يتم عرض نتائج الدالة في معاينة البيانات وإضافتها إلى جزء الاستعلامات كاستعلام بالاسم الافتراضي، الدالة Invoked. قد ترغب في إعادة تسميته بأسماء لها معان أكثر ، مثل "MyHexResult".
حدد ذلك الاستعلام، ثم حدد الصفحة الرئيسية>إغلاق & تحميل لرؤية النتائج في ورقة عمل.
النتائج
إضافة عمود من خلال استدعاء دالة مخصصة
إذا قمت بإنشاء دالة تتضمن معلمة واحدة على الأقل، يمكنك استدعائها كدالة مخصصة لإنشاء عمود جديد وقيمة جديدة لكل صف في جدول.
لفتح استعلام، حدد موقع استعلام تم تحميله مسبقا من محرر Power Query، وحدد خلية في البيانات، ثم حددتحريرالاستعلام>. لمزيد من المعلومات، راجع إنشاء استعلام وتحريره وتحميله في Excel (Power Query).
ملاحظة في هذا المثال، يحتاج الاستعلام إلى عمود واحد على الأقل من نوع البيانات "عدد صحيح ".
قم بإنشاء دالة "MyHex" المخصصة كما هو موضح في المقطع، وقم بإنشاء دالة مخصصة تحتوي على معلمة واستدعائها باستخدام المحرر المتقدم.
في الاستعلام، حدد "إضافة عمود>استدعاء دالة مخصصة". يظهر مربع الحوار "استدعاء دالة مخصصة ".
أدخل اسم العمود الجديد، مثل "HexConvert"، في مربع اسم العمود الجديد .
حدد اسم دالة مخصصة معرفة مسبقا من القائمة المنسدلة "استعلام الدالة". في هذا المثال، حدد "MyHex".
لأن الدالة المخصصة تشير إلى معلمة، يتم الآن عرض المعلمة.
حدد عمودا من نوع بيانات "عدد صحيح " كمعلمة للدالة.
حدّد موافق.
النتيجة
يتم إنشاء عمود جديد يعرض القيمة السداسية العشرية للعمود "الرقم الصحيح" الذي أدخلته كمعلمة.
اطلع أيضاً على
إنشاء صيغ Power Query في Excel