الدالتان GroupBy وUngroup

ينطبق على: تطبيقات اللوحة التطبيقات المستندة إلى النموذج

تجميع أو إلغاء تجميع سجلات خاصة بـ جدول.

الوصف

ستقوم وظيفة GroupBy بإرجاع جدول مع تضمين السجلات معًا استنادًا إلى القيم في عمود واحد أو أكثر. يتم وضع السجلات في نفس المجموعة في سجل واحد، مع إضافة عمود يحتوي على جدول متداخل للأعمدة المتبقية.

تقوم وظيفة Ungroup بإلغاء عملية GroupBy. تقوم هذه الوظيفة بإرجاع جدول، مقسمة إلى سجلات منفصلة أي سجلات تم تجميعها معًا.

يمكنك تجميع السجلات باستخدام GroupBy، قم بتعديل الجدول الذي يقوم بإرجاعه ثم قم بإلغاء تجميع السجلات في الجدول المعدل باستخدام إلغاء التجميع. على سبيل المثال، يمكنك إزالة مجموعة من السجلات باتباع هذا النهج:

  • استخدم وظيفة GroupBy.
  • استخدم وظيفة Filter لإزالة مجموعة السجلات بالكامل.
  • استخدم وظيفة Ungroup.

يمكنك أيضًا تجميع النتائج بناءً على التجميع:

  • استخدم وظيفة GroupBy.
  • استخدم وظيفة AddColumns مع Sum و Average، والوظائف التجميعية الأخرى لإضافة عمود جديد وهو تجميع جداول المجموعة.
  • استخدم وظيفة DropColumns لإسقاط جدول المجموعة.

تحاول وظيفة إلغاء التجميع المحافظة على الترتيب الأصلي للسجلات الذي تمت تغذيته إلى GroupBy. هذا غير ممكن دائمًا (على سبيل المثال، إذا كان الجدول الأصلي يحتوي على سجلات فارغة).

جدول عبارة عن قيمة في Power Apps، تمامًا مثل سلسلة أو رقم. يمكنك تحديد جدول كوسيطة لوظيفة، ويمكن للوظيفة إرجاع جدول. لا تعدل GroupBy وإلغاء التجميع جدولًا؛ ولكن بدلاً من ذلك، تأخذان جدولاً كوسيطة وترجعان جدولًا مختلفًا. راجع التعامل مع الجداول للاطلاع على مزيد من التفاصيل.

‏‫ملاحظة

قبل Power Apps الإصدار 3.24042، كانت أسماء الأعمدة محددة بسلسلة نصية باستخدام علامات اقتباس مزدوجة، وإذا كانت مرتبطة مصدر البيانات فهي تحتاج أيضا إلى أسماء منطقية. على سبيل المثال، استخدم الاسم المنطقي "cr43e_name"مع علامات اقتباس مزدوجة بدلا من اسم العرض Name بدون عروض أسعار. بالنسبة SharePoint لمصادر بيانات Excel التي تحتوي على أسماء أعمدة ذات المسافات، يتم تحديد كل مسافة باستخدام "_x0020_"، على سبيل المثال، "اسم العمود" Column_x0020_Name". Afer هذا الإصدار، يتم تحديث كافة التطبيقات تلقائيا إلى الجملة الجديدة الموضحة في هذه المقالة.

بناء الجملة

GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • الجدول - مطلوب. الجدول المراد تجميعه.
  • ColumnName(s) - مطلوب. أسماء الأعمدة في الجدول الذي يتم فيه تجميع السجلات. تصبح هذه الأعمدة أعمدة في الجدول الناتج.
  • GroupColumnName - مطلوب. اسم العمود لتخزين بيانات السجل ليس في ColumnName(s).

Ungroup( Table, GroupColumnName )

  • الجدول - مطلوب. الجدول المراد إلغاء تجميعه.
  • GroupColumnName - مطلوب. العمود الذي يحتوي على إعداد بيانات السجل باستخدام وظيفة GroupBy.

الأمثلة

إنشاء مجموعة

  1. أضف زرًا، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر الأصلي.
  2. قم بتعيين خاصية OnSelect الخاصة بالزر الأصلي إلى هذه الصيغة:
