<?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: Leah Kivuti</title>
    <description>The latest articles on DEV Community by Leah Kivuti (@leah_kivuti_be52fd03ba0f5).</description>
    <link>https://dev.to/leah_kivuti_be52fd03ba0f5</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3841230%2F461e30a2-d4c7-4ee8-9c32-162fc43c728c.png</url>
      <title>DEV Community: Leah Kivuti</title>
      <link>https://dev.to/leah_kivuti_be52fd03ba0f5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leah_kivuti_be52fd03ba0f5"/>
    <language>en</language>
    <item>
      <title>How to Publish a Power BI Report and Embed It on a Website (Step-by-Step Guide)</title>
      <dc:creator>Leah Kivuti</dc:creator>
      <pubDate>Mon, 06 Apr 2026 07:21:06 +0000</pubDate>
      <link>https://dev.to/leah_kivuti_be52fd03ba0f5/how-to-publish-a-power-bi-report-and-embed-it-on-a-website-step-by-step-guide-297b</link>
      <guid>https://dev.to/leah_kivuti_be52fd03ba0f5/how-to-publish-a-power-bi-report-and-embed-it-on-a-website-step-by-step-guide-297b</guid>
      <description>&lt;p&gt;When you first start using Power BI, it’s exciting to build dashboards and reports that turn raw data into something meaningful. But at some point, you’ll want to share your work with others in a way that’s simple, interactive, and accessible from anywhere.&lt;/p&gt;

&lt;p&gt;That’s where publishing and embedding come in.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll walk you through how to take a report you’ve created in Power BI, publish it to the web, and embed it into a website. Whether you’re a student, a data analyst, or just someone exploring data tools, this process is an essential skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Power BI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI is a business intelligence tool developed by Microsoft that helps you analyze data and present it through interactive visuals like charts, graphs, and dashboards. Instead of static reports, Power BI lets users explore data by clicking, filtering, and drilling down into details.&lt;/p&gt;

&lt;p&gt;You typically build reports in Power BI Desktop, then publish them to the Power BI Service, which is the online platform where your reports are hosted and shared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Publish and Embed a Report?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Publishing your report allows you to:&lt;/p&gt;

&lt;p&gt;Access it from anywhere&lt;br&gt;
Share it with others easily&lt;br&gt;
Collaborate with teams&lt;/p&gt;

&lt;p&gt;Embedding takes it a step further by allowing you to display your report inside a website, blog, or portfolio. This is especially useful if you want to showcase your work or build data-driven applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create a Workspace&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before uploading your report, you need a workspace in Power BI Service. A workspace is like a container where your reports, dashboards, and datasets are stored.&lt;/p&gt;

&lt;p&gt;Here’s how to create one:&lt;/p&gt;

&lt;p&gt;Go to the Power BI Service in your browser&lt;br&gt;
Sign in to your account&lt;br&gt;
On the left sidebar, click on Workspaces&lt;br&gt;
Click Create a workspace&lt;br&gt;
Enter a name and click Save&lt;/p&gt;

&lt;p&gt;Once created, your workspace will appear in the list and will be ready to use.&lt;/p&gt;

&lt;p&gt;Screenshot idea: Show the workspace creation screen with the name field filled&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Publish Your Report from Power BI Desktop&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you have a workspace, the next step is to upload your report.&lt;/p&gt;

&lt;p&gt;Open your report in Power BI Desktop&lt;br&gt;
Click the Publish button in the top right corner&lt;br&gt;
Select the workspace you created&lt;br&gt;
Click Select&lt;/p&gt;

&lt;p&gt;After a few seconds, your report will be uploaded.&lt;/p&gt;

&lt;p&gt;To confirm:&lt;/p&gt;

&lt;p&gt;Go back to Power BI Service&lt;br&gt;
Open your workspace&lt;br&gt;
You should see your report listed there&lt;/p&gt;

&lt;p&gt;Screenshot idea: Publish button and success message&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Generate the Embed Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once your report is online, you can generate a code that allows it to be embedded into a website.&lt;/p&gt;

&lt;p&gt;Open your report in Power BI Service&lt;br&gt;
Click File&lt;br&gt;
Select Embed report&lt;br&gt;
Choose Publish to web (public)&lt;br&gt;
Click Create embed code&lt;br&gt;
Copy the iframe code provided&lt;/p&gt;

