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