يمكنك السياق من إجراء تحليل ديناميكي، حيث يمكن تغيير نتائج الصيغة لتعكس الصف أو تحديد الخلية الحالي وأي بيانات ذات صلة أيضا. يعد فهم السياق واستخدام السياق بشكل فعال أمرا مهما جدا لإنشاء صيغ عالية الأداء وتحليلات ديناميكية واستكشاف المشكلات وإصلاحها في الصيغ.

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

يوفر الجزء الأخير من هذه المقالة ارتباطات إلى أمثلة مفصلة توضح كيفية تغيير نتائج الصيغ وفقا للسياق.

فهم السياق

يمكن أن تتأثر الصيغ في Power Pivot بعوامل التصفية المطبقة في PivotTable، والعلاقات بين الجداول، وعوامل التصفية المستخدمة في الصيغ. السياق هو ما يجعل من الممكن إجراء تحليل ديناميكي. يعد فهم السياق مهما لإنشاء الصيغ واستكشاف الأخطاء وإصلاحها.

هناك أنواع مختلفة من السياق: سياق الصف وسياق الاستعلام وسياق التصفية.

يمكن اعتبار سياق الصف على أنه "الصف الحالي". إذا قمت بإنشاء عمود محسوب، فإن سياق الصف يتكون من القيم في كل صف فردي وقيم في أعمدة مرتبطة بالصف الحالي. هناك أيضا بعض الدالات (EARLIER و EARLIEST) التي تحصل على قيمة من الصف الحالي ثم تستخدم هذه القيمة أثناء تنفيذ عملية عبر جدول بأكمله.

يشير سياق الاستعلام إلى المجموعة الفرعية من البيانات التي تم إنشاؤها ضمنيا لكل خلية في PivotTable، اعتمادا على رؤوس الصفوف والأعمدة.

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

أعلى الصفحة

سياق الصف

إذا قمت بإنشاء صيغة في عمود محسوب، فإن سياق الصف لتلك الصيغة يتضمن القيم من جميع الأعمدة في الصف الحالي. إذا كان الجدول مرتبطا بجدول آخر، فإن المحتوى يتضمن أيضا جميع القيم من ذلك الجدول الآخر المرتبط بالصف الحالي.

على سبيل المثال، افترض أنك قمت بإنشاء عمود محسوب، =[الشحن] + [الضريبة]،

، الذي يضيف عمودين معا من نفس الجدول. تعمل هذه الصيغة مثل الصيغ الموجودة في جدول Excel، والتي تشير تلقائيا إلى القيم من الصف نفسه. لاحظ أن الجداول مختلفة عن النطاقات: لا يمكنك الرجوع إلى قيمة من الصف قبل الصف الحالي باستخدام رمز النطاق، ولا يمكنك الرجوع إلى أي قيمة مفردة عشوائية في جدول أو خلية. يجب أن تعمل دائما مع الجداول والأعمدة.

يتبع سياق الصف تلقائيا العلاقات بين الجداول لتحديد الصفوف في الجداول ذات الصلة المقترنة بالصف الحالي.

على سبيل المثال، تستخدم الصيغة التالية الدالة RELATED لجلب قيمة ضريبية من جدول ذي صلة، استنادا إلى المنطقة التي تم شحن الطلب إليها. يتم تحديد قيمة الضريبة باستخدام قيمة المنطقة في الجدول الحالي، والبحث عن المنطقة في الجدول ذي الصلة، ثم الحصول على معدل الضريبة لتلك المنطقة من الجدول ذي الصلة.

= [الشحن] + RELATED('Region'[TaxRate])

تحصل هذه الصيغة ببساطة على معدل الضريبة للمنطقة الحالية، من جدول Region. لا تحتاج إلى معرفة أو تحديد المفتاح الذي يربط الجداول.

سياق صف متعدد

بالإضافة إلى ذلك، يتضمن DAX دالات تتكرر العمليات الحسابية عبر جدول. يمكن أن تحتوي هذه الدالات على صفوف حالية متعددة وسياقات صف حالية. من حيث البرمجة، يمكنك إنشاء صيغ تتكرر عبر تكرار حلقي داخلي والخارجي.