&lt;p&gt;Important: This method makes your report publicly accessible. Anyone with the link can view it, so avoid using it for confidential or sensitive data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Embedding the Report on a Website&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once your report is published and you have generated the embed link in Power BI Service, the next step is to place it on a website.&lt;/p&gt;

&lt;p&gt;In Power BI Service, open your report, click on File, then select Embed report, and choose Publish to web. If you haven’t done this before, you will be prompted to create an embed link. Once created, Power BI will give you a link that is used to display your report outside the platform.&lt;/p&gt;

&lt;p&gt;To embed the report on a website, you need to use that link inside your website’s HTML editor. Most websites have a section where you can insert custom content, such as dashboards or videos. This is where the report goes.&lt;/p&gt;

&lt;p&gt;If you are working with a simple website, you would place the embed link inside an embed container so that the report appears directly on the page. If you are using platforms like WordPress or Wix, you can use their built-in “embed” or “custom HTML” feature and paste the link there.&lt;/p&gt;

&lt;p&gt;After adding the link, save your changes and open the page in a browser. Your Power BI report should now appear within the website, fully interactive. Users will be able to click on visuals, apply filters, and explore the data just like they would inside Power BI.&lt;/p&gt;

&lt;p&gt;It’s always a good idea to test your page after embedding. Make sure the report loads correctly and fits well within the layout. You may need to adjust spacing or sizing depending on how your website is designed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here are a few things to keep in mind:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Make sure your visuals are clean and easy to understand before publishing&lt;br&gt;
Use proper titles and labels so viewers can follow your report&lt;br&gt;
Test your embedded report on different screen sizes&lt;br&gt;
Avoid publishing sensitive data using public embed links&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Publishing and embedding a Power BI report is one of the best ways to share your work with the world. It transforms your report from something that sits on your computer into something interactive that anyone can access online.&lt;/p&gt;

&lt;p&gt;Once you get used to the process, it becomes very straightforward. Create a workspace, publish your report, generate the embed code, and place it on your website. That’s all it takes.&lt;/p&gt;

&lt;p&gt;If you’re building a portfolio or working on data projects, this is a powerful way to present your work and stand out.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Understanding Data Modeling in Power BI: Joins, Relationships, and Schemas Explained.</title>
      <dc:creator>Leah Kivuti</dc:creator>
      <pubDate>Sat, 04 Apr 2026 09:02:48 +0000</pubDate>
      <link>https://dev.to/leah_kivuti_be52fd03ba0f5/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-4a6f</link>
      <guid>https://dev.to/leah_kivuti_be52fd03ba0f5/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-4a6f</guid>
      <description>&lt;p&gt;Two weeks ago I had no idea what Power BI is, what data modeling means, or why people keep talking about joins and relationships. Everything sounded complicated and honestly, a bit overwhelming. But as I started learning step by step, I realized these concepts are actually very logical and easy to understand when explained in a simple way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let us start with joins, because that is where most people begin when working with data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When working with data, we often have multiple tables that need to be connected. For example, you might have a customers table and a sales table. The customers table contains details like customer names, while the sales table contains transactions such as what was bought and how much was spent. These tables are connected using a common column like Customer ID.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is where joins come in.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A join helps us combine data from two tables based on a common column. But not all joins behave the same way. Each type of join answers a different kind of question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A left join&lt;/strong&gt; keeps all the records from the left table and then checks if there is a match in the right table. If there is a match, it brings in the data. If there is no match, it still keeps the record from the left table and leaves the other side blank. This is useful when you want a complete list from one table and just want to see which ones have matching data in another table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A right join&lt;/strong&gt; does the opposite. It keeps all records from the right table and checks for matches in the left table. Even if there is no match, the records from the right table are still included.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A full outer join&lt;/strong&gt; keeps everything from both tables. Whether there is a match or not, all records are included. This is useful when you want to see all possible data from both sides and identify where matches exist and where they do not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An inner join&lt;/strong&gt; is strict. It only keeps records that exist in both tables. If there is no match, the data is removed. This is useful when you only care about matching records.&lt;/p&gt;

