Οι ασκήσεις power BI φτιάχτηκαν για να βοηθήσουμε τους εκπαιδευόμενους να κατανοήσουν καλύτερα και να εμβαθύνουν στη χρήση του λογισμικού. Έχουμε δημιουργήσει ασκήσεις power BI για όλες τις ενότητες όπως DAX, Power Query, Power Automate, Power Apps και γλώσσα M. Μόνο με την πρακτική εξάσκηση μέσω ασκήσεων μπορεί να αποκτήσει κάποιος ευχέρεια στη χρήση όχι μόνο του power BI αλλά και κάθε άλλου λογισμικού ή γλώσσας προγραμματισμού.
Σε αυτό το άρθρο θα βρείτε μια ολοκληρωμένη συλλογή ασκήσεων power BI και DAX. Οι ασκήσεις καλύπτουν από τις βασικές συναρτήσεις DAX μέχρι πιο προχωρημένες τεχνικές μοντελοποίησης δεδομένων. Τα παραδείγματα που χρησιμοποιούμε στις ασκήσεις προσομοιώνουν πραγματικά επιχειρηματικά σενάρια και ενισχύσουν τις πρακτικές σας δεξιότητες στο Power BI. Αυτές οι ασκήσεις αποτελούν ένα μικρό υποσύνολο του συνόλου των παραδειγμάτων που χρησιμοποιούμε στα σεμινάρια Power BI.
Περιεχόμενα
- Η γλώσσα DAX στο Power BI
- Διαφορές ανάμεσα στο excel και στη DAX
- Ασκήσεις power BI για τα Βασικά Measures
- Ασκήσεις Power BI για Calculated Columns
- Σύγκριση caclucated column vs measure
- Πότε επιλέγω caclucated column και πότε measure;
- Ασκήσεις Power BI για Measures και Calculated Columns
- Ασκήσεις Power BI για Relationships
- Ασκήσεις Power BI για Filter Context
- Ασκήσεις Power BI για Row Context
- Ασκήσεις Power Query
Η γλώσσα DAX στο Power BI
Η DAX (Data Analysis Expressions) είναι μια γλώσσα τύπων και υπολογισμών που δημιουργήθηκε από τη Microsoft ειδικά για τα εργαλεία ανάλυσης δεδομένων και business intelligence που διαθέτει η εταιρεία. Η γλώσσα DAX γίνεται απαραίτητη μόλις ανέβει λίγο η πολυπλοκότητα στις εφαρμογές power bi για επιχειρήσεις.
Χρησιμοποιείται κυρίως στο Microsoft Power BI. Όμως δεν περιορίζεται εκεί. Μπορούμε να τη χρησιμοποιήσουμε στο Microsoft Excel, στο Microsoft SQL Server Analysis Services (SSAS), στο Azure Analysis Services και στο Microsoft Fabric.
Η DAX θυμίζει λίγο τις συναρτήσεις του Excel αλλά να δουλεύει πάνω σε σχεσιακά μοντέλα δεδομένων και όχι σε μεμονωμένα κελιά. Πολλοί χρήστες του Excel κάνουν σχετικά εύκολα τα πρώτα βήματα εκμάθησης της γλώσσας DAX. Όμως στη συνέχεια αλλά η DAX γίνεται πολύ πιο ισχυρή (και σύνθετη και δύσκολη) διότι περιλαμβάνει concepts όπως:
- filter context
- row context
- relationships
- evaluation context
Ακολουθούν συνηθισμένες χρήσεις της γλώσσας DAX:
- Υπολογισμός KPIs και Metrics
- Time Intelligence (Ημερομηνίες και Χρονικές Περίοδοι)
- Δυναμικοί Υπολογισμοί βάσει Φίλτρων
- Υπολογιζόμενες Στήλες (Calculated Columns)
- Κατάταξη (Ranking) και Top N Αναλύσεις
- Φιλτράρισμα και Τμηματοποίηση Δεδομένων (Segmentation)
- Υπολογισμοί Ποσοστών (Percentage Calculations)
- Σχέσεις μεταξύ Πινάκων
- Λογικές συνθήκες (Conditional Logic)
- Προχωρημένη Ανάλυση Δεδομένων όπως κυλιόμενοι μέσοι όροι (Rolling Averages), λογική πρόβλεψης (Forecasting Logic), ανάλυση Cohort, ανάλυση καλαθιού αγορών (Basket Analysis) και προσαρμοσμένες συναθροίσεις (Custom Aggregations)
Διαφορές ανάμεσα στο excel και στη DAX
Το Excel και η DAX φαίνονται παρόμοια στην αρχή επειδή και τα δύο χρησιμοποιούν συναρτήσεις και τύπους. Στην πραγματικότητα όμως έχουν τελείως διαφορετική φιλοσοφία.
Το Excel σκέφτεται σε κελιά ενώ η DAX σκέφτεται σε δεδομένα και σχέσεις.
Στο Excel έχουμε στατικό φύλλο ενώ στο DAX κάνουμε δυναμική ανάλυση.
Στο Excel έχουμε μικρότερη κλίμακα ενώ η DAX αποτελεί analytics engine.
Στο Excel ο χρήστης συνήθως χτίζει το report "με το χέρι" (manually): οργανώνει cells και φύλλα, γράφει τύπους σε συγκεκριμένες θέσεις. κάνει copy-paste formulas και ρυθμίζει manually πίνακες και layouts. Δηλαδή η λογική βρίσκεται μέσα στο ίδιο το φύλλο εργασίας. Αντίθετα η DAX είναι model-driven. Στη DAX δεν χτίζουμε τη λογική πάνω στο report αλλά τη χτίζουμε πάνω στο data model. Το data model είναι ένα οργανωμένο σύστημα από πίνακες, σχέσεις, measures, dimensions και facts Στη DAX πρώτα δημιουργούμε πίνακες, relationships, measures, business logic και μετά όλα τα visuals χρησιμοποιούν αυτή τη λογική δυναμικά.
Η μεγαλύτερη διαφορά ανάμεσα σε DAX και Excel είναι το Context. Στο Excel το αποτέλεσμα εξαρτάται από τα κελιά που χρησιμοποιήσαμε στον υπολογισμό. Αντίθετα στη DAX το αποτέλεσμα εξαρτάται από ποια δεδομένα είναι φιλτραρισμένα εκείνη τη στιγμή. Αυτό σημαίνει ότι στη DAX το ίδιο measure μπορεί να δίνει διαφορετικό αποτέλεσμα ανάλογα με επιλογές που υπάρχουν στη σελίδα. Δηλαδή χωρίς να αλλάξει ο τύπος αλλάζει το αποτέλεσμα σε άλλο chart, σε άλλο slicer και σε άλλη γραμμή πίνακα.
Μετάβαση από το excel στο power BI
Η μετάβαση από το excel στο Power BI δεν είναι μια απλή διαδιακσία import export. Περιλαμβάνει αλλαγή τρόπου σκέψης αλλά και αλλαγή της διαχείρισης των πηγών δεδομένων. Για να διευκολύνουμε όσους θέλουν να κάνουν μόνοι τους αυτή τη διαδικασία έχουμε δημιουργήσει τον οδηγό μετάβασης από το Excel σε Power BI Dashboards.
Ασκήσεις power BI για τα Βασικά Measures
Στην πρώτη ομάδα ασκήσεων power BI περιλαμβάνονται ασκήσεις για τα βασικά measures όπως SUM, COUNT, COUNTROWS, AVERAGE, MIN, MAX, DISTINCTCOUNT, COUNTA, COUNTBLANK και DIVIDE. Στις περισσότερες ασκήσεις έχουμε προσθέσει και τις ισοδύναμες συναρτήσεις του excel διότι η λογική με την οποία χρησιμοποιούμε το DAX στο power BI είναι παρόμοια με τη λογική που χρησιμοποιούμε τις συναρτήσεις στο excel. Εκτιμούμε ότι αυτό θα βοηθήσει πολύ την κατανόηση του DAX και του power BI διότι για τους περισσότερους εκπαιδευόμενους το excel είναι οικείο.
Άσκηση SUM στο Power BI με DAX Measure
Ζητείται να υπολογίσετε τη συνολική ποσότητα προϊόντων που πουλήθηκαν.
Απάντηση:
Total Quantity =
SUM(Sales[Quantity])
Η συνάρτηση SUM χρησιμοποιείται σε πολλά χρήσιμα KPI όπως συνολικές πωλήσεις, συνολικά τεμάχια, συνολικό κόστος, συνολικά έσοδα (revenue). Επίσης χρησιμοποιείται πολύ συχνά μέσα σε άλλα measures.
Ισοδύναμο Excel:
=SUM(A2:A100)
Άσκηση COUNT στο Power BI για καταμέτρηση εγγραφών
Ζητείται να βρείτε πόσες τιμές discount υπάρχουν. Δηλαδή να μετρήσετε πλήθος εγγραφών.
Απάντηση:
Discount Count =
COUNT(Sales[Discount])
Η συνάρτηση COUNT χρησιμοποιείται συνήθως για έλεγχο πληρότητας δεδομένων και για επικύρωση δεδομένων.
Ισοδύναμο Excel:
=COUNT(A2:A100)
Άσκηση COUNTROWS στο Power BI για πλήθος γραμμών πίνακα
Ζητείται να μετρήσετε πόσες συνολικές πωλήσεις υπάρχουν.
Απάντηση:
Total Sales Rows =
COUNTROWS(Sales)
Η συνάρτηση COUNTROWS είναι ο καλύτερος τρόπος να μετράμε εγγραφές σε πίνακα. Χρησιμοποιείται πολύ συχνά σε measures που αφορούν πλήθος παραγγελιών, πλήθος συναλλαγών και πλήθος γραμμών.
Ισοδύναμο Excel:
=ROWS(A2:A100)
Άσκηση AVERAGE στο Power BI για υπολογισμό μέσου όρου
Ζητείται να υπολογίσετε τη μέση έκπτωση.
Απάντηση:
Average Discount =
AVERAGE(Sales[Discount])
Η συνάρτηση AVERAGE χρησιμοποιείται πολύ συχνά για τον υπολογισμό μέσου όρος πωλήσεων (average sales), μέσου περιθωρίου κέρδους (average margin), μέσου μεγέθους καλαθιού (average basket size) και μέσης αξία πελάτη (average customer value).
Ισοδύναμο Excel:
=AVERAGE(A2:A100)
Άσκηση MIN στο Power BI για εύρεση ελάχιστης τιμήςΆσκηση MIN στο Power BI για εύρεση ελάχιστης τιμής
Ζητείται να βρείτε τη μικρότερη ποσότητα που πουλήθηκε.
Απάντηση:
Min Quantity =
MIN(Sales[Quantity])
Η συνάρτηση MIN είναι πολύ χρήσιμη για τον υπολογισμό ελαχίστων ορίων και για την ανίχνευση ανωμαλιών στα δεδομένα. Για παράδειγμα μπορεί να μας βοηθήσει να αναγνωρίσουμε γρήγορα αν υπάρχει τιμή που αποκλίνει από τα αποδεκτά όρια.
Ισοδύναμο Excel:
=MIN(A2:A100)
Άσκηση MAX στο Power BI για εύρεση μέγιστης τιμής
Ζητείται να βρείτε τη μεγαλύτερη ποσότητα που πουλήθηκε.
Απάντηση:
Max Quantity =
MAX(Sales[Quantity])
Η συνάρτηση MAX προσφέρει πολύτιμη βοήθεια όταν θέλουμε να κάνουμε ανάλυση ακραίων τιμών ή να υπολογίσουμε πωλήσεις αιχμής και μαζικές παραγγελίες.
Ισοδύναμο Excel:
=MAX(A2:A100)
Άσκηση DISTINCTCOUNT στο Power BI για μοναδικές εγγραφές
Ζητείται να μετρήσετε πόσοι διαφορετικοί πελάτες έχουν κάνει αγορά.
Απάντηση:
Unique Customers =
DISTINCTCOUNT(Sales[CustomerID])
Η συνάρτηση DISTINCTCOUNT χρησιμοποιείται για τον υπολογισμό κάποιων από τα σημαντικότερα KPIs όπως μοναδικοί πελάτες (unique customers), ενεργοί χρήστες (active users), μοναδικά προϊόντα (unique products) και μοναδικές παραγγελίες (unique orders).
Ισοδύναμο Excel:
Excel 365:
=COUNTA(UNIQUE(A2:A100))
Άσκηση DCOUNTA στο Power BI
Ζητείται να μετρήσετε πόσα προϊόντα έχουν όνομα.
Απάντηση:
Product Name Count =
COUNTA(Products[ProductName])
Η συνάρτηση DCOUNTA είναι πολύ χρήσιμη όταν θέλουμε να κάνουμε επικύρωση δεδομένων και έλεγχο πληρότητας
Ισοδύναμο Excel:
=COUNTA(A2:A100)
Άσκηση COUNTBLANK στο Power BI για καταμέτρηση κενών τιμών
Ζητείται να μετρήσετε πόσα κενά υπάρχουν στη στήλη Discount.
Απάντηση:
Blank Discounts =
COUNTBLANK(Sales[Discount])
Χρησιμοποιούμε συνήθως τη συνάρτηση COUNTBLANK για να κάνουμε αναφορές αποσφαλμάτωσης (Debugging reports) και εργασίες βελτίωσης της ποιότητας δεδομένων
Ισοδύναμο Excel:
=COUNTBLANK(A2:A100)
Άσκηση DIVIDE στο Power BI για ασφαλείς διαιρέσεις
Ζητείται να υπολογίσετε τη μέση ποσότητα ανά πώληση.
Απάντηση:
Average Quantity Per Sale =
DIVIDE(
[Total Quantity],
[Total Sales Rows]
)
Χρησιμοποιείται για αναλογίες ή δείκτες που έχουν πηλίκο, ποσοστά και μέσο όρο ανά οντότητα. Για παράδειγμα μέσο όρο ανά πελάτη, μέσο όρο ανά προϊόν, μέσο όρο ανά κατάστημα.
Αποτελεί καθιερωμένη πρακτική αντί για τη χρήση του συμβόλου της διαίρεσης "/" διότι προσφέρει ασφαλέστερο χειρισμό περιπτώσεων διαίρεσης με μηδέν και καλύτερη διαχείριση σφαλμάτων.
Ισοδύναμο Excel:
=A1/B1
Σε αυτή την άσκηση (Άσκηση 10) για πρώτη φορά βλέπουμε measure χρησιμοποιεί άλλο measure. Αυτή είναι μια πολύ συνηθισμένη πρακτική στο DAX: χτίζουμε μικρά επαναχρησιμοποιήσιμα δομικά στοιχεί (reusable blocks) και μετά τα συνδυάζουμε μεταξύ τους.
Άσκηση υπολογισμού συνολικού Revenue στο Power BI
Ζητείται να υπολογίσετε τα συνολικά έσοδα (revenue) χωρίς να αφαιρεθεί η έκπτωση.
Απάντηση:
Gross Revenue =
SUMX(
Sales,
Sales[Quantity] * RELATED(Products[UnitPrice])
)
Αυτός ο τύπος υπολογίζει το συνολικό μικτό έσοδο (Gross Revenue) αθροίζοντας την αξία κάθε γραμμής πώλησης.
Η συνάρτηση SUMX:
Επαναλαμβάνεται σε κάθε γραμμή του πίνακα Sales
υπολογίζει μία έκφραση για κάθε γραμμή
και στο τέλος αθροίζει όλα τα αποτελέσματα
Σε κάθε γραμμή υπολογίζει:
Sales[Quantity] * RELATED(Products[UnitPrice])
δηλαδή: Ποσότητα πώλησης × Τιμή μονάδας προϊόντος
Η συνάρτηση RELATED:
Η συνάρτηση RELATED(Products[UnitPrice]) χρησιμοποιείται για να φέρει μια τιμή από έναν σχετικό πίνακα.
Συγκεκριμένα η συνάρτηση RELATED(Products[UnitPrice]):
παίρνει την τιμή της στήλης UnitPrice
από τον πίνακα Products
για το προϊόν που αντιστοιχεί στην τρέχουσα γραμμή του πίνακα Sales
Η RELATED() αξιοποιεί τη σχέση μεταξύ των πινάκων:
Sales → Products
συνήθως μέσω κάποιου κλειδιού όπως:
Sales[ProductID] → Products[ProductID]
Τα συνολικά έσοδα (revenue) αποτελούν ένα πραγματικό business metric. Σχεδόν ποτέ δεν αρκεί ένα απλό SUM σε πραγματικά reports. Τις περισσότερες φορές θέλουμε να συνδυάσουμε παραμέτρους όπως:
Quantity × price (Ποσότητα × τιμή)
Order values (Αξίες παραγγελιών)
Line totals (Σύνολα γραμμών)
Basket values (Αξίες καλαθιού)
Ισοδύναμο Excel:
=SUMPRODUCT(A2:A100,B2:B100)
Άσκηση υπολογισμού καθαρού Revenue στο Power BI
Ζητείται να υπολογίσετε το συνολικό revenue μετά την έκπτωση.
Απάντηση:
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Και αυτό το metric είναι πολύ χρήσιμο διότι στα περισσότερα reports χρειάζεται να υπολογίσουμε παραμέτρους όπως net sales, καθαρό revenue, πραγματικό εισόδημα μετά από discounts.
Ισοδύναμο Excel:
=SUMPRODUCT(A2:A100,B2:B100,(1-C2:C100))
Άσκηση υπολογισμού Average Revenue ανά πώληση στο Power BI
Ζητείται να υπολογίσετε το average revenue ανά sale row.
Απάντηση:
Average Revenue Per Sale =
DIVIDE(
[Net Revenue],
[Total Sales Rows]
)
Αυτή η λογική είναι χρήσιμη όταν θέλουμε να υπολογίσουμε παραμέτρους όπως μέση αξία παραγγελίας (average order value), μέσο καλάθι (average basket) και ανάλυση συναλλαγών (transaction analysis).
Ισοδύναμο Excel:
=AVERAGE(A2:A100)
Άσκηση υπολογισμού διαφορετικών προϊόντων με DISTINCTCOUNT στο Power BI
Ζητείται να υπολογίσετε πόσα διαφορετικά προϊόντα εμφανίζονται στις πωλήσεις.
Απάντηση:
Unique Products Sold =
DISTINCTCOUNT(Sales[ProductID])
Ισοδύναμο Excel:
=COUNTA(UNIQUE(A2:A100))
Άσκηση MAXX στο Power BI για μέγιστο Revenue ανά γραμμή πώλησης
Ζητείται να υπολογίσετε το μεγαλύτερο revenue που προέκυψε από μία γραμμή πώλησης (sale row).
Απάντηση:
Max Sale Revenue =
MAXX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Τι κάνει η MAXX
Η συνάρτηση MAXX():
εξετάζει κάθε γραμμή του πίνακα Sales
υπολογίζει μία έκφραση για κάθε γραμμή
και επιστρέφει τη μεγαλύτερη τιμή.
Σε κάθε γραμμή υπολογίζεται η έκφραση:
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
Δηλαδή υπολογίζει το τελικό revenue της γραμμής πώλησης.
Η συνάρτηση RELATED(Products[UnitPrice]) φέρνει την τιμή μονάδας του προϊόντος από τον πίνακα Products.
Η έκφραση (1 - Sales[Discount]) υπολογίζει το ποσοστό που απομένει μετά την έκπτωση.
Η συνάρτηση MAXX() συγκρίνει όλα τα revenues των γραμμών πώλησης και επιστρέφει το μεγαλύτερο.
Αυτή η λογική είναι χρήσιμη όταν θέλουμε να βρούμε παραγγελίες υψηλής αξίας (High-value orders), ανίχνευση ακραίων τιμών (Outlier detection) ή να κάνουμε ανάλυση premium πωλήσεων (Premium sales analysis).
δ. Ισοδύναμο Excel:
Συνήθως με helper column:
=MAX(D2:D100)
Άσκηση MINX στο Power BI για ελάχιστο Revenue ανά γραμμή πώλησης
Ζητείται να υπολογίσετε το μικρότερο revenue σε μία πώληση.
Απάντηση:
Min Sale Revenue =
MINX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Αυτή η λογική είναι χρήσιμη όταν θέλουμε να βρούμε πολύ μικρές παραγγελίες, συναλλαγές χαμηλής αξίας ή ύποπτη δραστηριότητα.
Ισοδύναμο Excel:
=MIN(D2:D100)
Άσκηση υπολογισμού μέσης τιμής προϊόντος στο Power BI
Ζητείται να υπολογίσετε τη μέση τιμή προϊόντος.
Απάντηση:
Average Product Price =
AVERAGE(Products[UnitPrice])
Αυτή η λογική είναι χρήσιμη όταν θέλουμε να κάνουμε ανάλυση καταλόγου προϊόντων, στρατηγική τιμολόγησης ή σύγκριση premium προϊόντων έναντι προϊόντων χαμηλού κόστους.
Ισοδύναμο Excel:
=AVERAGE(A2:A100)
Άσκηση υπολογισμού συνολικού κόστους στο Power BI
Ζητείται να υπολογίσετε το συνολικό κόστος όλων των πωλήσεων.
Απάντηση:
Total Cost =
SUMX(
Sales,
Sales[Quantity] * RELATED(Products[UnitCost])
)
Αυτή η λογική αποτελεί τη βάση για ανάλυση περιθωρίου κέρδους (margin analysis), υπολογισμό κερδοφορίας (profitability) και χρηματοοικονομικές αναφορές (financial reporting).
Ισοδύναμο Excel:
=SUMPRODUCT(A2:A100,B2:B100)
Άσκηση υπολογισμού μικτού κέρδους στο Power BI
Ζητείται να υπολογίσετε το μικτό κέρδος (gross profit).
Απάντηση:
Gross Profit =
[Net Revenue] - [Total Cost]
Αυτός ο υπολογισμός αποτελεί ένα από πιο βασικά KPIs καθώς και συναφείς υπολογισμοί όπως κερδοφορία (profitability), ανάλυση περιθωρίου κέρδους (margin analysis) και επιχειρηματική απόδοση (business performance).
Ισοδύναμο Excel:
=A1-B1
Άσκηση υπολογισμού Margin Percentage στο Power BI
Ζητείται να υπολογίσετε το ποσοστό μικτού κέρδους.
Απάντηση:
Margin % =
DIVIDE(
[Gross Profit],
[Net Revenue]
)
Το ποσοστό μικτού κέρδους (margin %) είναι βασικό KPI σχεδόν σε κάθε εταιρεία.
Ισοδύναμο Excel:
=A1/B1
Ασκήσεις Power BI για Calculated Columns
Στη δεύτερη ομάδα ασκήσεων power BI και DAX ασχολούμαστε με δημιουργία υπολογιζόμενης στήλης (Calculated Column). Η Calculated Column είναι μια υπολογιζόμενη στήλη που υπολογίζεται ανά γραμμή και αποθηκεύεται μέσα στο data model. Ο υπολογισμός των υπολογιζόμενων στηλών γίνεται κατά τη διάρκεια το refresh. Κάθε γραμμή αποκτά μια σταθερή τιμή, η οποία αποθηκεύεται στον πίνακα.
Άσκηση δημιουργίας Calculated Column για Revenue ανά γραμμή πώλησης
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το revenue κάθε γραμμής πώλησης πριν την έκπτωση.
Απάντηση:
Line Revenue =
Sales[Quantity] * RELATED(Products[UnitPrice])
Ισοδύναμο Excel:
=A2*B2
Άσκηση υπολογισμού Discount Amount με Calculated Column στο Power BI
Ζητείται να δημιουργήσετε calculated column που υπολογίζει την αξία της έκπτωσης ανά γραμμή.
Απάντηση:
Discount Amount =
Sales[Quantity]
* RELATED(Products[UnitPrice])
* Sales[Discount]
Ισοδύναμο Excel:
=A2*B2*C2
Άσκηση δημιουργίας Net Revenue Calculated Column στο Power BI
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το καθαρό revenue μετά την έκπτωση.
Απάντηση:
Net Revenue =
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
Ισοδύναμο Excel:
=A2*B2*(1-C2)
Άσκηση υπολογισμού κόστους ανά γραμμή πώλησης στο Power BI
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το κόστος κάθε πώλησης.
Απάντηση:
Line Cost =
Sales[Quantity] * RELATED(Products[UnitCost])
Ισοδύναμο Excel:
=A2*B2
Άσκηση υπολογισμού Gross Profit με Calculated Column στο Power BI
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το μικτό κέρδος ανά γραμμή.
Απάντηση:
Gross Profit =
Sales[Net Revenue] - Sales[Line Cost]
Ισοδύναμο Excel:
=A2-B2
Άσκηση υπολογισμού Margin Percentage με Calculated Column στο Power BI
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το margin percentage ανά γραμμή.
Απάντηση:
Margin % =
DIVIDE(
Sales[Gross Profit],
Sales[Net Revenue]
)
Ισοδύναμο Excel:
=A2/B2
Άσκηση δημιουργίας Large Order Flag στο Power BI
Ζητείται να δημιουργήσετε calculated column που χαρακτηρίζει μία πώληση ως:
"Large Order" αν Quantity >= 10
αλλιώς "Normal Order"
Order Size =
IF(
Sales[Quantity] >= 10,
"Large Order",
"Normal Order"
)
Ισοδύναμο Excel:
=IF(A2>=10,"Large Order","Normal Order")
Άσκηση δημιουργίας Discount Flag στο Power BI
Ζητείται να δημιουργήσετε calculated column που δείχνει αν μία πώληση είχε έκπτωση.
Απάντηση:
Discount Flag =
IF(
Sales[Discount] > 0,
"Discounted",
"No Discount"
)
Ισοδύναμο Excel:
=IF(A2>0,"Discounted","No Discount")
Άσκηση κατηγοριοποίησης τιμών προϊόντων με Calculated Column
Ζητείται να δημιουργήσετε calculated column στον πίνακα Products:
"Expensive" αν UnitPrice >= 500
αλλιώς "Affordable"
Price Category =
IF(
Products[UnitPrice] >= 500,
"Expensive",
"Affordable"
)
Ισοδύναμο Excel:
=IF(A2>=500,"Expensive","Affordable")
Άσκηση χρήσης RELATED για κατηγορία προϊόντος στο Power BI
Ζητείται να δημιουργήσετε calculated column στον πίνακα Sales που φέρνει την κατηγορία προϊόντος.
Απάντηση:
Product Category =
RELATED(Products[Category])
Ισοδύναμο Excel:
XLOOKUP
ή VLOOKUP
=XLOOKUP(A2,Products!A:A,Products!C:C)
Άσκηση δημιουργίας Customer Segment στο Power BI
Ζητείται να δημιουργήσετε calculated column στον πίνακα Sales που φέρνει το customer segment.
Απάντηση:
Customer Segment =
RELATED(Customers[Segment])
Ισοδύναμο Excel:
=XLOOKUP(A2,Customers!A:A,Customers!D:D)
Άσκηση δημιουργίας Full Sale Label στο Power BI
Ζητείται να δημιουργήσετε calculated column που ενώνει:
SaleID
ProductID
CustomerID
σε ένα label.
Sale Label =
Sales[SaleID]
& " - "
& Sales[ProductID]
& " - "
& Sales[CustomerID]
Ισοδύναμο Excel:
=A2&" - "&B2&" - "&C2
Σύγκριση caclucated column vs measure
Παρατηρούμε ότι την ίδια δουλειά μπορούμε να την κάνουμε τόσο με caclucated column όσο και με measure. Συνεπώς γεννιέται το ερώτημα:
Το caclucated column είναι ίδιο με το measure; Αν όχι, πότε να προτιμήσω το ένα και πότε το άλλο;
Η απάντηση είναι ότι σε επίπεδο χρησιμότητας είναι το ίδιο. Για παράδειγμα, αν θέλω να υπολογίσω το Margin % τότε είτε το υπολογίσω ως measure είτε το υπολογίσω ως caclucated column θα έχω την ίδια παράμετρο.
Όμως σε επίπεδο χρήσης και κόστους υπολογισμού είναι εντελώς διαφορετικά. Το measure έχει πολύ περισσότερες δυνατότητες επαναχρησιμοποίησης σε άλλους υπολογισμούς. Επίσης ο υπολογισμός των υπολογιζόμενων στηλών γίνεται για όλες τις εγγραφές κατά το refresh ενώ ο υπολογισμός του measure γίνεται όποτε ζητηθεί για το σύνολο εγγραφών που θα ζητηθεί. Τα measures είναι δυναμικά, υπολογίζονται ανά filter context, δεν πιάνουν RAM και είναι πιο επεκτάσιμα.
Πότε επιλέγω caclucated column και πότε measure;
Επιλέγουμε measures όταν έχουμε υπολογισμούς με αριθμούς, KPIs, συγκεντρωτικές συναρτήσεις, ποσοστά και σύνολα.
Επιλέγουμε Calculated Columns όταν έχουμε υπολογισμούς με ετικέτες, κατηγορίες, δείκτες, σημαίες, ομαδοποίηση, χαρακτηριστικά γραμμής και πεδία ταξινόμησης.
Οι υπολογιζόμενες στήλες ενδείκνυται να χρησιμοποιούνται όταν χρειάζεται μόνιμος υπολογισμός, λογική ανά γραμμή ή πεδίο που θα χρησιμοποιηθεί σε τεμαχιστές δεδομένων (slicers), ομαδοποίηση και σχέσεις μεταξύ πινάκων (relationships).
Ασκήσεις Power BI για Measures και Calculated Columns
Δημιουργήσαμε αυτή την ομάδα ασκήσεων για να βοηθήσουμε στο διαχωρισμό ανάμεσα στις υπολογιζόμενες στήλες και στα measures.
Αυτό είναι ένα από τα πιο σημαντικά σημεία σε ολόκληρο το Power BI. Η κατανόηση της διαφοράς είναι κρίσιμη, γιατί αποτελεί τη βάση για σωστό data modeling, αποδοτικό DAX, βελτιστοποίηση απόδοσης, και σωστή επιχειρησιακή ανάλυση.
Άσκηση σύγκρισης Measure και Calculated Column για Total Revenue
Θέλουμε να υπολογίσουμε το συνολικό revenue των πωλήσεων.
Πρέπει να γίνει: calculated column ή measure;
Απάντηση:
Σωστή επιλογή: Measure
Επιλέγουμε measure, γιατί το revenue είναι KPI που πρέπει να επανυπολογίζεται δυναμικά ανά φίλτρο, μήνα, πελάτη ή κατηγορία.
Επίσης δεν χρειάζεται να αποθηκεύεται σε κάθε γραμμή του πίνακα, άρα εξοικονομείται μνήμη.
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
=SUMPRODUCT(A2:A100,B2:B100,(1-C2:C100))
Άσκηση δημιουργίας Order Size Category στο Power BI
Θέλουμε να κατηγοριοποιήσουμε κάθε πώληση:
Large
Medium
Small
Τι επιλέγουμε;
Σωστή επιλογή: Calculated Column
Επιλέγουμε calculated column, γιατί θέλουμε σταθερή κατηγορία ανά γραμμή πώλησης.
Έτσι μπορούμε να τη χρησιμοποιήσουμε σε slicers, axes, grouping και filtering.
Order Size Category =
SWITCH(
TRUE(),
Sales[Quantity] >= 10, "Large",
Sales[Quantity] >= 5, "Medium",
"Small"
)
Ισοδύναμο Excel:
=IF(A2>=10,"Large",IF(A2>=5,"Medium","Small"))
Άσκηση υπολογισμού Margin Percentage με Measure και Calculated Column
Θέλουμε KPI που να δείχνει margin percentage.
Τι επιλέγουμε;
Σωστή επιλογή: Measure
Το margin % αλλάζει ανά customer, ανά category, ανά month, ανά visual.
Άρα χρειάζεται dynamic recalculation.
Επιλέγουμε measure, γιατί το margin % πρέπει να αλλάζει δυναμικά ανά φίλτρο και visual.
Είναι KPI aggregation και όχι σταθερή πληροφορία ανά γραμμή.
Margin % =
DIVIDE(
[Gross Profit],
[Net Revenue]
)
Ισοδύναμο Excel:
=A1/B1
Άσκηση κατηγοριοποίησης προϊόντων με Product Price Band
Θέλουμε να χωρίσουμε τα προϊόντα σε:
Cheap
Mid-range
Premium
Τι επιλέγουμε;
Σωστή επιλογή: Calculated Column
Επιλέγουμε calculated column, γιατί κάθε προϊόν πρέπει να ανήκει μόνιμα σε μία κατηγορία τιμής.
Η πληροφορία αυτή χρησιμοποιείται για grouping και slicers.
Price Band =
SWITCH(
TRUE(),
Products[UnitPrice] >= 800, "Premium",
Products[UnitPrice] >= 200, "Mid-range",
"Cheap"
)
Ισοδύναμο Excel:
=IF(A2>=800,"Premium",IF(A2>=200,"Mid-range","Cheap"))
Άσκηση υπολογισμού Active Customers στο Power BI
Θέλουμε να υπολογίσουμε πόσοι διαφορετικοί πελάτες έχουν αγοράσει.
Τι επιλέγουμε;
Σωστή επιλογή: Measure
Επιλέγουμε measure, γιατί ο αριθμός ενεργών πελατών αλλάζει ανά περίοδο, κατηγορία και φίλτρο.
Είναι δυναμικό aggregation και όχι ιδιότητα πελάτη.
Active Customers =
DISTINCTCOUNT(Sales[CustomerID])
Ισοδύναμο Excel:
=COUNTA(UNIQUE(A2:A100))
Άσκηση δημιουργίας Discounted Sale Flag στο Power BI
Θέλουμε να χαρακτηρίσουμε κάθε sale row:
Discounted
Non-discounted
Τι επιλέγουμε;
Σωστή επιλογή: Calculated Column
Επιλέγουμε calculated column, γιατί κάθε πώληση πρέπει να χαρακτηριστεί σταθερά ως discounted ή όχι.
Αυτό επιτρέπει filtering και segmentation στα visuals.
Discount Flag =
IF(
Sales[Discount] > 0,
"Discounted",
"No Discount"
)
Ισοδύναμο Excel:
=IF(A2>0,"Discounted","No Discount")
Άσκηση Average Order Value με DAX Measure στο Power BI
Θέλουμε το average revenue ανά πώληση.
Τι επιλέγουμε;
Σωστή επιλογή: Measure
Επιλέγουμε measure, γιατί το average order value είναι KPI που επανυπολογίζεται δυναμικά.
Το αποτέλεσμα αλλάζει ανά customer, month και category.
Average Order Value =
DIVIDE(
[Net Revenue],
[Total Sales Rows]
)
Ισοδύναμο Excel:
=AVERAGE(A2:A100)
Άσκηση δημιουργίας Product Full Label στο Power BI
Θέλουμε πεδίο:
ProductName - Category
Τι επιλέγουμε;
Σωστή επιλογή: Calculated Column
Επιλέγουμε calculated column, γιατί είναι σταθερό display field για visuals και exports.
Δεν είναι aggregation αλλά χαρακτηριστικό του προϊόντος.
Product Label =
Products[ProductName]
& " - "
& Products[Category]
Ισοδύναμο Excel:
=A2&" - "&B2
Ασκήσεις Power BI για Relationships
Σε αυτή την ομάδα ασκήσεων χρησιμοποιούμε συναρτήσεις όπως RELATED, RELATEDTABLE καθώς και χρήση πεδίων από άλλους πίνακες.
Οι σχέσεις (relationships) επιτρέπουν τη σύνδεση πινάκων στο Power BI ώστε να μπορούν να ανταλλάσσουν δεδομένα και να υποστηρίζουν υπολογισμούς μεταξύ διαφορετικών πινάκων.
Θα χρησιμοποιούμε συνέχεια τις σχέσεις:
Sales -> Products
Sales -> Customers
Άσκηση RELATED για εμφάνιση τιμής προϊόντος στον πίνακα Sales
Ζητείται να δημιουργήσετε calculated column στον πίνακα Sales που φέρνει το UnitPrice από τον πίνακα Products.
Απάντηση:
Unit Price =
RELATED(Products[UnitPrice])
Ισοδύναμο Excel:
=XLOOKUP(A2,Products!A:A,Products!D:D)
Άσκηση RELATED για εμφάνιση κατηγορίας προϊόντος στο Power BI
Ζητείται να δημιουργήσετε calculated column που φέρνει το Category από τον πίνακα Products.
Απάντηση:
Product Category =
RELATED(Products[Category])
Ισοδύναμο Excel:
=XLOOKUP(A2,Products!A:A,Products!C:C)
Άσκηση RELATED για εμφάνιση Customer Segment στο Power BI
Ζητείται να δημιουργήσετε calculated column στον πίνακα Sales που φέρνει το Segment του πελάτη.
Απάντηση:
Customer Segment =
RELATED(Customers[Segment])
Ισοδύναμο Excel:
=XLOOKUP(A2,Customers!A:A,Customers!D:D)
Άσκηση RELATED για εμφάνιση πόλης πελάτη στο Power BI
Ζητείται να δημιουργήσετε calculated column που φέρνει την πόλη του πελάτη.
Απάντηση:
Customer City =
RELATED(Customers[City])
Ισοδύναμο Excel:
=XLOOKUP(A2,Customers!A:A,Customers!C:C)
Άσκηση RELATEDTABLE για συνολικές πωλήσεις ανά προϊόν
Ζητείται να δημιουργήσετε calculated column στον πίνακα Products που μετρά πόσες sale rows σχετίζονται με κάθε προϊόν.
Απάντηση:
Sales Rows Count =
COUNTROWS(
RELATEDTABLE(Sales)
)
Ισοδύναμο Excel:
=COUNTIF(Sales!C:C,A2)
Άσκηση RELATEDTABLE για συνολικά τεμάχια ανά προϊόν
Ζητείται να δημιουργήσετε calculated column στον πίνακα Products που υπολογίζει τα συνολικά τεμάχια που πουλήθηκαν.
Απάντηση:
Total Units Sold =
SUMX(
RELATEDTABLE(Sales),
Sales[Quantity]
)
Ισοδύναμο Excel:
=SUMIF(Sales!C:C,A2,Sales!E:E)
Άσκηση υπολογισμού Revenue ανά προϊόν με Relationships
Ζητείται να δημιουργήσετε calculated column στον πίνακα Products που υπολογίζει το συνολικό revenue του προϊόντος.
Απάντηση:
Product Revenue =
SUMX(
RELATEDTABLE(Sales),
Sales[Quantity]
* Products[UnitPrice]
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
=SUMPRODUCT((Sales!C:C=A2)*Sales!E:E*Sales!F:F)
Άσκηση υπολογισμού πλήθους πωλήσεων ανά πελάτη στο Power BI
Ζητείται να δημιουργήσετε calculated column στον πίνακα Customers που μετρά πόσες πωλήσεις έχει κάνει κάθε πελάτης.
Απάντηση:
Sales Count =
COUNTROWS(
RELATEDTABLE(Sales)
)
Ισοδύναμο Excel:
=COUNTIF(Sales!B:B,A2)
Άσκηση υπολογισμού Revenue ανά πελάτη με Relationships
Ζητείται να δημιουργήσετε calculated column στον πίνακα Customers που υπολογίζει το συνολικό revenue κάθε πελάτη.
Απάντηση:
Customer Revenue =
SUMX(
RELATEDTABLE(Sales),
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
=SUMPRODUCT((Sales!B:B=A2)*Sales!E:E*Sales!F:F)
Άσκηση δημιουργίας Customer Status με Relationships στο Power BI
Ζητείται να δημιουργήσετε calculated column στον πίνακα Customers:
"Active" αν έχει τουλάχιστον 2 πωλήσεις
αλλιώς "Inactive"
Customer Status =
IF(
COUNTROWS(RELATEDTABLE(Sales)) >= 2,
"Active",
"Inactive"
)
Ισοδύναμο Excel:
=IF(COUNTIF(Sales!B:B,A2)>=2,"Active","Inactive")
Ασκήσεις Power BI για Filter Context
Σε αυτή την ομάδα έχουμε ασκήσεις που μας βοηθάνε να κατανοήσουμε πώς αλλάζουν τα measures ανά πελάτη, προϊόν, κατηγορία, μήνα.
Εδώ μπαίνουμε σε πιο "βαθιά νερά" στο DAX.
Αυτές οι ασκήσεις μας βοηθούν να καταλάβουμε γιατί το ίδιο measure δίνει διαφορετικό αποτέλεσμα, πώς λειτουργούν slicers και τα visuals, πώς επηρεάζουν τα φίλτρα τα measures και γιατί το DAX είναι context-driven.
Άσκηση υπολογισμού Revenue ανά πελάτη με Filter Context
Ζητείται να δημιουργήσετε measure που υπολογίζει το συνολικό revenue.
Μετά να βάλετε:
CustomerName
και το measure
σε table visual.
Αυτή άσκηση δείχνει ότι το ίδιο measure, χωρίς να αλλάξει ο κώδικας, επιστρέφει διαφορετικό αποτέλεσμα ανά πελάτη.
Αυτό είναι το filter context.
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Συνήθως:
Pivot Table
ή SUMIFS
=SUMIFS(...)
Άσκηση υπολογισμού Revenue ανά κατηγορία προϊόντων στο Power BI
Ζητείται να βάλετε
Category
και Net Revenue
σε matrix/table visual.
Αυτή άσκηση δείχνει ότι το measure αλλάζει αυτόματα ανά category, χωρίς νέο DAX.
Αυτό είναι η βάση όλων των BI reports.
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
=SUMIFS(...)
Άσκηση υπολογισμού Revenue ανά μήνα με Filter Context
Ζητείται να βάλετε
Date
και Net Revenue
σε line chart ή matrix.
Αυτή άσκηση δείχνει ότι το measure επανυπολογίζεται ανά χρονική περίοδο, χωρίς να αλλάξει ούτε γραμμή DAX.
Απάντηση:
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Pivot Table με grouping ανά μήνα.
Άσκηση CALCULATE για Revenue μόνο στην κατηγορία Electronics
Ζητείται να βάλετε slicer: Category
και να επιλέξετε: Electronics.
Παρατηρήστε το Net Revenue.
Αυτή άσκηση δείχνει ότι τα slicers αλλάζουν το filter context δυναμικά.
Αυτό είναι ο πυρήνας του Power BI.
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Pivot Table filters.
Άσκηση υπολογισμού Active Customers ανά κατηγορία προϊόντων
Ζητείται να υπολογίσετε active customers και να βάλετε:
Category
και το measure.
Αυτή άσκηση δείχνει ότι το DISTINCTCOUNT:
αλλάζει ανά category,
ανά φίλτρο,
ανά visual.
Active Customers =
DISTINCTCOUNT(Sales[CustomerID])
Ισοδύναμο Excel:
=COUNTA(UNIQUE(...))
Άσκηση Average Revenue ανά πελάτη με DAX Measure
Ζητείται να υπολογίσετε average revenue και να το δείτε:
ανά customer,
ανά category,
ανά month.
Αυτή άσκηση δείχνει ότι το measure είναι ίδιο,
αλλά το context αλλάζει το αποτέλεσμα.
Average Revenue =
DIVIDE(
[Net Revenue],
[Total Sales Rows]
)
Ισοδύναμο Excel:
=AVERAGEIFS(...)
Άσκηση Total Quantity με διαφορετικά φίλτρα στο Power BI
Ζητείται να δείτε ίδιο measure:
χωρίς φίλτρα,
με slicer Category,
με slicer Segment,
με slicer Month.
Αυτή άσκηση δείχνει ότι το DAX measure δεν αλλάζει, αλλά το evaluation context αλλάζει το αποτέλεσμα.
Απάντηση:
Total Quantity =
SUM(Sales[Quantity])
Ισοδύναμο Excel:
=SUMIFS(...)
Άσκηση DAX υπολογισμού Revenue μόνο για Corporate Customers με CALCULATE
Ζητείται να βάλετε slicer: Customer Segment
και να επιλέξετε: Corporate.
Αυτή άσκηση δείχνει ότι relationships + filters επηρεάζουν το αποτέλεσμα των measures.
Απάντηση:
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Pivot Table filter ή SUMIFS.
Άσκηση υπολογισμού Revenue ανά προϊόν με Filter Context
Ζητείται να βάλετε:
ProductName
και Net Revenue
σε table visual.
Αυτή άσκηση δείχνει ότι μπορούμε να υπολογίσουμε μαζί: product contribution, top sellers, low performers. Όλα χωρίς νέο measure.
Απάντηση:
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Pivot Table.
Άσκηση ίδιας Measure σε διαφορετικά Visuals του Power BI
Ζητείται να βάλετε το ίδιο measure:
σε card,
σε matrix,
σε chart,
σε table.
Αυτή άσκηση δείχνει ότι κάθε visual δημιουργεί διαφορετικό filter context.
Αυτό είναι θεμελιώδες στο Power BI.
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
* (1 - Sales[Discount])
)
Ισοδύναμο Excel:
Pivot Table.
Ασκήσεις Power BI για Row Context
Σε αυτή την ομάδα υπάρχουν ασκήσεις με υπολογισμούς ανά γραμμή που μας βοηθούν να δούμε τη διαφορά από το aggregation.
Θα γίνει κατανοητό τι σημαίνει “τρέχω ανά γραμμή”, γιατί δουλεύουν οι calculated columns, γιατί υπάρχει το SUMX και ποια είναι η διαφορά row context vs aggregation.
Αυτό είναι από τα πιο κρίσιμα σημεία στο DAX.
Άσκηση υπολογισμού Revenue ανά γραμμή πώλησης με Row Context
Ζητείται να δημιουργήσετε calculated column που υπολογίζει το revenue κάθε sale row.
Αυτή η άσκηση μας δείχνει το πρώτο πραγματικό row context: το DAX "βλέπει" μία γραμμή κάθε φορά.
Απάντηση:
Line Revenue =
Sales[Quantity] * RELATED(Products[UnitPrice])
Ισοδύναμο Excel:
=A2*B2
Άσκηση συνολικού Revenue με Aggregation στο Power BI
Ζητείται να υπολογίσετε το συνολικό revenue όλων των πωλήσεων.
Αυτή η άσκηση μας δείχνει τη διαφορά: row calculation vs aggregation όλων των rows.
Απάντηση:
Net Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
Ισοδύναμο Excel:
=SUMPRODUCT(A2:A100,B2:B100)
Άσκηση υπολογισμού Quantity επί Price χωρίς SUMX
Δοκιμάστε να γράψετε:
Sales[Quantity] * Products[UnitPrice]
ως measure.
Αυτή η άσκηση μας δείχνει γιατί τα measures δεν έχουν αυτόματα row context.
Αυτό είναι βασικό σημείο στο DAX.
Wrong Revenue =
Sales[Quantity] * Products[UnitPrice]
Σωστή προσέγγιση:
Correct Revenue =
SUMX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
Ισοδύναμο Excel:
=A2*B2
Άσκηση υπολογισμού μέγιστου Revenue γραμμής πώλησης
Ζητείται να βρείτε το μεγαλύτερο revenue που δημιουργήθηκε από μία γραμμή πώλησης.
Αυτή η άσκηση μας δείχνει iterator που "επισκέπτεται" κάθε row.
Απάντηση:
Max Line Revenue =
MAXX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
Ισοδύναμο Excel:
=MAX(C2:C100)
Άσκηση υπολογισμού μέσου Revenue ανά γραμμή πώλησης
Ζητείται να υπολογίσετε το average revenue ανά sale row.
Αυτή η άσκηση μας δείχνει iterator που:
υπολογίζει row-by-row,
και μετά κάνει aggregation.
Average Revenue =
AVERAGEX(
Sales,
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
Ισοδύναμο Excel:
=AVERAGE(C2:C100)
Άσκηση κατηγοριοποίησης γραμμών πώλησης με Row Context
Ζητείται να δημιουργήσετε calculated column:
"High"
"Low"
ανάλογα με το revenue της γραμμής.
Αυτή η άσκηση μας δείχνει πώς το row context χρησιμοποιείται σε IF logic.
Απάντηση:
Revenue Category =
IF(
Sales[Line Revenue] >= 500,
"High",
"Low"
)
Ισοδύναμο Excel:
=IF(A2>=500,"High","Low")
Άσκηση σύγκρισης SUM και SUMX στο Power BI
Ζητείται να υπολογίσετε το συνολικό quantity:
μία φορά με SUM
μία φορά με SUMX
Αυτή η άσκηση μας δείχνει ότι:
το SUM είναι απλό aggregation,
το SUMX κάνει iteration ανά row.
Total Quantity SUM =
SUM(Sales[Quantity])
Total Quantity SUMX =
SUMX(
Sales,
Sales[Quantity]
)
Ισοδύναμο Excel:
=SUM(A2:A100)
Άσκηση υπολογισμού Revenue μόνο για Large Orders με DAX
Ζητείται να υπολογίσετε revenue μόνο για γραμμές με Quantity >= 10.
Αυτή η άσκηση μας δείχνει row-by-row filtering μέσα σε iterator.
Απάντηση:
Large Orders Revenue =
SUMX(
FILTER(
Sales,
Sales[Quantity] >= 10
),
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
Ισοδύναμο Excel:
=SUMPRODUCT((A2:A100>=10)*B2:B100)
Άσκηση υπολογισμού πλήθους Large Orders στο Power BI
Ζητείται να μετρήσετε πόσες γραμμές έχουν Quantity >= 10.
Απάντηση:
Large Orders Count =
COUNTROWS(
FILTER(
Sales,
Sales[Quantity] >= 10
)
)
Ισοδύναμο Excel:
=COUNTIF(A2:A100,">=10")
Άσκηση υπολογισμού Profit ανά γραμμή και συνολικού Profit στο Power BI
Ζητείται να υπολογίσετε profit ανά γραμμή, και συνολικό profit.
Αυτή η άσκηση μας δείχνει τη σύνδεση:
row context → aggregation.
Calculated column:
Line Profit =
(
Sales[Quantity]
* RELATED(Products[UnitPrice])
)
-
(
Sales[Quantity]
* RELATED(Products[UnitCost])
)
Measure:
Total Profit =
SUM(Sales[Line Profit])
Ισοδύναμο Excel:
=A2-B2
Ασκήσεις Power Query
Στις ασκήσεις Power Query χρησιμοποιούμε το αρχείο "2_paraggelies.csv". Χρησιμοποιούμε μόνο έναν πίνακα για να εφαρμόσουμε τις βασικές ενέργειες και να τις κατανοήσουμε πολύ καλά. Το CSV έχει σκόπιμα ατέλειες: κενά, διπλότυπα, διαφορετικές γραφές πόλεων, λάθος τύπους, σύμβολα €/% και μη έγκυρες ημερομηνίες.Α. Εισαγωγή και πρώτη επισκόπηση
- Φόρτωσε το CSV στο Power Query με σωστό διαχωριστικό ; και κωδικοποίηση UTF-8.
- Έλεγξε πόσες γραμμές και πόσες στήλες έχει ο πίνακας.
- Μετονόμασε το query σε Πωλήσεις_Raw.
- Άλλαξε τους τύπους δεδομένων στις βασικές στήλες.
- Βρες ποιες στήλες έχουν λάθος τύπο μετά την αυτόματη ανίχνευση.
- Απενεργοποίησε το αυτόματο Changed Type και κάνε τους τύπους χειροκίνητα.
- Κράτησε μόνο τις πρώτες 20 γραμμές για δοκιμή και μετά ακύρωσε το βήμα.
- Χρησιμοποίησε το Column Quality για να εντοπίσεις κενά και σφάλματα.
Β. Φιλτράρισμα γραμμών
- Κράτησε μόνο παραγγελίες με Κατάσταση = Ολοκληρώθηκε.
- Αφαίρεσε τις παραγγελίες που είναι Ακυρώθηκε.
- Φίλτραρε παραγγελίες μόνο από Online κανάλι.
- Φίλτραρε παραγγελίες Αθήνας, ακόμη κι αν η πόλη έχει κενά ή διαφορετική γραφή.
- Κράτησε παραγγελίες με Ποσότητα μεγαλύτερη από 2.
- Κράτησε παραγγελίες με Τιμή_Μονάδας πάνω από 100.
- Φίλτραρε παραγγελίες Ιανουαρίου 2025.
- Κράτησε παραγγελίες μεταξύ 01/03/2025 και 31/05/2025.
- Αφαίρεσε γραμμές με κενό Ονοματεπώνυμο.
- Αφαίρεσε γραμμές όπου η Πόλη είναι κενή.
- Βρες τις γραμμές όπου η Ποσότητα δεν είναι αριθμός.
- Βρες τις γραμμές όπου η ημερομηνία είναι μη έγκυρη.
Γ. Καθαρισμός κειμένου
- Κάνε Trim στη στήλη Πόλη.
- Κάνε Clean στη στήλη Σχόλια.
- Μετέτρεψε την Πόλη σε πεζά γράμματα.
- Μετέτρεψε την Κατηγορία σε μορφή Proper Case.
- Αντικατάστησε Athina με Αθήνα.
- Αντικατάστησε Thessaloniki με Θεσσαλονίκη.
- Αντικατάστησε Patra με Πάτρα.
- Αντικατάστησε Heraklion με Ηράκλειο.
- Αντικατάστησε Larisa με Λάρισα.
- Αντικατάστησε Volos με Βόλος.
- Αντικατάστησε Ioannina με Ιωάννινα.
- Αντικατάστησε CHANIA με Χανιά.
- Διόρθωσε την Κατάσταση Ολοκληρωθηκε σε Ολοκληρώθηκε.
- Αφαίρεσε διπλά κενά από τη στήλη Προϊόν.
- Δημιούργησε στήλη Πόλη_Καθαρή με όλες τις διορθώσεις.
Δ. Μετατροπή τύπων και χειρισμός λαθών
- Μετέτρεψε τη στήλη Ημερομηνία σε τύπο Date.
- Κράτησε τις γραμμές με σφάλμα ημερομηνίας σε ξεχωριστό query.
- Αντικατάστησε σφάλματα ημερομηνίας με null.
- Μετέτρεψε τη στήλη Ποσότητα σε αριθμό.
- Κράτησε τις γραμμές όπου η Ποσότητα παράγει σφάλμα.
- Αντικατάστησε την τιμή δύο με 2.
- Αφαίρεσε γραμμές με αρνητική Ποσότητα.
- Μετέτρεψε τη στήλη Τιμή_Μονάδας σε δεκαδικό αριθμό.
- Αφαίρεσε το σύμβολο € από τιμές όπου υπάρχει.
- Αντικατάστησε το κόμμα δεκαδικού όπου χρειάζεται.
- Μετέτρεψε τη στήλη Έκπτωση_% σε αριθμό.
- Αφαίρεσε το σύμβολο % από τιμές όπου υπάρχει.
- Αντικατάστησε κενές εκπτώσεις με 0.
- Μετέτρεψε τη στήλη Μεταφορικά σε αριθμό.
- Αντικατάστησε τη λέξη δωρεάν με 0.
- Αντικατάστησε κενά μεταφορικά με 0.
Ε. Επιλογή, διαγραφή και αναδιάταξη στηλών
- Κράτησε μόνο τις στήλες Παραγγελίας, Ημερομηνίας, Πελάτη, Προϊόντος και ποσών.
- Αφαίρεσε τη στήλη Σχόλια.
- Μετακίνησε τη στήλη Κατάσταση αμέσως μετά την Ημερομηνία.
- Μετονόμασε τη στήλη Αρ_Παραγγελίας σε Αριθμός Παραγγελίας.
- Μετονόμασε τη στήλη Κωδικός_Προϊόντος σε Κωδικός Προϊόντος.
- Δημιούργησε query που περιέχει μόνο πληροφορίες πελατών.
- Δημιούργησε query που περιέχει μόνο πληροφορίες προϊόντων.
- Αφαίρεσε διπλότυπες γραμμές από το query προϊόντων.
- Αφαίρεσε διπλότυπες γραμμές από το query πελατών.
ΣΤ. Προσθήκη υπολογιζόμενων στηλών
- Δημιούργησε στήλη Μικτή_Αξία = Ποσότητα * Τιμή_Μονάδας.
- Δημιούργησε στήλη Ποσό_Έκπτωσης.
- Δημιούργησε στήλη Καθαρή_Αξία μετά την έκπτωση.
- Δημιούργησε στήλη Τελική_Αξία = Καθαρή_Αξία + Μεταφορικά.
- Δημιούργησε στήλη Έχει_Έκπτωση με Ναι/Όχι.
- Δημιούργησε στήλη Είναι_Μεγάλη_Παραγγελία για Τελική_Αξία πάνω από 500.
- Δημιούργησε στήλη Μήνας από την Ημερομηνία.
- Δημιούργησε στήλη Όνομα_Μήνα στα Ελληνικά ή με βάση το locale.
- Δημιούργησε στήλη Τρίμηνο.
- Δημιούργησε στήλη Έτος.
- Δημιούργησε στήλη Ημέρα_Εβδομάδας.
- Δημιούργησε στήλη Κατηγορία_Ποσότητας: Μικρή, Μεσαία, Μεγάλη.
- Δημιούργησε στήλη Περιθώριο_Μεταφορικών ως ποσοστό των μεταφορικών επί της καθαρής αξίας.
- Δημιούργησε στήλη Κλειδί_Πελάτη_Προϊόντος ενώνοντας Πελάτης_ID και Κωδικός_Προϊόντος.
Ζ. Ταξινόμηση και διπλότυπα
- Ταξινόμησε τις παραγγελίες από τη νεότερη στην παλαιότερη.
- Ταξινόμησε πρώτα ανά Πόλη_Καθαρή και μετά ανά Τελική_Αξία φθίνουσα.
- Βρες διπλότυπα με βάση τον Αριθμό Παραγγελίας.
- Αφαίρεσε πλήρως διπλότυπες γραμμές.
- Κράτησε μόνο την πρώτη γραμμή ανά Αριθμό Παραγγελίας.
- Κράτησε τις 10 μεγαλύτερες παραγγελίες βάσει Τελικής_Αξίας.
- Κράτησε τις 10 μικρότερες παραγγελίες βάσει Τελικής_Αξίας.
- Δημιούργησε index column από το 1.
- Δημιούργησε conditional index ανά Πόλη χρησιμοποιώντας Group By και All Rows.
Η. Group By και συγκεντρώσεις
- Υπολόγισε συνολικές πωλήσεις ανά Κατηγορία.
- Υπολόγισε αριθμό παραγγελιών ανά Πόλη_Καθαρή.
- Υπολόγισε συνολική Ποσότητα ανά Προϊόν.
- Υπολόγισε μέση Τελική_Αξία ανά Κανάλι.
- Υπολόγισε μέγιστη Τελική_Αξία ανά Πωλητή.
- Υπολόγισε ελάχιστη Τελική_Αξία ανά Τρόπο_Πληρωμής.
- Υπολόγισε πωλήσεις ανά Μήνα.
- Υπολόγισε πωλήσεις ανά Μήνα και Κατηγορία.
- Υπολόγισε πόσοι μοναδικοί πελάτες υπάρχουν ανά Πόλη.
- Υπολόγισε πόσα προϊόντα έχει αγοράσει κάθε πελάτης.
- Βρες τον καλύτερο μήνα σε συνολική αξία.
- Βρες την καλύτερη κατηγορία ανά πόλη.
- Βρες ποσοστό επιστροφών ανά κατηγορία με βάση την Κατάσταση.
- Δημιούργησε summary query μόνο για ολοκληρωμένες παραγγελίες.
Θ. Split, extract και conditional logic
- Χώρισε το Αρ_Παραγγελίας σε Prefix, Έτος, Αριθμό.
- Εξήγαγε τα πρώτα 3 γράμματα από τον Κωδικό_Προϊόντος.
- Εξήγαγε το επώνυμο από το Ονοματεπώνυμο.
- Εξήγαγε το μικρό όνομα από το Ονοματεπώνυμο.
- Δημιούργησε στήλη Τύπος_Καναλιού: Ψηφιακό για Online/Marketplace, αλλιώς Παραδοσιακό.
- Δημιούργησε στήλη Κίνδυνος_Παραγγελίας: Υψηλός για Ακυρώθηκε/Επιστράφηκε, αλλιώς Χαμηλός.
- Δημιούργησε στήλη Ζώνη_Τιμής προϊόντος: φθηνό, μεσαίο, ακριβό.
- Δημιούργησε στήλη Χρέωση_Μεταφορικών: Δωρεάν ή Με Χρέωση.
- Δημιούργησε στήλη Παρατήρηση_Καθαρή όπου κενά σχόλια γίνονται Χωρίς σχόλιο.
Ι. Pivot / Unpivot απλές ασκήσεις
- Κάνε Group By ανά Μήνα και Κατηγορία και μετά Pivot τις Κατηγορίες.
- Κάνε Group By ανά Πόλη και Κανάλι και μετά Pivot τα Κανάλια.
- Δημιούργησε πίνακα πωλήσεων ανά Πωλητή και Μήνα με Pivot.
- Κάνε Unpivot στον πίνακα που δημιούργησες ώστε να επιστρέψει σε μακρύ format.
- Σύγκρινε το long format με το αρχικό grouped αποτέλεσμα.
- Αντικατάστησε null μετά από Pivot με 0.
- Μετονόμασε τις pivoted στήλες ώστε να είναι πιο φιλικές.
ΙΑ. Append, Reference, Duplicate και φόρτωση
- Κάνε Duplicate το αρχικό query και ονόμασέ το Πωλήσεις_Καθαρισμός.
- Κάνε Reference το καθαρισμένο query και δημιούργησε query Αναφορά_Πωλήσεων_Μήνα.
- Δημιούργησε ξεχωριστό query για Επιστροφές μόνο από γραμμές με Κατάσταση = Επιστράφηκε.
- Δημιούργησε ξεχωριστό query για Ακυρώσεις.
- Κάνε Append τα queries Επιστροφές και Ακυρώσεις σε query Προβληματικές_Παραγγελίες.
- Φόρτωσε μόνο το τελικό καθαρό query σε φύλλο Excel.
- Κράτησε τα ενδιάμεσα queries ως Connection Only.
- Άλλαξε τη σειρά βημάτων και παρατήρησε πότε χαλάει το query.
- Μετονόμασε βήματα ώστε να είναι κατανοητά.
- Πρόσθεσε περιγραφή στο query με σημειώσεις για τον καθαρισμό.
ΙΒ. Μικρά τελικά σενάρια
- Φτιάξε τελικό καθαρό dataset για ανάλυση πωλήσεων.
- Φτιάξε summary ανά μήνα με πωλήσεις, παραγγελίες και μέση αξία.
- Φτιάξε summary ανά κατηγορία με ποσότητα, καθαρή αξία και τελική αξία.
- Φτιάξε λίστα top 10 πελατών με βάση την Τελική_Αξία.
- Φτιάξε λίστα top 10 προϊόντων με βάση την Ποσότητα.
- Φτιάξε πίνακα ποιότητας δεδομένων με πλήθος σφαλμάτων ανά πεδίο.
- Φτιάξε query που κρατά μόνο τις γραμμές που χρειάζονται διόρθωση.
- Φτιάξε query που επιστρέφει μόνο έγκυρες, ολοκληρωμένες παραγγελίες.
- Φτιάξε query που επιστρέφει μόνο παραγγελίες υψηλής αξίας.
- Φτιάξε τελικό αρχείο φόρτωσης με τις στήλες σε σωστή σειρά για αναφορά.
Εδώ έχουμε τα dataset για περισσότερες ασκήσεις power BI και excel
Αυτό θα το σβήσουμε σε 7 ώρες: ειδικά αρχεία
Σεμινάρια excel
Σε όλες τις ασκήσεις έχουμε συμπεριλάβει ισοδύναμο τύπο του excel. Το power BI προήλθε από το excel και η καλή γνώση του excel βοηθά πολύ στην κατανόηση του power BI. Αν δεν έχετε αυτές τις γνώσεις μπορείτε να τις αποκτήσετε στα σεμινάρια excel. Εδώ μπορείτε να ενημερωθείτε για τα μαθήματα excel.
Το power BI στηρίζεται στη λογική του συγκεντρωτικού πίνακα. Εδώ μπορείτε να δείτε πως λειτουργούν οι συγκεντρωτικοί πίνακες στο Excel.
Ασκήσεις excel
Έχουμε δημοσιεύσει ασκήσεις excel που μπορείτε να χρησιμοποιήσετε για να κάνετε πρακτική εξάσκηση. Οι ασκήσεις excel βοηθούν στην καλύτερη κατανόηση του λογισμικού. Αν θέλετε να αποκτήσετε ευχχέρεια στη χρήση του excel τότε προτείνουμε να ασχοληθείτε με τις ασκήσεις excel.