ClearCollect( CityPopulations,
    { City: "London",    Country: "United Kingdom", Population: 8615000},
    { City: "Berlin",    Country: "Germany",        Population: 3562000},
    { City: "Madrid",    Country: "Spain",          Population: 3165000},
    { City: "Rome",      Country: "Italy",          Population: 2874000},
    { City: "Paris",     Country: "France",         Population: 2273000},
    { City: "Hamburg",   Country: "Germany",        Population: 1760000},
    { City: "Barcelona", Country: "Spain",          Population: 1602000},
    { City: "Munich",    Country: "Germany",        Population: 1494000},
    { City: "Milan",     Country: "Italy",          Population: 1344000}
)
  1. أثناء الضغط على مفتاح Alt، حدد الزر الأصلي.

    لقد قمت للتو بإنشاء مجموعة مسماة CityPopulations، والتي تحتوي على هذه البيانات:

    مثال CityPopulations.

  2. لعرض هذه المجموعة، حدد المجموعات في قائمة الملف، ثم حدد مجموعة CityPopulations. تظهر السجلات الخمسة الأولى في المجموعة:

    مجموعة CityPopulations.

تجميع السجلات

  1. أضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به إلى "تجميع".

  2. قم بتعيين خاصية OnSelect الخاصة بهذا الزر إلى هذه الصيغة:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )

  3. أثناء الضغط على مفتاح Alt، حدد الزر تجميع.

    لقد قمت بإنشاء مجموعة تسمى CitiesByCountry، التي يتم فيها تجميع سجلات المجموعة السابقة حسب عمود البلد.

    مدن تم تجميعها.

  4. لعرض السجلات الخمسة الأولى في هذه المجموعة، حدد مجموعات في قائمة الملف.

    المدن حسب البلد/المنطقة.

  5. لعرض محتويات المدن في بلد/منطقة، حدد رمز الجدول في عمود المدن لهذا البلد/المنطقة (على سبيل المثال، ألمانيا):

    السكان - ألمانيا.

تصفية السجلات وإلغاء تجميعها

  1. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "تصفية".

  2. قم بتعيين خاصية OnSelect الخاصة بهذا الزر إلى هذه الصيغة:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. أثناء الضغط على مفتاح Alt، حدد الزر الذي أضفته.

    لقد قمت للتو بإنشاء مجموعة ثالثة تسمى CitiesByCountryFiltered وتشمل فقط تلك البلدان التي تشتمل على "ص" في أسمائها (أي ليس السعودية أو الإمارات).

    CitiesByCountryFiltered.

  4. أضف زرًا واحدًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "إلغاء تجميع".

  5. قم بتعيين خاصية OnSelect الخاصة بهذا الزر إلى هذه الصيغة:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    مما يؤدي إلى:

    المدن حسب البلد/المنطقة بعد إلغاء التجميع.

تجميع النتائج

هناك عملية أخرى يمكننا تنفيذها على جدول مجمع وهي تجميع النتائج. في هذا المثال، سنقوم بجمع عدد سكان المدن الرئيسية في كل بلد/منطقة.

  1. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "مجموع".

  2. قم بتعيين خاصية OnSelect الخاصة بالزر "مجموع" إلى هذه الصيغة:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Sum of City Populations', Sum( Cities, Population ) ) )

    مما يؤدي إلى:

    مجموع المدن.

    AddColumns تبدأ بمجموعة CitiesByCountry الأساسية وتضيف عمودًا جديدًا مجموع سكان المدن. يتم حساب قيم هذا العمود صفًا تلو الآخر، استنادًا إلى الصيغة Sum( Cities, Population ). توفر الوظيفة AddColumns قيمة عمود المدن (جدول) لكل صف، ويضيف Sum ما يصل إلى السكان لكل صف في هذا الجدول الفرعي.

    الآن بعد أن حصلنا على المبلغ الذي نريده، يمكننا استخدام DropColumns لإزالة الجداول الفرعية.

  3. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "‏SumOnly".

  4. قم بتعيين خاصية OnSelect الخاصة بالزر "‏SumOnly" إلى هذه الصيغة:

    ClearCollect( CityPopulationsSumOnly، DropColumns( CityPopulationsSum, Cities ) )

    مما يؤدي إلى:

    مجموع البلدان.

    لاحظ أننا لم نحتاج إلى إلغاء تجميع هذا الجدول.