&lt;p&gt;Then we also have &lt;strong&gt;anti joins.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A left anti join&lt;/strong&gt; shows records that exist in the left table but do not have a match in the right table. For example, customers who have never made a purchase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A right anti-join&lt;/strong&gt; shows records that exist in the right table but do not have a match in the left table. For example, transactions that are not linked to any known customer.&lt;/p&gt;

&lt;p&gt;So every time we want to answer a question using joins, we must tell the system exactly how to connect the tables. We have to choose the type of join and apply it manually depending on what we are trying to achieve.&lt;/p&gt;

&lt;p&gt;This is how things work in SQL and in many traditional data systems. However, Power BI works a bit differently, and this is where things become more interesting.&lt;/p&gt;

&lt;p&gt;In Power BI, we do not usually write joins every time we build a report. Instead, we define relationships between tables once, and Power BI automatically uses those relationships whenever we create visuals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A relationship&lt;/strong&gt; is simply a connection between two tables using a common column. Once you define that connection, Power BI understands how data in one table relates to data in another table. This is what allows you to combine data from different tables in a single visual.&lt;/p&gt;

&lt;p&gt;For example, imagine you are building a bar chart that shows customer names and total quantity purchased. The customer name comes from the customers table, while the quantity comes from the sales table. These fields are not in the same table, but because there is a relationship between them using Customer ID, Power BI is able to bring them together in one visual. Without that relationship, this would not be possible.&lt;/p&gt;

&lt;p&gt;Relationships also allow filtering across tables. If you select a specific customer, the sales data automatically updates to show only that customer’s transactions. This happens because Power BI understands how the tables are connected. This brings out a key difference between joins and relationships.&lt;/p&gt;

&lt;p&gt;Joins are &lt;strong&gt;temporary.&lt;/strong&gt; You create them each time you need them, and they physically combine tables into one.&lt;/p&gt;

&lt;p&gt;Relationships are more &lt;strong&gt;permanent.&lt;/strong&gt; Once you define them, they stay in your model and are used automatically whenever you build reports, unless you remove them.&lt;/p&gt;

&lt;p&gt;Understanding this difference is very important because it changes how you think about working with data in Power BI.&lt;/p&gt;

&lt;p&gt;Instead of repeatedly combining tables, you focus on building a clean data model where tables are properly connected. Once that is done, everything else becomes much easier.&lt;br&gt;
After understanding joins and relationships, the next important concept in data modeling is cardinality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cardinality&lt;/strong&gt; describes the nature of the relationship between two tables. In simple terms, it explains how data repeats across tables. It helps Power BI understand how tables interact and how filters behave when you are building reports.&lt;/p&gt;

&lt;p&gt;Most of the time, especially when working with fact and dimension tables, you will deal with one-to-many relationships. This is the most common type.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;one-to-many relationship&lt;/strong&gt; means one record in one table is linked to many records in another table. For example, one customer can make many purchases. So in this case, the customer's table has one record for that customer, but the sales table can have multiple records for the same customer. When you look at it from the other direction, it becomes &lt;strong&gt;many-to-one&lt;/strong&gt;, meaning many sales belong to one customer. It is the same relationship, just viewed differently.&lt;/p&gt;

&lt;p&gt;The second type is &lt;strong&gt;one-to-one&lt;/strong&gt;. This is less common and happens when each record in one table matches exactly one record in another table. A good example is an employee and their ID. One employee has one ID, and that ID belongs to only one employee. There is no duplication on either side.&lt;/p&gt;

&lt;p&gt;The third type is &lt;strong&gt;many-to-many.&lt;/strong&gt; This happens when multiple records in one table relate to multiple records in another table. For example, students and courses. One student can take many courses, and one course can have many students. These relationships can be more complex and should be handled carefully. In most cases, it is better to structure your data in a way that avoids many-to-many relationships where possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now, let us connect this to fact and dimension tables.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;fact table&lt;/strong&gt; stores transactions or events. It tells you what happened. For example, a sales table records each purchase, including values like quantity and total sales. Each row represents a single transaction.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;dimension table&lt;/strong&gt; provides context to those transactions. It answers questions like who made the purchase, what was bought, and where it happened. For example, customers, products, and stores are all dimension tables because they describe the data in the sales table.&lt;/p&gt;

