Power BI Filter Context

Power BI Filter Context بالعربية

عندما يسمع الناس عن Power BI، غالبًا ما يفكرون في الرسوم البصرية الرائعة ولوحات المعلومات التفاعلية.ولكن، السحر الحقيقي يحدث خلف الكواليس من خلال ما يسمى Data Analysis Expressions (DAX). تُعد DAX لغة برمجة وظيفية تستخدم في Power BI في تحويل البيانات وتحليلها.أحد المفاهيم الأساسية في DAX هو سياق التصفية (Filter Context)،والذي يلعب دورًا محوريًا في…


عندما يسمع الناس عن Power BI، غالبًا ما يفكرون في الرسوم البصرية الرائعة ولوحات المعلومات التفاعلية.ولكن، السحر الحقيقي يحدث خلف الكواليس من خلال ما يسمى Data Analysis Expressions (DAX). تُعد DAX لغة برمجة وظيفية تستخدم في Power BI في تحويل البيانات وتحليلها.
أحد المفاهيم الأساسية في DAX هو سياق التصفية (Filter Context)،والذي يلعب دورًا محوريًا في تحديد كيفية حساب المعادلات داخل التقرير.

في هذا المقال، سأشرح لك ما هو سياق التصفية، وكيف سيمكنك فهمه من مساعدتك على الاستفادة القصوى من تقاريرك باستخدام Power BI.
ما هو سياق التصفية في Power BI؟
سياق التصفية (Filter Context) هو عبارة عن عوامل تصفية يتم إنشاؤها من خلال العناصر المرئية (Visuals) والمقاطع (Slicers) في Power BI،
التي تتيح لك التحكم في الجزء الفرعي من البيانات الذي يتم حساب المقياس (Measure) عليه.

🔹 مثال توضيحي:
إذا أردت حساب متوسط الرواتب للأشخاص الذين يعيشون في مدينة القاهرة،
فإن اختيار “القاهرة” كمصفي بيانات (فلتر) يعني أن الحساب سيُجرى فقط على الأشخاص الذين يعيشون في هذه المدينة.
بالتالي، “القاهرة” تُحدد الجزء الذي يتم عليه الحساب، وهو ما يُعرف بـ Filter Context.
الشرح من خلال سرد قصة صغيرة:

فهد يحب جمع الكرات الزجاجية — الحمراء والزرقاء الصغيرة والكبيرة منها. ومؤخرًا، حصل على أحدث كرة زجاجية في مجموعته، وهي كرة برتقالية وتُعد الأكبر. يبلغ مجموع كرات فهد الآن 230 كرة زجاجية. ولذلك، يشعر فهد أن هوايته بدأت تخرج عن السيطرة، إذ لم يعد قادرًا على تتبع مجموعته .
لذلك قرر فهد إنشاء ملف إكسل لمجموعته.


الشرح من خلال سرد قصة صغيرة:

تعرف اكثر على فهد

فهد يحب جمع الكرات الزجاجية — الحمراء منها، الزرقاء، الصغيرة، والكبيرة. ومؤخرًا، حصل على أحدث كرة زجاجية في مجموعته، وهي كرة برتقالية وتُعد الأكبر من بينها. يبلغ عدد كرات فهد الآن 230 كرة زجاجية. ومع ذلك، يشعر فهد أن هوايته بدأت تخرج عن السيطرة، إذ لم يعد قادرًا على تتبع مجموعته .

قرر فهد إنشاء ملف إكسل لمجموعته.

عينة من بيانات الكرات الزجاجية

أراد فهد التحقق من أكبر وأصغر كرة زجاجية لكل لون في مجموعته، لذلك أنشأ مقياسين:

المقياس لحساب أكبر كرة زجاجية:

الكرة الزجاجية ذات اكبر قطر = MAX('كرات زجاجية'[القطر])

المقياس لحساب أصغر كرة زجاجية:

الكرة الزجاجية ذات اصغر قطر = Min('كرات زجاجية'[القطر])

أنشأ فهد جدولًا وأضاف إليه المقاييس.

للأسف، لم يكن فهد راضيًا عن النتائج، لأنه كان يريد معرفة أكبر وأصغر قُطر للكرات الزجاجية لكل لون من ألوانها، لكن الجدول عرض فقط أكبر وأصغر قُطر بشكل عام.

هنا يأتي دور سياق التصفية

من خلال إضافة بُعد اللون إلى الجدول كسياق تصفية، سيقوم كل صف في التصوير البياني بإنشاء عامل تصفية يقيّد مجموعة البيانات، مما يُنتج مجموعة فرعية تتكون من الكرات الزجاجية ذات اللون الذي يطابق اللون المذكور في سطر الجدول ، سيتم حساب المقاييس المضافة الى التصوير (أكبر قُطر للكرة الزجاجية، أصغر قُطر للكرة الزجاجية)بناءً على مجموعة البيانات المقيدة و ليس مجموعة البيانات الكاملة . وبالتالي، سيكون التقييد كما يلي:

  • مجموعة بيانات حيث لون الكرة الزجاجية = أحمر للصف الأول في الجدول.
  • مجموعة بيانات حيث لون الكرة الزجاجية = أصفر للصف الثاني في الجدول.
  • مجموعة بيانات حيث لون الكرة الزجاجية = برتقالي للصف الثالث في الجدول.
  • وهكذا…

التفسير باستخدام مكتبة pandas في python

import pandas as pd

الالوان = ["أزرق", "أخضر", "برتقالي", "أحمر", "أبيض", "أصفر"]
إطار_البيانات = pd.read_csv("كرات_زجاجية.csv")
# ستمر حلقة for على كل لون موجود في قائمة الألوان واحدًا تلو الآخر.
for لون in الالوان:
    #إنشاء إطار بيانات
    المصفي = إطار_البيانات["اللون"] == لون
    #قم بتصفية إطار البيانات حسب اللون المحدد
    الكرات_الزجاجية_المصفى = إطار_البيانات.loc[المصفي]
    #احسب القطر الأصغر والأكبر لهذا اللون
    أكبر_كرة_زجاجية = الكرات_الزجاجية_المصفى["القطر"].max()
    أصغر_كرة_زجاجية = الكرات_الزجاجية_المصفى["القطر"].min()

    print(لون)
    print("الكرة الزجاجية ذات أكبر قطر:", أكبر_كرة_زجاجية)
    print("الكرة الزجاجية ذات أصغر قطر:", أصغر_كرة_زجاجية)

التفسير باستخدام SQL

إنه مشابه لتشغيل استعلام SQL منفصل لكل لون في مجموعة البيانات الخاصة بك. (يمكنك استخدام GROUP BY حسب اللون، ولكن سنتحدث عن ذلك لاحقًا)

select max(القطر) as "أكبر_كرة_زجاجية", 
min(diameter) as "أصغر_كرة_زجاجية" 
from كرات_زجاجية where اللون = "أزرق";

فهد تمكن أخيرًا من فهم مفهوم سياقات التصفية في Power BI، واستطاع أن ينام قرير العين، وهو يعلم أنه يمكنه مواصلة توسيع مجموعته من الكرات الزجاجية بطريقة منظمة.


اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Related Posts