<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Donnex Okun</title>
    <description>The latest articles on DEV Community by Donnex Okun (@dokun).</description>
    <link>https://dev.to/dokun</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4071754%2Fd6dc0085-61a6-4b9f-b1d6-2261f616add3.jpg</url>
      <title>DEV Community: Donnex Okun</title>
      <link>https://dev.to/dokun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dokun"/>
    <language>en</language>
    <item>
      <title>Power BI Technical Article: Data Modelling, Relationships &amp; Joins</title>
      <dc:creator>Donnex Okun</dc:creator>
      <pubDate>Wed, 21 Oct 2026 04:51:15 +0000</pubDate>
      <link>https://dev.to/dokun/power-bi-technical-article-data-modelling-relationships-joins-1fco</link>
      <guid>https://dev.to/dokun/power-bi-technical-article-data-modelling-relationships-joins-1fco</guid>
      <description>&lt;blockquote&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Data modelling is the foundation of every successful Power BI solution. While dashboards and visualisations often receive the most attention, the quality of the underlying data model determines how efficiently reports perform, how easy they are to maintain, and how accurately business insights can be generated.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A well-designed Power BI model enables analysts to create reliable reports, write simpler DAX measures, improve query performance, and scale reporting solutions as business requirements grow. Conversely, a poorly designed model can lead to slow reports, inaccurate calculations, complicated DAX formulas, and maintenance challenges.&lt;/p&gt;

&lt;p&gt;This article explores data modelling concepts in Power BI, including schema design, fact and dimension tables, relationships, filter propagation, joins in Power Query, and recommended modelling practices for business intelligence projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Data Modelling in Power BI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Data Modelling?
&lt;/h3&gt;

&lt;p&gt;Data modelling in Power BI is the process of organising tables, defining relationships, and structuring data to support efficient reporting and analysis.&lt;br&gt;
The data model serves as the logical layer between raw data and report visualisations. It defines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How tables relate to one another&lt;/li&gt;
&lt;li&gt;How filters travel across tables&lt;/li&gt;
&lt;li&gt;How DAX calculations are evaluated&lt;/li&gt;
&lt;li&gt;How users interact with reports&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Data Modelling Matters
&lt;/h3&gt;