&lt;p&gt;In most well-structured models, you will find one-to-many relationships between dimension tables and the fact table. One customer links to many sales, one product links to many sales, and one store links to many sales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now, let us look at how relationships are created in PowerBI.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI can automatically detect relationships if columns have the same names. However, this is not always accurate. For example, it might try to connect two columns named city from different tables, even when they are not actually related. This can create incorrect relationships. Because of this, it is always important to review and create relationships manually.&lt;/p&gt;

&lt;p&gt;To create or manage relationships, go to Manage Relationships in Power BI. From there, you can add a new relationship by selecting the two tables and choosing the common column. You also define the cardinality and confirm the connection.&lt;/p&gt;

&lt;p&gt;Another way is to use Model View, where you can drag one column from a table and drop it onto a matching column in another table. It is also important to know that relationships can be active or inactive.&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;active relationship&lt;/strong&gt; is the one Power BI uses by default when building visuals. An inactive relationship exists in the model, but is not used unless you specifically activate it in your calculations. You can have multiple relationships between two tables, but only one can be active at a time.&lt;/p&gt;

&lt;p&gt;One practical tip is to ensure your column names are clear and consistent. For example, renaming columns like ID to Customer ID, Product ID, or Store ID makes it easier to identify and create correct relationships.&lt;/p&gt;

&lt;p&gt;In summary, cardinality helps define how tables are connected, fact tables store what happened, dimension tables describe what happened, and relationships bring everything together in Power BI. When these are set up correctly, your reports become much easier to build and understand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Now, let us talk about filter direction, which is very important when working with relationships.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you create a relationship, Power BI needs to know how filters should flow between tables. This is called &lt;strong&gt;cross-filter direction.&lt;/strong&gt; In most cases, especially in a proper data model, filters flow from dimension tables to the fact table.&lt;/p&gt;

&lt;p&gt;This means if you filter by customer, product, or store, it will affect the sales table. For example, if you select a specific customer, the sales data will automatically update to show only transactions related to that customer. The same happens if you filter by product or store. This is why relationships are so powerful.&lt;/p&gt;

&lt;p&gt;For example, you can create a chart that shows the total quantity by customer name. The quantity comes from the sales table, while the customer name comes from the customers table. Because there is a relationship between them, Power BI is able to combine these fields correctly.&lt;/p&gt;

&lt;p&gt;If the relationship does not exist, the visual will not work as expected. You might only see totals that do not break down properly, or Power BI might not know how to connect the data at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The same applies when using slicers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slicers&lt;/strong&gt; are simply filters in Power BI. You can create slicers using fields like customer name, product name, or store name. When your relationships are set correctly, selecting a value in one slicer will affect all related visuals in your report.&lt;/p&gt;

&lt;p&gt;For example, selecting a customer should update charts showing product sales and store performance. If this is not happening, it usually means your relationships are missing, incorrect, or inactive.&lt;/p&gt;

&lt;p&gt;Power BI also allows two types of cross-filter direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single direction&lt;/strong&gt; is the default and most recommended. Filters flow in one direction, usually from dimension tables to the fact table. This keeps your model simple and avoids confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Both directions&lt;/strong&gt; allow filters to move in both directions between tables. This can be useful in some advanced scenarios, especially with many-to-many relationships, but it should be used carefully because it can create ambiguity and unexpected results.&lt;/p&gt;

&lt;p&gt;In summary, after creating relationships, you must ensure they are correct, active, and properly configured. Renaming columns helps avoid confusion, removing incorrectly detected auto relationships improves accuracy, and understanding cross-filter direction ensures your data behaves as expected.&lt;/p&gt;

&lt;p&gt;When all these are set correctly, your visuals, filters, and reports will work smoothly and give you accurate insights.&lt;/p&gt;

&lt;p&gt;Now that we understand joins, relationships, cardinality, and filter direction, we can define data modeling more clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data modeling&lt;/strong&gt; is the process of organizing your data into structured tables and defining how those tables relate to each other so that analysis becomes easy and meaningful. It is not just about connecting data, but about designing how that data should be structured from the beginning.&lt;/p&gt;

