סיכומים לא נכונים בטבלה

More
8 years 3 weeks ago #8266 by Simon Rose
שלום, בניתי טבלה מסוג CHART עם סיכומי ביניים.
משום מה בעמודות מחושבות הסיכומים יוצאים לא נכונים.
היה צריך לצאת בדוגמה 99.7 ולא 93.8
אשמח לעזרה.

Please התחברות to join the conversation.

More
8 years 3 weeks ago #8267 by Eliran Sanor
היי,

בד"כ סיכומי ביניים שגויים הם פועל יוצא של התניות בExpression או שימוש באגרגציה בצורה לא נכונה.
במידה ואתה משתמש בStraight Table, והפעולה אותה אתה מבקש לעשות הינה סכימה, אפשר לשנות את חישוב הTotal לסכימה של שורות, לא הפתרון הכי אלגנטי, אבל עוקף את הבעיה.
במידה והנ"ל לא מספק, יש צורך לשנות את הExpression כך שיתחשב במימדים בChart, לדוגמא:
Code:
Sum(Aggr( Sum(Sales),Dimension1,Dimension2))

אם תוסיף פרטים לבעיה, אוכל לנסות לתת תשובה טובה יותר.

אלירן.

Please התחברות to join the conversation.

More
8 years 3 weeks ago #8268 by Daniel Chotzen
שלום,
TOTAL בchart ניתן לחישוב בשני אופנים
אסביר באמצעות דוגמא
נגיד שיש לך טבלה של תלמידים המשויכים לכיתות במקצועות שונים ולכל תלמיד יש ציון בכל מקצוע
עכשיו ניתן לבנות chart מסוג straightTable שיציג את המימד "Class" ולכל מקצוע
את מספר התלמידים המשויכים למקצוע באמצעות הנוסחה
Code:
sum(NoOFStudents)
ואת הציון הממוצע לכל מקצוע באמצעות הנוסחה
Code:
sum(Grades)/sum(NoOFStudents)
כך שבכל שורה יוצג הציון הממוצע של כל תלמיד במקצוע
החישוב של הTOTAL יכול להתבצע בשתי דרכים
דרך אחת היא בהתעלמות מהמימד, כלומר סה"כ הציונים עבור כל התלמידים בכל המקצועות לחלק בסה"כ התלמידים בכל המקצועות
דרך נוספת תהיה לסכם את התוצאות שהתקבלו בכל מקצוע ואז לחלק במספר המקצועות
הדרך הראשונה נקראית בקליקוויו sum of expression
הדרך השניה נקראית sum of rows (ניתן להגיד לקליקוויו להשתמש גם בסוג אחר של אגגרגציה בדרך זו למשל AVG ולא SUM)

יש לשים לב שאין דרך נכונה ודרך שגויה. הכל תלוי בחישוב שאתה רוצה להציג.
כל הנ"ל מתיחס אך ורק לcharts מסוג StraightTable שבה ניתן לכל expression לקבוע באיזה משני הדרכים יחושב הTOTAL
בchart מסוג Pivot קליקוויו תמיד מבצע את הדרך הראשונה כלומר sum of expression.
למרות האמור לעיל ניתן להכריח את קליקוויו לבצע חישוב מסוג sum of rows גם בPivot באמצעות השימוש בפונקציה
Code:
Aggr()
בצורה הבאה:
נשתמש בנוסחה מהדוגמא למעלה.
Code:
Avg(Aggr(sum(Grades)/sum(NoOFStudents),[Class])
שים לב שכאן עטפתי את כל הביטוי בAVG כי זה בעצם מה שרוצים להשיג בדרך הזו (ממוצע של הממוצעים)
אשמח לענות לשאלות נוספות במידה ומשהו לא ברור
בברכה
דניאל חוצן
נ.ב.
לצערי האתר הופך את התווים האחרונים בנוסחאות, אם תעתיק כל נוסחה לקליקוויו תוכל לראות אותן כפי שהן אמורות להיות

Please התחברות to join the conversation.

More
8 years 3 weeks ago #8269 by Simon Rose
קודם כל תודה רבה.
איך אני עושה אגריגציה לקוד כזה ?
Code:
=(sum({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>} Qty)/Count({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>}DISTINCT Date)) /Count({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>}DISTINCT StoreID)

Please התחברות to join the conversation.

More
8 years 3 weeks ago #8270 by Simon Rose
חשוב לציין שאני עובד ב CHART עם חישובי ביניים, לא יודע אם זה רלוונטי.

Please התחברות to join the conversation.

More
8 years 3 weeks ago #8271 by Daniel Chotzen
זה שהנוסחה גדולה ומורכבת לא משנה את מה שאמרתי.
אתה מקיף את כל הנוסחה ב()aggr עם המימדים שיש לך באובייקט
ואז את כל מה שהתקבל אתה מקיף בפונקציה אגרגטיבית לפי בחירתך sum או avg או כל פונקציה אחרת.
שים לב שיש לשים את הביטוי סט אנליסיס שיש לך בתוך הנוסחה גם עבור הפונקציה האגרטיבית שמקיפה את הכל

התוצאה היא כזו:
Code:
= sum({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>} aggr( (sum({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>} Qty) / Count({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>}DISTINCT Date)) / Count({<Day={'<=$(MaxDay)'}, YearMonth={'$(MonthYear)'}>}DISTINCT StoreID) ,YourDimension1,YourDimension2) )

Please התחברות to join the conversation.

More
8 years 3 weeks ago - 8 years 3 weeks ago #8273 by Simon Rose
תודה רבה,
למה אני מתייחס בסוף במימדים ?


תודה רבה, הסתדרתי.
Last edit: 8 years 3 weeks ago by Simon Rose. Reason: עדכון

Please התחברות to join the conversation.

Moderators: avishaylgiladlDaniel Chotzenodedth
Time to create page: 0.290 seconds