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