&lt;p&gt;You decide what goes into the fact table, what belongs in dimension tables, and how everything connects. That structure is what we call a &lt;strong&gt;data model.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are different ways to structure this model, and these are called &lt;strong&gt;schemas.&lt;/strong&gt; Let us start with the simplest one, the flat table.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;flat table&lt;/strong&gt; is a single table that contains all the data in one place. There are no separate fact or dimension tables, and there are no relationships. Everything is stored together.&lt;/p&gt;

&lt;p&gt;Flat tables are very common because this is how data is usually collected or exported. For example, when you download data from a system or scrape data from the web, it often comes as one large table. They are easy to read and understand because everything is in one place. You can quickly look at the table and understand what is happening without needing to connect multiple tables.&lt;/p&gt;

&lt;p&gt;However, flat tables are not ideal for analysis, especially when the data becomes large. One major issue is &lt;strong&gt;data duplication.&lt;/strong&gt; The same values, such as customer names, product names, or locations, are repeated many times. This increases the size of the data and reduces performance.&lt;/p&gt;

&lt;p&gt;Another issue is &lt;strong&gt;maintenance.&lt;/strong&gt; If something changes, for example, a store location or a product name, you have to update it in many rows. This is time-consuming and can lead to inconsistencies. Flat tables can also become very large and slow as more data is added. This makes them harder to manage and less efficient for reporting.&lt;/p&gt;

&lt;p&gt;Because of these limitations, we move from flat tables to more structured models called &lt;strong&gt;schemas.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Schemas help us organize data properly by separating it into fact and dimension tables and connecting them using relationships. This reduces duplication, improves performance, and makes analysis easier.&lt;/p&gt;

&lt;p&gt;The two main schemas used in data modeling are the &lt;strong&gt;star schema ** and the **snowflake schema,&lt;/strong&gt; which we will explore next.&lt;/p&gt;

&lt;p&gt;A schema is simply the structure of how your tables are organized and connected. It defines how your data is arranged so that it is easy to understand and analyze.&lt;/p&gt;

&lt;p&gt;The most common and most recommended schema in Power BI is the &lt;strong&gt;star schema.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A star schema is a structure where you have one central fact table, and then multiple dimension tables connected directly to it. When you look at it in Model View, it actually looks like a star, with the fact table at the center and the dimension tables spreading out around it.&lt;/p&gt;

&lt;p&gt;For example, you can have a sales table at the center. This is your fact table because it stores transactions. Then you connect it directly to dimension tables like customers, products, and stores. All these dimension tables link directly to the sales table, not to each other.&lt;/p&gt;

&lt;p&gt;As long as you have one central fact table and multiple dimension tables connected directly to it, you have a star schema. This is the most commonly used schema because it is simple, clear, and efficient.&lt;/p&gt;

&lt;p&gt;First, it reduces data duplication compared to a flat table. Instead of repeating customer names, product names, or store details many times, you store them once in their own tables.&lt;/p&gt;

&lt;p&gt;Second, it is easy to understand. You can quickly look at the model and identify the fact table and the dimension tables without confusion.&lt;/p&gt;

&lt;p&gt;Third, it is easier to build and works very well with Power BI. It improves performance and makes reporting faster.&lt;/p&gt;

&lt;p&gt;Because of these advantages, most professional Power BI models are built using the star schema.&lt;/p&gt;

&lt;p&gt;In a star schema, the fact table stores events or transactions, while the dimension tables provide context. Relationships connect the tables, and cardinality defines how they relate.&lt;/p&gt;

&lt;p&gt;However, there is another type of schema called the &lt;strong&gt;snowflake schema.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A snowflake schema is a more advanced version of the star schema. It starts as a star schema, but then the dimension tables are further broken down into smaller related tables.&lt;/p&gt;

&lt;p&gt;This process of breaking down tables is called &lt;strong&gt;normalization.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Normalization means organizing data in such a way that reduces duplication and improves data consistency. Instead of storing the same information repeatedly in one table, you split it into multiple tables and connect them using IDs.&lt;/p&gt;

&lt;p&gt;For example, instead of having a customer's table that contains customer name, city, county, region, and country all in one place, you can break it down.&lt;/p&gt;

&lt;p&gt;You can have a customers' table with customer ID and city ID. Then you create a cities table that contains city details. That cities table can link to a counties table, and the counties table can link to a regions table.&lt;/p&gt;