&lt;p&gt;A well-designed model provides:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Faster report performance&lt;/li&gt;
&lt;li&gt;Simpler DAX calculations&lt;/li&gt;
&lt;li&gt;Easier maintenance&lt;/li&gt;
&lt;li&gt;Better scalability&lt;/li&gt;
&lt;li&gt;Reduced data redundancy&lt;/li&gt;
&lt;li&gt;Improved user experience&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Data Modelling Approaches
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A. Flat Table Schema&lt;/strong&gt;&lt;br&gt;
A flat table is a single spreadsheet-like table where all data, both the actual transactions and the details describing them, is crammed into one place instead of being split up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uavholpglxu68ax1a8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0uavholpglxu68ax1a8x.png" alt=" " width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Illustration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnnf2cyof6uhuwksb1bdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnnf2cyof6uhuwksb1bdc.png" alt=" " width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Simple to understand:&lt;/strong&gt; Anyone can view and read the data immediately because it looks just like a standard spreadsheet without any hidden structure.&lt;br&gt;
• &lt;strong&gt;Easy initial development:&lt;/strong&gt; You can build and launch it instantly since you do not have to plan, design, or configure multiple connected tables.&lt;br&gt;
• &lt;strong&gt;No relationships required:&lt;/strong&gt; You avoid the headache of managing primary keys, foreign keys, or complex joins because all data lives in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Data duplication:&lt;/strong&gt; The same descriptive information (like a customer's address) must be repeated manually on every new transaction row.&lt;br&gt;
• &lt;strong&gt;Larger model size:&lt;/strong&gt; Storing the same repeated text strings across thousands of rows causes the file size to bloat unnecessarily.&lt;br&gt;
• &lt;strong&gt;Reduced performance:&lt;/strong&gt; The system slows down heavily as the dataset grows because it has to scan through massive, repetitive rows to find information.&lt;br&gt;
• &lt;strong&gt;Difficult maintenance:&lt;/strong&gt; Managing the data becomes a mess over time because there are no built-in rules to prevent typos or broken records.&lt;br&gt;
• &lt;strong&gt;Complex updates:&lt;/strong&gt; Changing a single piece of info (like a product name) requires finding and modifying every single row where it was ever typed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Appropriate Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Small datasets:&lt;/strong&gt; It works beautifully for basic tracking like a simple contact list, membership roster, or daily log file.&lt;br&gt;
• &lt;strong&gt;Prototypes:&lt;/strong&gt; It is ideal for mocking up a quick proof-of-concept before investing time into building a complex database structure.&lt;br&gt;
• &lt;strong&gt;Quick ad-hoc analysis:&lt;/strong&gt; It allows analysts to throw data together rapidly for a one-off report or a fast charting session.&lt;/p&gt;

&lt;p&gt;As datasets grow, duplicated attributes increase memory consumption and reduce query performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Star Schema&lt;/strong&gt;&lt;br&gt;
A star schema consists of one central fact table connected directly to multiple dimension tables. A star schema is like a store receipt:&lt;br&gt;
• ** The Center (Fact Table):&lt;strong&gt;Holds the numbers you can count or add up (like sales amounts, quantities, and prices).&lt;br&gt;
• **The Points (Dimension Tables):&lt;/strong&gt; Hold the details that describe those numbers (like product names, customer names, store locations, and dates).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Few456fhtqo7ugl19r5rc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Few456fhtqo7ugl19r5rc.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Illustration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuwlylrsmjgob2pbrrm08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuwlylrsmjgob2pbrrm08.png" alt=" " width="799" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;•** Excellent performance:** Direct table relationships allow tools to filter massive datasets at lightning speed.&lt;br&gt;
• &lt;strong&gt;Easy DAX calculations:&lt;/strong&gt; Filters flow naturally to the fact table, keeping formulas clean and simple.&lt;br&gt;
• &lt;strong&gt;Easy understanding:&lt;/strong&gt; The intuitive centered layout makes the model business-friendly and readable for everyone.&lt;br&gt;
• &lt;strong&gt;Reduced joins during reporting:&lt;/strong&gt; Flattened dimension tables drastically cut the number of connections needed for visuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Some duplicate data in dimensions:&lt;/strong&gt; Flattened dimension tables repeat text details across rows instead of splitting them into sub-tables.&lt;br&gt;
• &lt;strong&gt;Additional modelling effort:&lt;/strong&gt; Significant upfront work is required in the ETL(Extract, Transform,Load) pipeline to reshape transactional data into facts and dimensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Appropriate Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Enterprise reporting:&lt;/strong&gt; Provides a solid, standard foundation for consistent metrics across all corporate business units.&lt;br&gt;
• &lt;strong&gt;Dashboards:&lt;/strong&gt; Delivers fast query response times for instant visual refreshes when users click filters.&lt;br&gt;
• &lt;strong&gt;Business intelligence projects:&lt;/strong&gt; Optimizes data structures for modern BI tools to smoothly slice, dice, and aggregate high-level metrics.&lt;br&gt;
• &lt;strong&gt;Data warehouses:&lt;/strong&gt; Functions as the industry-standard architectural pattern for building efficient data marts and analytical repositories.&lt;/p&gt;

&lt;p&gt;Star schemas provide the best performance because Power BI's VertiPaq engine efficiently compresses fact and dimension tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Snowflake Schema&lt;/strong&gt;&lt;br&gt;
A snowflake schema is an extension of a star schema where dimensions are further normalised into multiple related tables. Instead of every detail connecting directly to the center, the outer arms are split up and broken down into smaller, sub-connected tables (normalized). For example, instead of storing the city and country together in the "Store" table, the Store table connects to a "City" table, which then connects to a "Country" table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqqt7evaifjefcttmsr7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqqt7evaifjefcttmsr7w.png" alt=" " width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Illustration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvsvrz7sl3on683gqpk33.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvsvrz7sl3on683gqpk33.png" alt=" " width="799" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Reduced redundancy:&lt;/strong&gt; Splits dimensions into sub-tables to replace repetitive text with compact ID numbers.&lt;br&gt;
• &lt;strong&gt;Better normalisation:&lt;/strong&gt; Strictly follows relational database principles to cleanly isolate data by its functional relationships.&lt;br&gt;
• &lt;strong&gt;Improved data integrity:&lt;/strong&gt; Keeps a single source of truth so changes only require updating one single row.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;More relationships:&lt;/strong&gt; Creates a dense web of table connections that developers must map and manage.&lt;br&gt;
• &lt;strong&gt;Increased complexity:&lt;/strong&gt; The branched table structure makes the model harder for business users to visually navigate.&lt;br&gt;
• &lt;strong&gt;Slower performance:&lt;/strong&gt; Requires multiple database joins to retrieve data, which can visibly drag down report loading times.&lt;br&gt;
• &lt;strong&gt;More difficult DAX:&lt;/strong&gt; Long filtering paths force complex formula writing to control data context accurately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Appropriate Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Highly normalised source systems:&lt;/strong&gt; Perfectly mirrors transactional databases where data is already deeply nested at the source.&lt;br&gt;
• &lt;strong&gt;Complex enterprise models:&lt;/strong&gt; Organizes massive corporate warehouses with deeply layered, multi-level business hierarchies.&lt;/p&gt;

&lt;p&gt;Additional joins increase complexity and may reduce performance compared to a star schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Fact Tables and Dimension Tables
&lt;/h2&gt;

&lt;p&gt;A fact table stores measurable business events. These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales Amount&lt;/li&gt;
&lt;li&gt;Quantity Sold&lt;/li&gt;
&lt;li&gt;Profit&lt;/li&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;li&gt;Revenue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjfyvh25h5hj2lo1e34rd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjfyvh25h5hj2lo1e34rd.png" alt=" " width="628" height="183"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Large volume of records:&lt;/strong&gt; Continuously captures individual transactions, quickly growing to hold millions or billions of rows.&lt;br&gt;
• &lt;strong&gt;Contains numeric measures:&lt;/strong&gt; Stores quantitative values—like revenue or quantity—intended for mathematical aggregation in reports.&lt;br&gt;
• &lt;strong&gt;Contains foreign keys:&lt;/strong&gt; Holds unique key identifiers that link each row directly to surrounding dimension tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dimension Table
&lt;/h3&gt;

&lt;p&gt;A dimension table stores descriptive information.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8xfyxoyypirqekouenru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8xfyxoyypirqekouenru.png" alt=" " width="468" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Characteristics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Descriptive attributes:&lt;/strong&gt; Stores qualitative text context—like names or categories—that defines raw numbers.&lt;br&gt;
• &lt;strong&gt;Supports filtering and grouping:&lt;/strong&gt; Enables users to slice, dice, and organize metrics across report visuals.&lt;br&gt;
• &lt;strong&gt;Contains primary keys:&lt;/strong&gt; Holds unique column identifiers to cleanly anchor connections with fact tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Grain (Granularity)
&lt;/h3&gt;

&lt;p&gt;Granularity defines the lowest level of detail stored in a fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Examples:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frugrg45wom5vwa17877k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frugrg45wom5vwa17877k.png" alt=" " width="430" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The grain should be defined before modelling begins because it affects all relationships and calculations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Retail Sales Model:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcwuuxi2khr6kh8nrlbda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcwuuxi2khr6kh8nrlbda.png" alt=" " width="798" height="131"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A report can answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales by customer&lt;/li&gt;
&lt;li&gt;Sales by region&lt;/li&gt;
&lt;li&gt;Sales by product&lt;/li&gt;
&lt;li&gt;Sales by month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;using a single fact table connected to multiple dimensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Relationships in Power BI
&lt;/h2&gt;

&lt;p&gt;A relationship is a logical connection between two tables that allows filters and calculations to work across the model.&lt;br&gt;
Without relationships, tables operate independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  One-to-Many Relationship (1:*)
&lt;/h3&gt;

&lt;p&gt;One unique value in one table relates to many rows in another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0szjf3bwhldezmzkkwm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0szjf3bwhldezmzkkwm.png" alt=" " width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer to Sales&lt;/li&gt;
&lt;li&gt;Product to Orders&lt;/li&gt;
&lt;li&gt;Date to Transactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is the most commonly used relationship type in Power BI.&lt;/p&gt;

&lt;h3&gt;
  
  
  One-to-One Relationship (1:1)
&lt;/h3&gt;

&lt;p&gt;Each value appears only once in both tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw6pid50disie2c50s9lj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw6pid50disie2c50s9lj.png" alt=" " width="799" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security tables&lt;/li&gt;
&lt;li&gt;Supplementary attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This relationship should be used sparingly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Many-to-Many Relationship (:)
&lt;/h3&gt;

&lt;p&gt;Multiple rows on both sides contain matching values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8jewkeoqfhvqwtw8s02n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8jewkeoqfhvqwtw8s02n.png" alt=" " width="800" height="133"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Budget allocations&lt;/li&gt;
&lt;li&gt;Complex business scenarios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is better to avoid this data relationship unless it is really necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Primary Keys and Foreign Keys
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Primary Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A unique identifier column in a table where every row contains a distinct value and no blanks ensuring each record can be instantly found and targeted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffbi9id1bkemb9sieyf49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffbi9id1bkemb9sieyf49.png" alt=" " width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foreign Key&lt;/strong&gt;&lt;br&gt;
References another table. Is a column in one table that links to the primary key of another table, creating the connection that lets you slice and dice your metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgebh26oud09y8v8ypz6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgebh26oud09y8v8ypz6b.png" alt=" " width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CustomerID is unique in DimCustomer but appears many times in FactSales because a customer can make multiple purchases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Referential Integrity
&lt;/h3&gt;

&lt;p&gt;A database rule ensuring that relationships between tables remain valid and consistent and ensures every foreign key matches an existing primary key.&lt;/p&gt;

&lt;p&gt;Good:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkvv8xrhoke0vra0tpbd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkvv8xrhoke0vra0tpbd0.png" alt=" " width="798" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bad:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lcr6prudiyu1i24ybzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7lcr6prudiyu1i24ybzn.png" alt=" " width="800" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Active and Inactive Relationships
&lt;/h3&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;FactSales contains:&lt;br&gt;
• Order Date&lt;br&gt;
• Ship Date&lt;br&gt;
Both link to DimDate.&lt;/p&gt;

&lt;p&gt;Only one relationship can be active.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbkklrzzwuwrexv8jlzgy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbkklrzzwuwrexv8jlzgy.png" alt=" " width="800" height="74"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inactive relationships can be activated using:DAX&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tzxxj4gf38amrfew3wk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tzxxj4gf38amrfew3wk.png" alt=" " width="800" height="25"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Filter Direction
&lt;/h2&gt;

&lt;p&gt;Defines the path that data filtering travels between connected tables. Also referred to as Filter propagation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Single Direction Filtering
&lt;/h3&gt;

&lt;p&gt;Recommended approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbnu2gv2vhuhybb1d72bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbnu2gv2vhuhybb1d72bc.png" alt=" " width="800" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laptop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;filters FactSales to show only laptop sales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Excellent performance:&lt;/strong&gt; Keeps query pathways simple and direct, minimizing memory overhead across massive datasets.&lt;br&gt;
• &lt;strong&gt;Prevents ambiguous paths:&lt;/strong&gt; Forces data filters to move in one logical direction, eliminating conflicting filter loops.&lt;br&gt;
• &lt;strong&gt;Cleaner DAX calculations:&lt;/strong&gt; Eliminates unintended side-effects, making metrics highly predictable and easy to debug.&lt;br&gt;
• &lt;strong&gt;Aligns with best practice:&lt;/strong&gt; Matches the native design of analytical storage engines for maximum scalability.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bidirectional Filtering
&lt;/h3&gt;

&lt;p&gt;Filtering works both ways.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo427wlnzrnvjqld4nfhs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo427wlnzrnvjqld4nfhs.png" alt=" " width="800" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Advantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Simplifies multi-table filtering:&lt;/strong&gt; Allows filters to flow seamlessly both ways, making it easy to filter a dimension based on facts or another dimension.&lt;br&gt;
• &lt;strong&gt;Reduces complex DAX code:&lt;/strong&gt; Eliminates the need to write advanced functions like CROSSFILTER or CALCULATE to force backward filtering.&lt;br&gt;
• &lt;strong&gt;Enables complex cross-filtering:&lt;/strong&gt; Ensures that selecting an item in one slicer instantly hides irrelevant options in another slicer across different tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• &lt;strong&gt;Degrades query performance:&lt;/strong&gt; Forces the engine to evaluate two-way filter paths, significantly slowing down report loading times.&lt;br&gt;
• &lt;strong&gt;Causes ambiguous relationships:&lt;/strong&gt; Generates circular filter loops across your model that can return inaccurate or unpredictable data.&lt;br&gt;
• &lt;strong&gt;Inflates memory consumption:&lt;/strong&gt; Demands high CPU and RAM usage because the reporting engine must constantly sync table states.&lt;br&gt;
• &lt;strong&gt;Triggers unexpected visual filtering:&lt;/strong&gt; Unintentionally filters unrelated visuals and slicers, creating a confusing end-user experience.&lt;br&gt;
• &lt;strong&gt;Triggers unexpected visual filtering:&lt;/strong&gt; Unintentionally filters unrelated visuals and slicers, creating a confusing experience for the end-user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Folffi4rzu2akb94snk3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Folffi4rzu2akb94snk3e.png" alt=" " width="800" height="158"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bidirectional filtering can create multiple filter paths leading to unexpected results therefore, use Single Direction by default and both only when required.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Joins in Power Query
&lt;/h2&gt;

&lt;p&gt;A join combines data from two tables using a common column.It is an operation that temporarily combines rows from two or more tables based on a related column between them, typically matching a foreign key in one table to a primary key in another, allowing you to query and view the combined data as a single result.&lt;/p&gt;

&lt;p&gt;Example Tables:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwsstadqwelgfgu1g6a6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwsstadqwelgfgu1g6a6z.png" alt=" " width="337" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orders&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxxag3uqpl4v4crkja8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxxag3uqpl4v4crkja8f.png" alt=" " width="274" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Left Outer Join
&lt;/h2&gt;

&lt;p&gt;Returns all rows from the left table along with the matching rows from the right table. If no match exists, it fills the missing right-side columns with NULL values&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgaomkyjcyrsa1xn3k37d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgaomkyjcyrsa1xn3k37d.png" alt=" " width="318" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Illustration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmh1evk8jh53js76tvj9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmh1evk8jh53js76tvj9c.png" alt=" " width="798" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Right Outer Join
&lt;/h2&gt;

&lt;p&gt;Returns all rows from the right table along with the matching rows from the left table. If no match exists, it fills the missing left-side columns with NULL values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fna64nl9dc6epc0hd9tn5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fna64nl9dc6epc0hd9tn5.png" alt=" " width="319" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Outer Join
&lt;/h2&gt;

&lt;p&gt;Returns all rows from both tables, combining records regardless of where a match is found. If rows on either side do not match, it fills the missing values on the opposite side with NULL values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd5q7rq2nxb6ep2urbugc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd5q7rq2nxb6ep2urbugc.png" alt=" " width="340" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inner Join
&lt;/h2&gt;

&lt;p&gt;Returns only the rows that have matching values in both tables. Any row without a corresponding match on either side is completely excluded from the final result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm06s1793474cmo3bcqtl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm06s1793474cmo3bcqtl.png" alt=" " width="346" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Left Anti Join
&lt;/h2&gt;

&lt;p&gt;Returns rows from the left table only if they have no matching value in the right table. It acts as a exclusion filter, completely dropping any rows that successfully find a match.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn8mqcvbewwvst75n81y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn8mqcvbewwvst75n81y8.png" alt=" " width="220" height="105"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Right Anti Join
&lt;/h2&gt;

&lt;p&gt;Returns rows from the right table only if they have no matching value in the left table. It acts as an exclusion filter, completely dropping any rows that successfully find a match on the left side.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94381rderxw8netwva6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F94381rderxw8netwva6o.png" alt=" " width="321" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Summary of Join Types
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu8mgzxn26s5u0tnvgm6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu8mgzxn26s5u0tnvgm6t.png" alt=" " width="800" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Power Query Joins vs Power BI Relationships
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr428dlu5f46yqma5wqc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr428dlu5f46yqma5wqc4.png" alt=" " width="691" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Power Query Merge Example
&lt;/h3&gt;

&lt;p&gt;Customers and Orders become:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb6lowk7mrvn2jpy27v3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb6lowk7mrvn2jpy27v3w.png" alt=" " width="799" height="87"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A single table is produced.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relationship Example
&lt;/h3&gt;

&lt;p&gt;Keep:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frdubya3cidrqjvx77zrq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frdubya3cidrqjvx77zrq.png" alt=" " width="797" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;separate and connect through CustomerID.&lt;br&gt;
No physical combination occurs.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to Use a Merge
&lt;/h3&gt;

&lt;p&gt;Use when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lookup values needed&lt;/li&gt;
&lt;li&gt;Small supporting tables&lt;/li&gt;
&lt;li&gt;Data cleansing requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  When to Use Relationships
&lt;/h3&gt;

&lt;p&gt;Use when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building analytical models&lt;/li&gt;
&lt;li&gt;Following star schema practices&lt;/li&gt;
&lt;li&gt;Supporting scalable reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Excessive Merging is a Problem
&lt;/h3&gt;

&lt;p&gt;Excessive merging:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates flat tables&lt;/li&gt;
&lt;li&gt;Increases redundancy&lt;/li&gt;
&lt;li&gt;Enlarges model size&lt;/li&gt;
&lt;li&gt;Reduces flexibility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keeping fact and dimension tables separate is usually preferable.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Recommended Power BI Model
&lt;/h2&gt;

&lt;p&gt;For a typical business intelligence project, the &lt;strong&gt;Star Schema&lt;/strong&gt; is the recommended design.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recommended Structure
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3lkbx7kyxb0aaslhuaz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3lkbx7kyxb0aaslhuaz6.png" alt=" " width="800" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Recommended Relationships
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One-to-Many relationships&lt;/li&gt;
&lt;li&gt;Single-direction filtering&lt;/li&gt;
&lt;li&gt;Active relationships where possible&lt;/li&gt;
&lt;li&gt;Surrogate primary keys&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Star Schema is Recommended
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Better Performance&lt;/strong&gt;Power BI's storage engine performs best with star-schema structures.&lt;br&gt;
&lt;strong&gt;2. Simpler DAX&lt;/strong&gt;Measures become easier to write and understand.&lt;br&gt;
Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F39nf8jtc6cncz082e887.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F39nf8jtc6cncz082e887.png" alt=" " width="794" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Scalability&lt;/strong&gt;Additional dimensions can be added without redesigning the model.&lt;br&gt;
&lt;strong&gt;4. Easier Maintenance&lt;/strong&gt;Changes remain isolated within dimensions.&lt;br&gt;
&lt;strong&gt;5. Improved Report Creation&lt;/strong&gt;Business users can easily understand the model.&lt;br&gt;
&lt;strong&gt;6. Better Filter Propagation&lt;/strong&gt;Filters flow naturally from dimensions to the fact table.&lt;br&gt;
&lt;strong&gt;7. Reduced Complexity&lt;/strong&gt;Compared with snowflake schemas, fewer relationships mean easier troubleshooting and improved readability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Data modelling is one of the most important activities in Power BI development. A strong model directly influences report performance, scalability, maintainability, and analytical accuracy. While flat tables may be suitable for small datasets and snowflake schemas may be useful in specialised situations, the star schema remains the industry standard for most business intelligence projects.&lt;/p&gt;

&lt;p&gt;Understanding fact and dimension tables, relationship cardinalities, filter propagation, and join operations allows developers to build reliable analytical solutions. Additionally, recognising the difference between Power Query joins and Power BI relationships ensures that data is prepared efficiently while preserving an optimised analytical model.&lt;/p&gt;

&lt;p&gt;In practice, the most effective Power BI solution typically consists of a central fact table connected to multiple dimension tables through one-to-many relationships, using single-direction filtering and a well-structured star schema. This design provides the optimal balance between performance, simplicity, scalability, and maintainability, making it the preferred approach for modern business intelligence environments.&lt;/p&gt;

</description>
      <category>datamodelling</category>
      <category>joins</category>
      <category>cardinality</category>
      <category>schemas</category>
    </item>
    <item>
      <title>Building an Interactive Excel Dashboard for E-commerce Product Analysis: A Case Study of Jumia Products</title>
      <dc:creator>Donnex Okun</dc:creator>
      <pubDate>Wed, 07 Oct 2026 06:28:28 +0000</pubDate>
      <link>https://dev.to/dokun/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-185j</link>
      <guid>https://dev.to/dokun/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-185j</guid>
      <description>&lt;h1&gt;
  
  
  Data Cleaning &amp;amp; Preparation
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Data Cleaning
&lt;/h2&gt;

&lt;p&gt;This is the process of finding and fixing mistakes, duplicates, or missing information in a given data so it is correct and ready to use.I cleaned the dataset by addressing the most glaring inconsistencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check for Missing Values
&lt;/h3&gt;

&lt;p&gt;I inspected all columns for blank or null values.Missing prices were investigated and corrected where possible before converting "Unknown" values in reviews and ratings to blank/null values.&lt;br&gt;
Formulas applied included &lt;br&gt;
&lt;code&gt;COUNTBLANK() for each column.&lt;br&gt;
Apply Filters → Blanks to identify missing records.&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Removal of Duplicate Records
&lt;/h3&gt;

&lt;p&gt;To check whether the same product appears more than once;&lt;/p&gt;

&lt;p&gt;`- Select entire dataset.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Data → Remove Duplicates.&lt;/li&gt;
&lt;li&gt;Use Product Name and Price columns as reference fields.`&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Duplicate records were removed to ensure each product appears only once.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbsqwls0lrlyzdhc0qg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbsqwls0lrlyzdhc0qg6.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0rllxza88g6k826qwxiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0rllxza88g6k826qwxiu.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Standardize Rating Column
&lt;/h3&gt;

&lt;p&gt;I ensured ratings are stored as numeric values between 0 and 5.•  Standardized the rating information by extracting the numeric rating from values such as "4.6 out of 5".This was done manually using the Find and Replace functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0jvs6u61kmnmg32rbrz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0jvs6u61kmnmg32rbrz3.png" alt=" " width="799" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Convert Reviews to Numeric Format
&lt;/h3&gt;

&lt;p&gt;I converted negative review counts (for example -14.00) to positive values, since review counts should not be negative.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9qx0i2i72ajz139t1k4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9qx0i2i72ajz139t1k4d.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Convert Price Columns to Numeric Format
&lt;/h3&gt;

&lt;p&gt;The assignment requires removing currency symbols and unnecessary characters.Price ranges stored as text instead of numeric values for certain products have been adjusted by determining the averages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F056uro1qo1xgqejfntej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F056uro1qo1xgqejfntej.png" alt=" " width="799" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd5clmxeybrf0p5icajrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd5clmxeybrf0p5icajrw.png" alt=" " width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dataset was cleaned by checking for missing values, duplicate records, incorrect data types, and inconsistencies. Currency symbols, commas, and negative signs were removed from the Current Price and Old Price columns and converted into numeric format. Review counts and ratings were standardised into numerical values to support analysis. Duplicate records were removed and validation checks were performed to ensure ratings ranged from 0 to 5, prices were positive, and discount percentages were reasonable. The resulting dataset was accurate, consistent, and ready for enrichment and analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Enrichment.
&lt;/h2&gt;

&lt;p&gt;Is the process of adding extra, helpful details to information you already have to make it more useful.I created the following additional columns to improve my analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The Absolute Discount Amount&lt;/strong&gt;&lt;br&gt;
Formula = [Old Price] - [Current Price]&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fom8bb4r92bs4w7w9oa7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fom8bb4r92bs4w7w9oa7v.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Rating Category&lt;/strong&gt;&lt;br&gt;
I created a rating category column classified as follows;&lt;br&gt;
&lt;code&gt;| Rating    | Category  |&lt;br&gt;
| Below 3   | Poor      |&lt;br&gt;
| 3 to 4.5  | Average   |&lt;br&gt;
| Above 4.5 | Excellent |&lt;/code&gt;&lt;br&gt;
Excel Formula&lt;br&gt;
Assuming Standardized Rating is in H2: &lt;code&gt;=IF(J2&amp;lt;3,"Poor",IF(J2&amp;lt;=4.5,"Average","Excellent"))&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fan7a5cxdj40isprprcvi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fan7a5cxdj40isprprcvi.png" alt=" " width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Discount Category&lt;/strong&gt;&lt;br&gt;
I then created a rating category column classified as follows;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;| Discount % | Category        |&lt;br&gt;
| Below 20%  | Low Discount    |&lt;br&gt;
| 20%-40%    | Medium Discount |&lt;br&gt;
| Above 40%  | High Discount   |&lt;/code&gt;&lt;br&gt;
Excel Formula&lt;br&gt;
Assuming Discount % is in E2:&lt;br&gt;
&lt;code&gt;=IF(F2&amp;lt;20%,"Low Discount",IF(F2&amp;lt;=40%,"Medium Discount","High Discount"))&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcp6l44gpyidcxi2f1msh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcp6l44gpyidcxi2f1msh.png" alt=" " width="799" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Price Category&lt;/strong&gt;&lt;br&gt;
Lastly, I created a price category column classified as follows;&lt;br&gt;
&lt;code&gt;| Current Price (KSh) | Category     |&lt;br&gt;
| Less  2,000         | Low Price    |&lt;br&gt;
| 2,000-3,000         | Medium Price |&lt;br&gt;
| Above 3,000         | High Price   |&lt;/code&gt;&lt;br&gt;
Excel Formula&lt;br&gt;
Assuming Current Price is in B2:&lt;br&gt;
&lt;code&gt;=IF(B2&amp;gt;3000,"High Price",IF(B2&amp;gt;=2000,"Medium Price","Low Price"))&lt;/code&gt;&lt;br&gt;
To improve analysis, additional calculated fields were added to the dataset. A Discount Amount column was created by subtracting Current Price from Old Price. Products were grouped into Rating Categories (Poor, Average, Excellent) based on customer ratings, Discount Categories (Low, Medium, High) based on discount percentages, and Price Categories (Low, Medium, High) based on current selling prices. These derived fields simplified segmentation, enabled trend analysis, and supported dashboard visualisations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Data Analysis
&lt;/h1&gt;

&lt;h2&gt;
  
  
  1. Descriptive Statistics
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Current vs Old Price:&lt;/strong&gt; The average current price (KSh 1,187) is substantially lower than the average old price (KSh 1,811), indicating that products are generally offered at discounted prices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F35x3k7z7i1eo2ijozes8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F35x3k7z7i1eo2ijozes8.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsyvhniao1o0jjn9lu6o3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsyvhniao1o0jjn9lu6o3.png" alt=" " width="799" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discount Level:&lt;/strong&gt; The average discount of &lt;strong&gt;37%&lt;/strong&gt; suggests that the marketplace applies fairly aggressive promotional pricing, making products attractive to price-sensitive customers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz4rantn8k4qtb077k7tm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz4rantn8k4qtb077k7tm.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer Satisfaction:&lt;/strong&gt; The average rating of &lt;strong&gt;3.9 out of 5&lt;/strong&gt; indicates overall positive customer feedback, though there is room for improvement in product quality or customer experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0sabzwtmrrst9uy8msii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0sabzwtmrrst9uy8msii.png" alt=" " width="799" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product Range:&lt;/strong&gt; With &lt;strong&gt;112&lt;/strong&gt; products, the dataset provides a reasonably diverse sample of items across different categories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0foyhdzk0bpw3siir83l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0foyhdzk0bpw3siir83l.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Review Activity:&lt;/strong&gt; A total of &lt;strong&gt;723&lt;/strong&gt; reviews shows moderate customer engagement, providing sufficient feedback for assessing product performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwp47c7hkmdsfw0p480xw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwp47c7hkmdsfw0p480xw.png" alt=" " width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Price Spread:&lt;/strong&gt; The large gap between the &lt;strong&gt;least expensive product&lt;/strong&gt; &lt;strong&gt;(KSh 38)&lt;/strong&gt; and the &lt;strong&gt;most expensive product&lt;/strong&gt; &lt;strong&gt;(KSh 3,750)&lt;/strong&gt; indicates a wide range of product affordability, catering to different customer segments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpkkyvsikxzkwzaqnxfpe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpkkyvsikxzkwzaqnxfpe.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nbq6bk46ibycp29m7kv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nbq6bk46ibycp29m7kv.png" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Trend Analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A. Does a Higher Discount Percentage Result in More Customer Reviews?&lt;/strong&gt;&lt;br&gt;
Based on the products with available review data, there is &lt;strong&gt;no strong positive relationship&lt;/strong&gt; between discount percentage and average number of reviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwq5wls14993gxv2ta5uv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwq5wls14993gxv2ta5uv.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While some highly discounted products attract many reviews, many others do not. Discount percentage alone does not appear to drive customer review volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Do Highly Rated Products Receive More Customer Reviews?&lt;/strong&gt;&lt;br&gt;
The evidence suggests a &lt;strong&gt;weak relationship&lt;/strong&gt; between ratings and review counts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4h1z9gor4bnp7tefmtcu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4h1z9gor4bnp7tefmtcu.png" alt=" " width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Highly rated products do not necessarily receive more reviews. Review count appears to depend more on popularity and sales volume than on ratings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Are Expensive Products Rated Higher Than Cheaper Products?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The dataset shows &lt;strong&gt;no consistent relationship&lt;/strong&gt; between price and rating.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqta7512qg088fd94idq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqta7512qg088fd94idq6.png" alt=" " width="800" height="784"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Expensive products are reasonably rated higher, while cheaper products edge out medium priced products. Product quality and customer satisfaction appear to have a stronger impact on ratings than price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;D. Top 5 Highest-Rated Products&lt;/strong&gt;&lt;br&gt;
Several products achieved the maximum rating of &lt;strong&gt;5.0/5&lt;/strong&gt;. The first five are:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0ul65qydkdkreso5yoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg0ul65qydkdkreso5yoy.png" alt=" " width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E. Top 5 Lowest-Rated Products&lt;/strong&gt;&lt;br&gt;
These products recorded the lowest customer satisfaction scores in the dataset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fon9iw9mx2akurqv831gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fon9iw9mx2akurqv831gj.png" alt=" " width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Product Performance Analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A. Top 10 Products with the Highest Discounts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmia52f8b1yck08x15rtx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmia52f8b1yck08x15rtx.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the highest-discounted products are low-priced household and decorative items. The highest observed discount is 64%, indicating aggressive promotional pricing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Top 10 Products with the Highest Number of Reviews&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjgdxct126r9q7jae7fpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjgdxct126r9q7jae7fpc.png" alt=" " width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaning tools, home improvement products, and crafting kits generate the highest customer engagement, attracting significantly more reviews than most other products.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Top 10 Highest-Rated Products&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw9y4yjalbh9398ka4o4p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw9y4yjalbh9398ka4o4p.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Most of the top-rated products are practical household items that combine affordability with functionality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;D. Products with High Discounts but Low Ratings&lt;/strong&gt;&lt;br&gt;
These products present a potential quality or customer satisfaction concern.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2uczfht2dlsv8iicx5l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2uczfht2dlsv8iicx5l.png" alt=" " width="800" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Large discounts do not necessarily indicate high product value. Several heavily discounted products received poor customer ratings, suggesting customers may have been dissatisfied with quality or performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;E. Products with Strong Customer Engagement&lt;/strong&gt;&lt;br&gt;
Strong engagement can be identified by combining &lt;strong&gt;high review volume&lt;/strong&gt; and &lt;strong&gt;good ratings.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sj6w50zzb7yrx0frds7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1sj6w50zzb7yrx0frds7.png" alt=" " width="799" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Seller Performance Analysis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A. Which Products Appear to Have Strong Customer Demand?&lt;/strong&gt;&lt;br&gt;
Products with both &lt;strong&gt;high review counts&lt;/strong&gt; and &lt;strong&gt;good ratings&lt;/strong&gt; are likely experiencing strong customer demand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0i8m8vsq26oxtie1d5hu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0i8m8vsq26oxtie1d5hu.png" alt=" " width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These products demonstrate a combination of:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strong customer interest (high review volume).&lt;/li&gt;
&lt;li&gt;High satisfaction levels (ratings above 4.0).&lt;/li&gt;
&lt;li&gt;Good market acceptance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;They should remain highly visible in promotions because they already perform well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Which Products May Require Better Pricing or Marketing Strategies?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6sziv9n8fduelbthunya.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6sziv9n8fduelbthunya.png" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Products with &lt;strong&gt;few reviews despite receiving substantial discounts&lt;/strong&gt; may not be attracting sufficient customer attention.&lt;br&gt;
These products are well-rated and heavily discounted but still attract very few reviews. This may indicate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Low product visibility.&lt;/li&gt;
&lt;li&gt;Ineffective marketing.&lt;/li&gt;
&lt;li&gt;Limited customer awareness.&lt;/li&gt;
&lt;li&gt;Niche market demand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Increasing advertising exposure could improve sales performance more effectively than offering additional discounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Are There Products Receiving Many Reviews but Having Average Ratings?&lt;/strong&gt;&lt;br&gt;
Yes. Several products receive substantial customer attention but achieve only average satisfaction scores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fok9p63idkhj96gkw0ric.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fok9p63idkhj96gkw0ric.png" alt=" " width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most notable example is the 120W Cordless Vacuum Cleaner, which generated the highest engagement in the dataset (69 reviews) but received a relatively poor rating (2.8/5).&lt;/p&gt;

&lt;p&gt;This suggests:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Strong demand and visibility.&lt;/li&gt;
&lt;li&gt;Product quality or performance issues.&lt;/li&gt;
&lt;li&gt;Potential risk of negative customer perception if improvements are not made.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;D. Are There Products with High Discounts but Low Customer Engagement?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes. Some products have very attractive discounts but attract little customer interaction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkr67zkj3e0l5kus7wx19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkr67zkj3e0l5kus7wx19.png" alt=" " width="800" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fccgb8fzcq7k079qbfykh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fccgb8fzcq7k079qbfykh.jpg" alt=" " width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Insights
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Customer engagement is influenced more by perceived value and product quality than by discount size.&lt;/li&gt;
&lt;li&gt;Highly rated products should receive greater promotional support to increase visibility and sales.&lt;/li&gt;
&lt;li&gt;Products with high engagement but poor ratings require quality improvements to protect customer satisfaction and brand reputation.&lt;/li&gt;
&lt;li&gt;Data-driven pricing strategies are likely to be more effective than broad discounting campaigns.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Recommendations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Focus on product quality improvements for products receiving low ratings despite high sales activity.&lt;/li&gt;
&lt;li&gt;Increase visibility of highly rated products through sponsored listings, featured placements, and targeted promotions.&lt;/li&gt;
&lt;li&gt;Maintain adequate stock levels for products demonstrating strong customer demand.&lt;/li&gt;
&lt;li&gt;Adopt strategic discounting rather than relying on large discounts to drive engagement.&lt;/li&gt;
&lt;li&gt;Monitor customer reviews continuously to identify product weaknesses and opportunities for improvement.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The analysis shows that &lt;strong&gt;customer satisfaction, product quality, and visibility are stronger drivers of success than large discounts.&lt;/strong&gt; Sellers who focus on delivering quality products, maintaining positive customer experiences, and using targeted marketing strategies are likely to achieve better long-term performance on Jumia.&lt;/p&gt;

</description>
      <category>dashboard</category>
      <category>ecommerce</category>
      <category>casestudy</category>
      <category>dataanalysis</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basics to Data Cleaning</title>
      <dc:creator>Donnex Okun</dc:creator>
      <pubDate>Wed, 09 Sep 2026 20:24:49 +0000</pubDate>
      <link>https://dev.to/dokun/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-2c0l</link>
      <guid>https://dev.to/dokun/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-2c0l</guid>
      <description>&lt;h1&gt;
  
  
  Introduction to Excel
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Data Cleaning&lt;/strong&gt; is the streamlining of data that is in disarray and poor in quality to make it more digestible for analysis. Excel has features thatv allow you to create reports for intepreting data e.g. Dashboards, Pivot tables amongst others.&lt;br&gt;
Data does not necessarily have to be in numbers, it can also be in text format.&lt;/p&gt;

&lt;h2&gt;
  
  
  Running Excel
&lt;/h2&gt;

&lt;p&gt;To open excel, go to the search bar, click on it, search Excel. Once highlighted, click on the open icon. &lt;br&gt;
The landing page is made up of three main areas namely:&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;The Home Area&lt;/strong&gt;: Is the main landing section which allows one to create a new workbook. It also enlists the recently opened files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcm2iptfok3aaoua644y4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcm2iptfok3aaoua644y4.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The New Area&lt;/strong&gt;:This is where you get to open a new blank excel file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9bdg79sjnhgkftuud9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9bdg79sjnhgkftuud9j.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Open Area&lt;/strong&gt; Allows you to browse from your PC and retrieve any file you may need to upload/open in excel.
**
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktbj76aht1af31jxrmtt.png" alt=" " width="799" height="423"&gt;**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When you create a blank workbook, it directs you to the homepage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Labelling of An Excel Worksheet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Excel Ribbon&lt;/strong&gt;: An area that has all the tool bars to be used in excel. It is the section that allows one to access the different tools to be used in excel. For example, the home section of the excel ribbon has different rules for different reasons clustered into: Clipboard;Font;Alignment;Number;Styles;Cells;Editing &amp;amp; Add-Ins.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl75l0gmldpcw71a89gyb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl75l0gmldpcw71a89gyb.png" alt=" " width="796" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Insert&lt;/strong&gt; section is crucial for reporting especially with the tables and chart icons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4v37izq0f2biw45ak6gp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4v37izq0f2biw45ak6gp.png" alt=" " width="798" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Draw&lt;/strong&gt; section presents drawing tools while the &lt;strong&gt;Formulas&lt;/strong&gt; section is a hub of mathematical and text functions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwehnhptglj0uqv428v3i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwehnhptglj0uqv428v3i.png" alt=" " width="800" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F14y0fvtvwg6gf6pyegay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F14y0fvtvwg6gf6pyegay.png" alt=" " width="800" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Data&lt;/strong&gt; section, you can connect your excel to a database and pull data from it. You can also forecast and present case scenarios under What-If Analysis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj1c0gaxro386pwpy9yt7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj1c0gaxro386pwpy9yt7.png" alt=" " width="798" height="85"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review panel is useful mostly to Informatio Analysts.It has the spelling and grammar checker function that allows for proofreading a dataset. You can also protect sheet to limit the number of viewers/access to the file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Terminologies Associated With Excel
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cell&lt;/strong&gt; - A single entry box.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cell Address&lt;/strong&gt; - A unique identifier of a particular cell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name box&lt;/strong&gt; - This is where a cell address is found. Columns are named alphabetically while Rows are named numerically in excel.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;formula&lt;/strong&gt; bar is where formulas are written and are always preceded by an equal sign.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiejcmbbyouj0drceom0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiejcmbbyouj0drceom0c.png" alt=" " width="800" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to Excel Cleaning
&lt;/h2&gt;

&lt;p&gt;Dates, Numbers and Boolean data entries are typically aligned to the right whereas text are usually aligned to the left.&lt;br&gt;
&lt;strong&gt;Quick Access&lt;/strong&gt; toolbar contains the icons for un-doing,re-doing and saving.&lt;br&gt;
N/B - Excel does not acknowledge dates outside a conventional calender year.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Range&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is a cell or a group of multiple cells highlighted together on a worksheet. A range doesn't always have to be linear.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Formatting&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Transforms the data to make it more professional and presentable. To autofit, go to the Home label on the ribbon, point to the format option and from the dropdown menu select autofit column width.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Wrapping a text&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To wrap text in Excel so it fits inside a cell, select the cell and click the Wrap Text button on the Home tab.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Validation
&lt;/h2&gt;

&lt;p&gt;Simply refers to conditioning excel to only accept certain prescribed instructions. To validate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the column to validate&lt;/li&gt;
&lt;li&gt;Go to the data field of the ribbon&lt;/li&gt;
&lt;li&gt;Under data tools, click on the tick icon dropdown menu&lt;/li&gt;
&lt;li&gt;Select data validation from the pop-up menu&lt;/li&gt;
&lt;li&gt;Under allow, select list from the dropdown menu&lt;/li&gt;
&lt;li&gt;Under source, list the column options separated by a comma the press okay.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydj2g70bhe3rdjztorny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydj2g70bhe3rdjztorny.png" alt=" " width="800" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu5qas5w4kt98l238v2kw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu5qas5w4kt98l238v2kw.png" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once a column is validated, no other entry can be made to a cell within within the column other than the listed options.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t8i7mjqog6tmjbamdrl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t8i7mjqog6tmjbamdrl.png" alt=" " width="799" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Validation can be made for numerical values as well including ranges.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conditional Formatting
&lt;/h2&gt;

&lt;p&gt;A tool that changes the appearance of cells based on the conditions you define. It does not alter the data itself but how it is presented. It can be used to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highlight outliers.&lt;/li&gt;
&lt;li&gt;Visualize trends using data bars.&lt;/li&gt;
&lt;li&gt;To identify missing information.&lt;/li&gt;
&lt;li&gt;To detect patterns.&lt;/li&gt;
&lt;li&gt;To improve data readability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Functions
&lt;/h2&gt;

&lt;p&gt;Functions are built-in formulas used to calculate results automatically. Operators such as Addition, Subtraction, Multiplication, Division, Exponent can be easily performed by these formulas.&lt;br&gt;
Core Statistical and Mathematical Functions: &lt;/p&gt;

&lt;p&gt;=SUM: Totals numeric values within a defined range.&lt;/p&gt;

&lt;p&gt;=AVERAGE: Determines the arithmetic mean of a dataset.&lt;/p&gt;

&lt;p&gt;=MIN/MAX: Ranks the lowest and highest values in a range, highlighting extreme variables.&lt;/p&gt;

&lt;p&gt;=MEDIAN: Determines the middle value useful in mitigating the perceptive skew of outliers.&lt;/p&gt;

&lt;p&gt;=MODE: States the most frequently occurring value in an array.&lt;/p&gt;

&lt;p&gt;=PRODUCT: Multiplies all numbers as given.&lt;/p&gt;

&lt;p&gt;=SQRT:Establishes the positive square root of a specific value.&lt;/p&gt;

&lt;p&gt;=POWER:Raises a base number to a specified exponential power.&lt;/p&gt;

&lt;h3&gt;
  
  
  Date and Time Functions
&lt;/h3&gt;

&lt;p&gt;=TODAY(): Displays the current system date, updating automatically realtime.&lt;br&gt;
=NOW(): Generates the exact current date and precise timestamp.&lt;br&gt;
=YEAR(date)/=MONTH(date)/=DAY(date): Extracts the isolated integer value of the year, month, or day from a target date cell.&lt;br&gt;
=DATE(year, month, day): Synthesizes individual year, month, and day integers back into a structured Excel date format.&lt;br&gt;
=NETWORKDAYS(start_date, end_date, [holidays]): Computes the exact number of working days between two dates, automatically excluding weekends and optionally accounting for a custom list of holidays.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text functions for Data Cleaning
&lt;/h3&gt;

&lt;p&gt;Can be used to eliminate extra spaces in a cell. The find and replace prompt is the most basic and common one however,there exists a plethora of these including:&lt;/p&gt;

&lt;p&gt;TRIM: =TRIM(text) removes all leading spaces, trailing spaces, and redundant consecutive spaces from a text string.&lt;br&gt;
LOWER: =LOWER(text) changes every character in a text string into lowercase.&lt;br&gt;
UPPER: =UPPER(text) converts text entirely into uppercase characters.&lt;br&gt;
PROPER: =PROPER(text) creates proper text by capitalizing the first letter of each word and lowering the remaining letters.&lt;br&gt;
LEN: =LEN(text) counts the total character length of a text in a cell including spaces and punctuation. This is highly useful for validating structural lengths like phone numbers or postal codes.&lt;br&gt;
LEFT/RIGHT: = Extracts a specified number of characters starting from the left or right of a cell.&lt;br&gt;
MID: = Extracts a character segment from the middle of a dataset based on a designated starting position and character count.&lt;br&gt;
CONCATENATE/CONCAT:Brings multiple text data cells together into a single, cohesive text block.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pivot Tables and Charts
&lt;/h2&gt;

&lt;p&gt;A pivot table is basically a summary table which sums large datasets by grouping,counting,averaging or aggregating based on the selected fields. It does not alter the raw data, it only presents it in a different format.It is key to note that the abscence of headers creates breaks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating a Pivot Table
&lt;/h2&gt;

&lt;p&gt;Under the insert icon on the ribbon,click on Pivot Table.&lt;br&gt;
From the dropdown, click on OK to create a New Worksheet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0m1xe7yqyswgfijphma2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0m1xe7yqyswgfijphma2.png" alt=" " width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rows is for grouping categories, Values is for what is being calculated. Columns is for creating comparative layers or subcategorizing your dataset further.You can drag as many columns into the filter's section to filter a field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0hju22df0jerzrgefkze.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0hju22df0jerzrgefkze.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of filters, it is advisable to use Slicers as they are more interactive and visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Mastering Excel is a journey that starts from foundational data cleaning to advanced dashboard reporting. As detailed across these modules, data integrity is the bedrock of all reliable analytics. By using text cleaning functions like TRIM, PROPER, and case adjusters, you transform disorganized datasets into accurate, structured information. Implementing strict Data Validation rules protects your workspace from future entry errors, while Conditional Formatting brings key visual patterns and outliers to light without altering the underlying numbers.The true analytical power of Excel emerges when you summarize this clean data using Pivot Tables and Pivot Charts. &lt;/p&gt;

&lt;p&gt;Moving beyond traditional dropdown filters to interactive Slicers allows you to build dynamic, presentation-ready dashboards. These tools do more than just summarize rows and columns; they turn raw data into a responsive, visual narrative. With these core skills—from initial cell formatting to multi-table report connections—you can confidently transform complex data environments into clear, actionable business insights.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
      <category>basic</category>
      <category>learning</category>
    </item>
    <item>
      <title>My First Github Project: From a Local Folder to Github Using Git and SSH</title>
      <dc:creator>Donnex Okun</dc:creator>
      <pubDate>Sun, 30 Aug 2026 17:26:06 +0000</pubDate>
      <link>https://dev.to/dokun/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-5bmn</link>
      <guid>https://dev.to/dokun/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-5bmn</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;After so much belabouring which felt like a paralysis analysis, Monday 10th August 2026 marked my formal leap into the vast space of data. In this article, I will share with you my maiden experience in the initial week leading to my first ever GitHub project while recounting each step along the way. We got introduced to platforms such as Dev.to, Markdown, Git and GitHub, Dbeaver, Visual Studio Code, Windows PowerShell, Zoho Cliq, PostgreSQL, Iven amongst other tools. The instructor stressed that the first week would be laidback, focussing more on the installation of requisite tools than active learning. This helped ease some of the tension from those in attendance as there had been plenty of &lt;em&gt;higi haga&lt;/em&gt; stemming from the teething challenges of a new cohort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction to Dev.to
&lt;/h2&gt;

&lt;p&gt;Dev.to&lt;a href="//Dev.to"&gt;&lt;/a&gt; was the first to be installed. This is the tool for writing articles and one must therefore setup an account using their Google credentials. One key feature of &lt;a href="//dev.to"&gt;dev.to&lt;/a&gt; is that it stems what you have written to your profile. It also brings together a community of developers with diverse interests and can therefore act as a repository for harnessing theoretical knowledge. The platform has evolved with time to create job opportunities in the form of Technical Writing. Once logged in, navigating through is pretty simple as the user interface mirrors a blend of &lt;a href="https://dev.toFacebook"&gt;&lt;/a&gt; and &lt;a href="https://dev.toLinkedIn"&gt;&lt;/a&gt; social networks. &lt;/p&gt;

&lt;h3&gt;
  
  
  DEV Challenges
&lt;/h3&gt;

&lt;p&gt;Occasionally, there are tech challenges in the form of mini Hackathons that provide a fun way of building up experience or showcasing learnt skills to the community and even potential employers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reading Lists
&lt;/h3&gt;

&lt;p&gt;This is &lt;strong&gt;basically&lt;/strong&gt; an assorted list of articles under your readership.&lt;/p&gt;

&lt;h3&gt;
  
  
  DEV++ Rewards
&lt;/h3&gt;

&lt;p&gt;This is an incentive program for participating in DEV challenges.&lt;/p&gt;

&lt;h3&gt;
  
  
  DEV Education Tracks
&lt;/h3&gt;

&lt;p&gt;Curated learning programs balancing between expertise and hands-on experience to come up with practical solutions.&lt;br&gt;
The Dashboard displays account activities over time. &lt;/p&gt;

&lt;h2&gt;
  
  
  Markdown Language
&lt;/h2&gt;

&lt;p&gt;Is a simple markup language used for text formatting. It switches between two user interfaces, the Edit page where all the primary writing happens and the Preview page that displays the output.&lt;br&gt;
Rules and formatting techniques include:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Titles&lt;/strong&gt;: Must be short, clear, easily searchable, understandable and properly capitalized.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Headings&lt;/strong&gt;: Use # for the main heading, ## for subheadings &amp;amp; ### for third-level headings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Paragraph Length&lt;/strong&gt;: Keep paragraphs concise, ideally 120-150 words to ensure readability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Styling&lt;/strong&gt;: Use ** for bold text and _ for italics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Documentation&lt;/strong&gt;: Use single backticks (or single quotes as specified by the platform) for inline code and triple backticks for blocks of code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structuring Content&lt;/strong&gt;: Introductions should begin with a generic, topic related sentence before narrowing down to the article's specific scope. Conclusions are recommended to summarize the technical process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other Formatting&lt;/strong&gt;: Adding cover images (via! &lt;a href=""&gt;&lt;/a&gt; and URL links.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;br&gt;
In day 2, the session started off with downloading and installing PostgreSQL. This is the database management system. A data tools installation guide had been previously shared which eased this process. Alternatively, one can download the tool from their web browser and follow guidelines as stipulated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dbeaver&lt;/strong&gt;&lt;br&gt;
This is an application that allows users to interact with databases more easily. It can therefore be interlinked to various database platforms including PostgreSQL, MySQL, Oracle. etc.&lt;br&gt;
One therefore needs not download all the database platforms but instead can connect them through the cloud using Dbeaver. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aiven&lt;/strong&gt;&lt;br&gt;
A cloud data platform through which you can create and manage services including PostgreSQL &amp;amp; MySQL. For our onboarding session, we used the free version which only allows one service to run at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MySQL&lt;/strong&gt;&lt;br&gt;
Abbreviation for My Structured Query Language, this is a relational database management system that stores, organizes and manages data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Github&lt;/strong&gt;&lt;br&gt;
A cloud-based developer platform used to store, manage and share software code. It is advisable to stay professional while setting up your account because it will act as your resume even when seeking opportunities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt;&lt;br&gt;
A control software system that is designed to manage versions of source code or data. It is capable of handling everything from small to large projects with speed and efficiency. It manages projects on a local host whereas GitHub showcases your projects on a cloud-based environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository&lt;/strong&gt;&lt;br&gt;
Sometimes referred to as repo,this is a project being tracked by Git. A GitHub repository is therefore where files and projects are stored with a trail of their historical chronology. Some of the common commands you will come across include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;COMMIT&lt;/strong&gt;which is a saved checkpoint in your project's history, is a command issued to permanently save all the data modifications during an ongoing project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PUSH&lt;/strong&gt; means sending data from a primary producer system into a database or server without waiting for a request. For example, creating a new user profile or Log In entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PULL&lt;/strong&gt; is the opposite of push and means requesting and retrieving information from a source, such as a database server, an API, or an external file, rather than having that data automatically sent to you. Here, it is the data consumer who initiates the action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLONE&lt;/strong&gt; means to download an existing data repository to your local computer as a Git repository. It allows users to read, write, modify, query and test data without changing the original source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FORK&lt;/strong&gt; is to tweak a clone by creating an independent point-in-time copy without affecting the production database.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To check if a tool has been installed on Git bash, the following command applies.&lt;br&gt;
&lt;code&gt;git --version&lt;/code&gt; then press enter (where git can be replaced with any other applicable tool)&lt;/p&gt;

&lt;p&gt;If the result is a defined version, then the tool is installed if the outcome is otherwise, then the tool is yet to be installed.&lt;br&gt;
To configure your identity, Git will require your name and email address.&lt;br&gt;
N/B: Your email address must match the one used to create your GitHub account.&lt;/p&gt;

&lt;p&gt;The commands to use are:&lt;br&gt;
&lt;code&gt;git config --global user.name "Your Full Name"&lt;/code&gt; for User Name and&lt;br&gt;
&lt;code&gt;git config --global user.email "Your Email Address"&lt;/code&gt; for Email Address&lt;br&gt;
To set Main as the branch, you use:&lt;br&gt;
&lt;code&gt;git config --global init.defaultBranch main&lt;/code&gt; then enter.&lt;/p&gt;

&lt;p&gt;Once done, you need to verify the configuration through the following commands:&lt;br&gt;
&lt;code&gt;git config --global user.name&lt;/code&gt; for User Name&lt;br&gt;
&lt;code&gt;git config --global user.email&lt;/code&gt; for Email Address&lt;br&gt;
To get a summary of the three, key in the following command&lt;br&gt;
&lt;code&gt;git config --global --list&lt;/code&gt; then press enter&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating An SSH Key
&lt;/h2&gt;

&lt;p&gt;This is to enable the integration of the GitHub and Git for a seamless integration of the two platforms thereby easing way for the exchange of data. By generating an SSH Key, one bypasses the password and authentication restrictions characteristic of a GitHub account.&lt;/p&gt;

&lt;p&gt;First to be generated is your private key which is to be stored in your local computer and must remain confidential.&lt;br&gt;
The second is the public key which will be posted on your GitHub account for public consumption. To generate it, you basically add &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;pub&amp;gt; to the private key.&lt;br&gt;
Run the following command to establish if it has already been generated.&lt;br&gt;
&lt;code&gt;ls ~al ~/.ssh&lt;/code&gt;&lt;br&gt;
If not, run the following command.&lt;br&gt;
&lt;code&gt;ssh-keygen -t ed25519 -C "your_email@example.com"&lt;/code&gt;&lt;br&gt;
Then create a passphrase that you will easily recall and confirm.&lt;br&gt;
This should generate and save the keys on your local PC.&lt;br&gt;
The key fingerprint and a random art image will also be generated.&lt;br&gt;
Then rerun the command &lt;code&gt;ls ~al ~/.ssh&lt;/code&gt; to regenerate the keys.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In summary, the initial week of data onboarding focused on installing essential development tools, configuring Git and GitHub, and setting up database management systems like PostgreSQL and MySQL. Key practices include utilizing Markdown for documentation, managing local and cloud repositories with Git commands, and establishing secure SSH key integration. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>showdev</category>
      <category>learning</category>
      <category>writing</category>
    </item>
  </channel>
</rss>