على سبيل المثال، افترض أن المصنف يحتوي على جدول منتجات وجدول مبيعات . قد ترغب في الانتقال من خلال جدول المبيعات بأكمله، المليء بالمعاملات التي تتضمن منتجات متعددة، والعثور على أكبر كمية مرتبة لكل منتج في أي معاملة واحدة.

في Excel، يتطلب هذا الحساب سلسلة من الملخصات الوسيطة، والتي يجب إعادة إنشائها إذا تغيرت البيانات. إذا كنت أحد مستخدمي Excel، فقد تتمكن من إنشاء صيغ صفيف تؤدي المهمة. بدلا من ذلك، في قاعدة بيانات ارتباطية، يمكنك كتابة تسميات فرعية متداخلة.

ومع ذلك، باستخدام DAX، يمكنك إنشاء صيغة واحدة ترجع القيمة الصحيحة، ويتم تحديث النتائج تلقائيا في أي وقت تضيف فيه البيانات إلى الجداول.

=MAXX(FILTER(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

للحصول على معاينة مفصلة لهذه الصيغة، راجع السابق.

باختصار، تخزن الدالة EARLIER سياق الصف من العملية التي سبقت العملية الحالية. في جميع الأوقات، تخزن الدالة في الذاكرة مجموعتين من السياق: تمثل مجموعة واحدة من السياق الصف الحالي للحلقة الداخلية للصيغة، وتمثل مجموعة أخرى من السياق الصف الحالي للحلقة الخارجية للصيغة. يغذي DAX القيم تلقائيا بين الحلقتين بحيث يمكنك إنشاء تجميعات معقدة.

أعلى الصفحة

سياق الاستعلام

يشير سياق الاستعلام إلى المجموعة الفرعية من البيانات التي يتم استردادها ضمنيا لصيغة. عند إسقاط حقل قياس أو قيمة أخرى في خلية في PivotTable، يفحص محرك Power Pivot رؤوس الصفوف والأعمدة ومقسمات طرق العرض وعوامل تصفية التقرير لتحديد السياق. بعد ذلك، يقوم Power Pivot بإجراء العمليات الحسابية الضرورية لملء كل خلية في PivotTable. مجموعة البيانات التي يتم استردادها هي سياق الاستعلام لكل خلية.

نظرا لأن السياق يمكن أن يتغير استنادا إلى المكان الذي تضع فيه الصيغة، تتغير نتائج الصيغة أيضا اعتمادا على ما إذا كنت تستخدم الصيغة في PivotTable مع العديد من التجميعات وعوامل التصفية، أو في عمود محسوب بدون عوامل تصفية وأدنى سياق.

على سبيل المثال، افترض أنك قمت بإنشاء هذه الصيغة البسيطة التي تجمع القيم في عمود Profit في جدول Sales :=SUM('Sales'[Profit]).

إذا كنت تستخدم هذه الصيغة في عمود محسوب ضمن جدول المبيعات ، ستكون نتائج الصيغة هي نفسها للجدول بأكمله، لأن سياق الاستعلام للصيغة هو دائما مجموعة البيانات بأكملها لجدول المبيعات . ستحقق نتائجك أرباحا لجميع المناطق، وجميع المنتجات، وجميع السنوات، وما إلى ذلك.

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

في PivotTable، من السهل تغيير السياق عن طريق إضافة رؤوس الأعمدة والصفوف أو إزالتها وإضافة مقسمات طرق العرض أو إزالتها. يمكنك إنشاء صيغة مثل الصيغة أعلاه، في مقياس، ثم إسقاطها في PivotTable. كلما أضفت عناوين أعمدة أو صفوف إلى PivotTable، يمكنك تغيير سياق الاستعلام الذي يتم فيه تقييم المقياس. تؤثر عمليات التقطيع والتصفية أيضا على السياق. لذلك، يتم تقييم نفس الصيغة، المستخدمة في PivotTable، في سياق استعلام مختلف لكل خلية.

أعلى الصفحة

سياق عامل التصفية

تتم إضافة سياق عامل التصفية عند تحديد قيود عامل التصفية على مجموعة القيم المسموح بها في عمود أو جدول، باستخدام الوسيطات إلى صيغة. ينطبق سياق عامل التصفية أعلى السياقات الأخرى، مثل سياق الصف أو سياق الاستعلام.

على سبيل المثال، يحسب PivotTable قيمه لكل خلية استنادا إلى عناوين الصفوف والأعمدة، كما هو موضح في القسم السابق في سياق الاستعلام. ومع ذلك، ضمن المقاييس أو الأعمدة المحسوبة التي تضيفها إلى PivotTable، يمكنك تحديد تعبيرات التصفية للتحكم في القيم التي تستخدمها الصيغة. يمكنك أيضا مسح عوامل التصفية على أعمدة معينة بشكل انتقائي.

لمزيد من المعلومات حول كيفية إنشاء عوامل تصفية داخل الصيغ، راجع دالات التصفية.

للحصول على مثال حول كيفية مسح عوامل التصفية لإنشاء الإجماليات الكلية، راجع ALL.

للحصول على أمثلة حول كيفية مسح عوامل التصفية وتطبيقها بشكل انتقائي داخل الصيغ، راجع الدالة ALLEXCEPT.

لذلك، يجب مراجعة تعريف المقاييس أو الصيغ المستخدمة في PivotTable بحيث تكون على دراية بسياق عامل التصفية عند تفسير نتائج الصيغ.

أعلى الصفحة

تحديد السياق في الصيغ

عند إنشاء صيغة، يتحقق Power Pivot ل Excel أولا من بناء الجملة العام، ثم يتحقق من أسماء الأعمدة والجداول التي توفرها مقابل الأعمدة والجداول المحتملة في السياق الحالي. إذا تعذر على Power Pivot العثور على الأعمدة والجداول المحددة بواسطة الصيغة، فستتلقى خطأ.

يتم تحديد السياق كما هو موضح في الأقسام السابقة، باستخدام الجداول المتوفرة في المصنف، وأي علاقات بين الجداول، وأي عوامل تصفية تم تطبيقها.

على سبيل المثال، إذا قمت للتو باستيراد بعض البيانات إلى جدول جديد ولم تطبق أي عوامل تصفية، فإن مجموعة الأعمدة بأكملها في الجدول هي جزء من السياق الحالي. إذا كان لديك جداول متعددة مرتبطة بالعلاقات وكنت تعمل في PivotTable تمت تصفيته عن طريق إضافة عناوين الأعمدة واستخدام مقسمات طرق العرض، فإن السياق يتضمن الجداول ذات الصلة وأي عوامل تصفية على البيانات.

السياق هو مفهوم قوي يمكن أن يجعل من الصعب أيضا استكشاف أخطاء الصيغ وإصلاحها. نوصي بالبدء بالصيغ والعلاقات البسيطة لمعرفة كيفية عمل السياق، ثم البدء في تجربة الصيغ البسيطة في PivotTables. يوفر القسم التالي أيضا بعض الأمثلة حول كيفية استخدام الصيغ أنواعا مختلفة من السياق لإرجاع النتائج ديناميكيا.

أمثلة على السياق في الصيغ

  • تعمل الدالة RELATED على توسيع سياق الصف الحالي لتضمين قيم في عمود ذي صلة. يتيح لك هذا إجراء عمليات البحث. يوضح المثال في هذا الموضوع تفاعل التصفية وسياق الصف.

  • تتيح لك الدالة FILTER تحديد الصفوف المراد تضمينها في السياق الحالي. توضح الأمثلة في هذا الموضوع أيضا كيفية تضمين عوامل التصفية داخل دالات أخرى تقوم بإجراء التجميعات.

  • تعين الدالة ALL السياق داخل صيغة. يمكنك استخدامه لتجاوز عوامل التصفية التي يتم تطبيقها نتيجة لسياق الاستعلام.

  • تتيح لك الدالة ALLEXCEPT إزالة جميع عوامل التصفية باستثناء تلك التي تحددها. يتضمن كلا الموضوعين أمثلة ترشدك خلال إنشاء الصيغ وفهم السياقات المعقدة.

  • تتيح لك الدالتين EARLIER و EARLIEST التكرار الحلقي عبر الجداول عن طريق إجراء العمليات الحسابية، بينما تشير إلى قيمة من حلقة داخلية. إذا كنت على دراية بمفهوم التكرار ومع الحلقات الداخلية والخارجية، فستقدر القوة التي توفرها الدالتان EARLIER و EARLIEST. إذا كنت جديدا على هذه المفاهيم، يجب اتباع الخطوات الواردة في المثال بعناية لمعرفة كيفية استخدام السياقات الداخلية والخارجية في العمليات الحسابية.

أعلى الصفحة

التكامل المرجعي

يناقش هذا القسم بعض المفاهيم المتقدمة المتعلقة بالقيم المفقودة في جداول Power Pivot المتصلة بالعلاقات. قد يكون هذا القسم مفيدا لك إذا كان لديك مصنفات تحتوي على جداول متعددة وصيغ معقدة وتريد مساعدة في فهم النتائج.

إذا كنت جديدا على مفاهيم البيانات الارتباطية، نوصيك أولا بقراءة الموضوع التمهيدي، نظرة عامة على العلاقات.

التكامل المرجعي والعلاقات Power Pivot

لا يتطلبPower Pivot فرض التكامل المرجعي بين جدولين من أجل تعريف علاقة صالحة. بدلا من ذلك، يتم إنشاء صف فارغ على الطرف "واحد" من كل علاقة واحد إلى متعدد ويتم استخدامه للتعامل مع جميع الصفوف غير المطابقة من الجدول ذي الصلة. يتصرف بشكل فعال كصلة خارجية SQL.

في PivotTables، إذا قمت بتجميع البيانات حسب جانب واحد من العلاقة، فسيتم تجميع أي بيانات غير متطابقة على الجانب الكثير من العلاقة معا وسيتم تضمينها في الإجماليات مع عنوان صف فارغ. العنوان الفارغ يعادل تقريبا "العضو غير المعروف".

فهم العضو غير المعروف

من المحتمل أن يكون مفهوم العضو غير المعروف مألوفا لك إذا كنت قد عملت مع أنظمة قواعد البيانات متعددة الأبعاد، مثل SQL Server Analysis Services. إذا كان المصطلح جديدا عليك، يشرح المثال التالي ما هو العضو غير المعروف وكيف يؤثر على الحسابات.

لنفترض أنك تقوم بإنشاء عملية حسابية تجمع المبيعات الشهرية لكل متجر، ولكن هناك عمود في جدول Sales يفتقد قيمة لاسم المتجر. نظرا لأن جداول المتجروالمبيعات متصلة باسم المتجر، فماذا تتوقع أن يحدث في الصيغة؟ كيف يجب على مجموعة PivotTable عرض أرقام المبيعات غير المرتبطة بمخزن موجود أو عرضها؟

هذه المشكلة شائعة في مستودعات البيانات، حيث يجب أن تكون الجداول الكبيرة لبيانات الحقائق مرتبطة منطقيا بجداول الأبعاد التي تحتوي على معلومات حول المخازن والمناطق والسمات الأخرى المستخدمة لتصنيف الحقائق وحسابها. لحل المشكلة، يتم تعيين أي حقائق جديدة غير مرتبطة بوحدة موجودة مؤقتا إلى العضو غير المعروف. ولهذا السبب ستظهر حقائق غير مرتبطة مجمعة في PivotTable تحت عنوان فارغ.

معالجة القيم الفارغة مقابل الصف الفارغ

تختلف القيم الفارغة عن الصفوف الفارغة التي تتم إضافتها لاستيعاب العضو غير المعروف. القيمة الفارغة هي قيمة خاصة تستخدم لتمثيل القيم الخالية والسلاسل الفارغة والقيم المفقودة الأخرى. لمزيد من المعلومات حول القيمة الفارغة، بالإضافة إلى أنواع بيانات DAX الأخرى، راجع أنواع البيانات في نماذج البيانات.

أعلى الصفحة

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.