&lt;p&gt;So instead of repeating city, county, and region information for every customer, you store each piece of information once and connect them using relationships.&lt;/p&gt;

&lt;p&gt;This creates a chain-like structure.&lt;/p&gt;

&lt;p&gt;The fact table connects to a dimension table, which connects to another dimension table, and so on. This branching structure is what forms a snowflake schema.&lt;/p&gt;

&lt;p&gt;Compared to the star schema, the snowflake schema has some advantages. It reduces data duplication even further. It improves data consistency because changes are made in one place. It works well for hierarchical data, such as city to county to region to country.&lt;/p&gt;

&lt;p&gt;However, it also has disadvantages.&lt;/p&gt;

&lt;p&gt;It is more complex to understand because it has more tables. It is harder to build and manage. It can slow down reporting if not designed properly. It is more difficult to debug when something goes wrong.&lt;/p&gt;

&lt;p&gt;Because of this, the snowflake schema is usually used in more advanced scenarios, especially when dealing with very large datasets or hierarchical data.&lt;/p&gt;

&lt;p&gt;In most cases, especially for beginners and for building dashboards, the star schema is the best choice.&lt;/p&gt;

&lt;p&gt;To summarize, schemas define how your data model is structured. A star schema is simple, fast, and widely used, with one fact table connected directly to dimension tables. A snowflake schema is more complex, where dimension tables are further broken down into smaller related tables through normalization.&lt;/p&gt;

&lt;p&gt;Understanding these two schemas is important because they form the foundation of how you design efficient and scalable data models in Power BI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common mistakes to avoid when building data models&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some common mistakes often happen when building data models, especially when you are still learning how Power BI works. One of the most frequent issues is &lt;strong&gt;missing relationships between tables.&lt;/strong&gt; When tables are not properly connected, your visuals may not respond as expected. For example, if you have a patient's table and a visits table but you forget to relate them using a patient ID, selecting a specific patient will not correctly filter the visit records, leading to confusing or incomplete results.&lt;/p&gt;

&lt;p&gt;Another common mistake is &lt;strong&gt;using the wrong type of relationship.&lt;/strong&gt; For instance, if you incorrectly set up a many-to-many relationship when a one-to-many relationship would work, your results may become duplicated or inaccurate. A simple example is when one patient can have many visits, but each visit belongs to only one patient. If this is modeled incorrectly, Power BI may count or display values multiple times, which affects your analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keeping unnecessary columns in the fact table&lt;/strong&gt; is also a problem. In a well-designed model, descriptive details such as patient name, doctor specialty, or department should live in dimension tables, not in the fact table. If you keep repeating these details in the fact table, you increase redundancy and make the dataset harder to manage. For example, instead of storing a patient’s name in every visit record, you store a patient ID in the fact table and keep the name in the patients table. This keeps the model clean and avoids repetition.&lt;/p&gt;

&lt;p&gt;Another issue is &lt;strong&gt;overusing bi-directional filters&lt;/strong&gt;. While bi-directional relationships can be useful in certain scenarios, using them everywhere can make your model complex and slow. For example, if you allow filters to flow both ways between a doctor's table and a visits table unnecessarily, a single filter might unexpectedly affect multiple tables in ways you did not intend, leading to confusing results. In most cases, a single direction from the dimension tables to the fact table is sufficient and safer.&lt;/p&gt;

&lt;p&gt;Some people also overcomplicate their models by creating unnecessary snowflake schemas when a simpler star schema would work better. For example, instead of keeping patient, doctor, and department information in separate chains of tables, you could keep them as straightforward dimension tables directly connected to the fact table. Adding too many layers of related tables can make the model harder to understand and slower to query without adding real analytical value.&lt;/p&gt;

&lt;p&gt;In simple terms, &lt;strong&gt;good data modeling&lt;/strong&gt; is about keeping things clear, organized, and purposeful. When your tables are properly related, when each piece of information is stored in the right place, and when the schema is simple and efficient, your Power BI reports become easier to build, faster to run, and more reliable. For example, with a well-structured model of patients, doctors, diagnoses, and payments connected to a central visits table, you can easily answer questions like how many patients a doctor has seen, which payment methods are most common, or which diagnoses occur most frequently, without running into confusion or errors.&lt;/p&gt;

&lt;p&gt;Power BI has significantly changed how I approach data and problem-solving. It has helped me move from viewing data as raw and disconnected information to seeing it as a structured and meaningful system that can tell a story. Through learning data modeling, relationships, and visualization, I am now able to organize datasets, connect different sources of information, and build dashboards that clearly communicate insights. &lt;/p&gt;

&lt;p&gt;It has also improved my analytical thinking, making me more careful about how data is structured and how different pieces relate to each other. Overall, Power BI has strengthened both my technical skills and my confidence in working with data to support better decisions.&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>joins</category>
      <category>schemas</category>
      <category>relationships</category>
    </item>
    <item>
      <title>How Excel is Used in Real-World Data Analysis.</title>
      <dc:creator>Leah Kivuti</dc:creator>
      <pubDate>Fri, 27 Mar 2026 10:39:54 +0000</pubDate>
      <link>https://dev.to/leah_kivuti_be52fd03ba0f5/how-excel-is-used-in-real-world-data-analysis-30bi</link>
      <guid>https://dev.to/leah_kivuti_be52fd03ba0f5/how-excel-is-used-in-real-world-data-analysis-30bi</guid>
      <description>&lt;p&gt;When I first came across Excel, it honestly felt like just another program filled with endless rows, columns, and unfamiliar formulas. At that point, I didn’t really understand what it was meant for beyond simple calculations. I could add numbers, format a table, and that was about it. Everything else felt overwhelming and a bit intimidating. Looking back, that was the beginning of a journey that completely changed how I think about and work with data.&lt;/p&gt;

&lt;p&gt;For the past month, I have been exploring data analysis using Excel. Excel is something I’ve seen used almost everywhere—in businesses, schools, and even in small personal projects. Over time, I’ve come to appreciate that it’s not just a spreadsheet tool. It’s more of a way to take raw, messy data and turn it into something that actually makes sense.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Early Days: Struggling to Understand the Basics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the beginning, things didn’t come easily. Writing formulas correctly or even referencing cells felt confusing. I remember making simple mistakes like missing brackets or getting errors that I didn’t fully understand.&lt;/p&gt;

&lt;p&gt;The first functions I learned were things like SUM() and AVERAGE(). Even though they looked straightforward, it still took time to get comfortable using them. At that stage, I wasn’t just learning Excel—I was slowly learning how to think in terms of structured data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discovering the Power of Logic&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As I continued practicing, I started using IF statements. That was a real turning point for me.&lt;/p&gt;

&lt;p&gt;For the first time, Excel felt like more than just a tool for calculations. It could actually make decisions based on conditions. I could categorize values automatically instead of doing it manually. For example, labeling results as “Poor,” “Average,” or “Excellent” depending on the value.&lt;/p&gt;

&lt;p&gt;That’s when it started to make sense that Excel isn’t just about storing data—it can interpret it too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning to Work with Messy Data&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.amazonaws.com%2Fuploads%2Farticles%2Fp6w1ngd960s5fhwd7pfi.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.amazonaws.com%2Fuploads%2Farticles%2Fp6w1ngd960s5fhwd7pfi.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One thing I quickly realized is that real-world data is rarely clean. I often came across missing values, inconsistent formatting, duplicates, and text that needed fixing.&lt;/p&gt;

&lt;p&gt;To deal with this, I started using tools like:&lt;/p&gt;

&lt;p&gt;Remove Duplicates&lt;br&gt;
Text to Columns&lt;br&gt;
TRIM&lt;br&gt;
Basic techniques for handling blanks and errors&lt;/p&gt;

&lt;p&gt;This part of the learning process taught me something important: before you analyze anything, you have to make sure the data itself is clean and reliable. Otherwise, the results won’t be meaningful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applying Excel to Real Data: The Jumia Dataset Experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the most important parts of my learning journey was working with a real dataset from Jumia.&lt;/p&gt;

&lt;p&gt;At first glance, it looked like a simple table of products with details like prices, discounts, ratings, reviews, and categories. But as I spent more time with it, I realized it represented something much bigger—a live marketplace where products compete, and customers express their opinions through ratings and reviews.&lt;/p&gt;

&lt;p&gt;Each row represented a product, while the columns showed different attributes such as:&lt;/p&gt;

&lt;p&gt;Product categories&lt;br&gt;
Prices and discount percentages&lt;br&gt;
Customer ratings&lt;br&gt;
Number of reviews&lt;/p&gt;

&lt;p&gt;However, the dataset wasn’t ready to use straight away. There were missing values, inconsistencies, and formatting issues that needed to be fixed first.&lt;/p&gt;

&lt;p&gt;Cleaning the data took time and attention. I had to handle missing ratings, standardize values, remove inconsistencies, and make sure everything was structured properly before moving on to analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Seeing Patterns in the Data&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.amazonaws.com%2Fuploads%2Farticles%2F42f7mvf5o22i47sx4flc.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.amazonaws.com%2Fuploads%2Farticles%2F42f7mvf5o22i47sx4flc.png" alt=" " width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the data was clean, I started exploring it using PivotTables, charts, and conditional formatting.&lt;/p&gt;

&lt;p&gt;At that point, things started to become more interesting. I began to notice patterns such as:&lt;/p&gt;

&lt;p&gt;Products with more reviews often had more stable ratings&lt;br&gt;
Some categories consistently performed better than others&lt;br&gt;
Discounts seemed to influence how products were engaged with&lt;br&gt;
Missing ratings pointed to gaps in the dataset&lt;/p&gt;

&lt;p&gt;Instead of looking at individual products one by one, I started seeing relationships between pricing, ratings, and categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turning Data into Insights&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.amazonaws.com%2Fuploads%2Farticles%2Fgospex29slm5ywl49pii.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.amazonaws.com%2Fuploads%2Farticles%2Fgospex29slm5ywl49pii.png" alt=" " width="800" height="238"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I continued analyzing, the dataset started to tell a clearer story.&lt;/p&gt;

&lt;p&gt;It became easier to see that:&lt;/p&gt;

&lt;p&gt;Customer ratings and reviews play a big role in product performance&lt;br&gt;
products with high discounts behave differently when it comes to engagement&lt;br&gt;
Discounts may affect how products are perceived&lt;br&gt;
Missing or incomplete data can limit the quality of insights&lt;/p&gt;

&lt;p&gt;This experience helped me understand that Excel is not just for calculations—it’s a tool for uncovering patterns and making sense of real-world situations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building Dashboards&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.amazonaws.com%2Fuploads%2Farticles%2Fpez1t9zm46xc8uyh9zm7.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.amazonaws.com%2Fuploads%2Farticles%2Fpez1t9zm46xc8uyh9zm7.png" alt=" " width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I improved, I began combining different Excel features to build dashboards.&lt;/p&gt;

&lt;p&gt;These dashboards included:&lt;/p&gt;

&lt;p&gt;Charts to visualize trends&lt;br&gt;
PivotTables for summaries&lt;br&gt;
Conditional formatting to highlight important values&lt;br&gt;
Key metrics that made the data easier to understand&lt;/p&gt;

&lt;p&gt;This helped me move from working with raw data to presenting information in a way that is clear and easy to interpret.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Excel Matters to Me&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Excel has become a very practical tool in my work and learning. I’ve seen how it can be used in different areas such as:&lt;/p&gt;

&lt;p&gt;Financial analysis and budgeting&lt;br&gt;
Sales and marketing analysis&lt;br&gt;
Data cleaning and organization&lt;br&gt;
Project tracking and management&lt;/p&gt;

&lt;p&gt;Some of the features I rely on most include PivotTables, IF statements, VLOOKUP/XLOOKUP, charts, and conditional formatting. Each of these helps me work with data more efficiently and make better sense of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Looking back, learning Excel has changed the way I approach data. I no longer just see numbers—I look for patterns, relationships, and meaning behind them.&lt;/p&gt;

&lt;p&gt;The moment I realized Excel could go beyond simple calculations was a big shift for me. It felt like I had uncovered another layer of understanding in the data. Numbers started to feel more like information that tells a story.&lt;/p&gt;

&lt;p&gt;That’s really why I enjoy working with Excel. It helps turn raw data into something useful, and eventually into decisions that actually make sense.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>microsoft</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
