<?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: jmuthama12</title>
    <description>The latest articles on DEV Community by jmuthama12 (@jmuthama12).</description>
    <link>https://dev.to/jmuthama12</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%2F3838695%2F56b1e6af-87fb-4306-bebe-03373d5059d6.png</url>
      <title>DEV Community: jmuthama12</title>
      <link>https://dev.to/jmuthama12</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jmuthama12"/>
    <language>en</language>
    <item>
      <title>Power Bi,Modelling,Relationships and Joins</title>
      <dc:creator>jmuthama12</dc:creator>
      <pubDate>Mon, 14 Sep 2026 11:11:20 +0000</pubDate>
      <link>https://dev.to/jmuthama12/power-bimodellingrelationships-and-joins-22h3</link>
      <guid>https://dev.to/jmuthama12/power-bimodellingrelationships-and-joins-22h3</guid>
      <description>&lt;p&gt;Power BI Data Modelling, Relationships and Joins: &lt;/p&gt;

&lt;p&gt;When I first started working with Power BI, I thought building a report was mainly about choosing charts. I quickly learned that the real work happens behind the visuals.&lt;/p&gt;

&lt;p&gt;A good Power BI report starts with a good data model.&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;_ Data Modelling in Power BI_&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data modelling is the process of organising tables and defining how they relate to each other. A good model improves DAX, performance, scalability, reporting and maintenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flat Table&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Everything is stored in one large table.&lt;/p&gt;

&lt;p&gt;Sales → Customer + Product + Date + Location + Amount&lt;/p&gt;

&lt;p&gt;Pros: Simple and easy to understand.&lt;br&gt;
Cons: Repeated data, larger models and harder maintenance.&lt;/p&gt;

&lt;p&gt;It works for small datasets, but becomes inefficient as data grows.&lt;/p&gt;

&lt;p&gt;Star Schema&lt;/p&gt;

&lt;p&gt;A central fact table connects directly to several dimension tables.&lt;/p&gt;

&lt;p&gt;DimCustomer → FactSales ← DimProduct&lt;br&gt;
↑&lt;br&gt;
DimDate&lt;/p&gt;

&lt;p&gt;This is usually my preferred approach because it is simple, fast and DAX-friendly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Snowflake Schema&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dimensions are further split into related tables.&lt;/p&gt;

&lt;p&gt;DimCategory → DimProduct → FactSales&lt;br&gt;
DimCountry → DimCustomer → FactSales&lt;/p&gt;

&lt;p&gt;It reduces duplication but creates more relationships and complexity. It can be useful for large, highly normalised datasets, but I would normally prefer a star schema in Power BI.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fact and Dimension Tables&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A fact table records business events and numeric values.&lt;/p&gt;

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

&lt;p&gt;FactSales: SalesID, CustomerID, ProductID, DateID, Quantity, Revenue&lt;/p&gt;

&lt;p&gt;A dimension table describes those events.&lt;/p&gt;

&lt;p&gt;DimCustomer: CustomerID, Name, Region&lt;br&gt;
DimProduct: ProductID, ProductName, Category&lt;br&gt;
DimDate: DateID, Date, Month, Year&lt;/p&gt;

&lt;p&gt;The most important concept is grain—what one row represents. For example, one row in FactSales might represent one product sold in one transaction.&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;_ Relationships_&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A relationship tells Power BI how tables are connected.&lt;/p&gt;

&lt;p&gt;The common types are:&lt;/p&gt;

&lt;p&gt;1: One-to-Many:* one customer can have many sales. This is the normal star-schema relationship.&lt;br&gt;
1:1 One-to-One: each record matches one record. Useful only in specific cases.&lt;br&gt;
: Many-to-Many:* multiple records match multiple records. Use carefully because it can create ambiguous filtering.&lt;/p&gt;

&lt;p&gt;Usually, DimCustomer[CustomerID] is unique, while FactSales[CustomerID] can appear many times. The first is a primary key; the second is a foreign key.&lt;/p&gt;

&lt;p&gt;Active relationships are used by default. Inactive relationships can be activated in DAX when needed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Filter Direction&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With single-direction filtering, a selection in DimProduct filters FactSales.&lt;/p&gt;

&lt;p&gt;DimProduct → FactSales&lt;/p&gt;

&lt;p&gt;Bidirectional filtering allows filters to travel both ways, but it should be used carefully. It can create ambiguous filter paths and unnecessary complexity.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Joins in Power Query&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A join combines tables using Merge Queries.&lt;/p&gt;

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

&lt;p&gt;Join    Records retained&lt;br&gt;
Left Outer  All Customers + matching Orders&lt;br&gt;
Right Outer All Orders + matching Customers&lt;br&gt;
Full Outer  All records from both&lt;br&gt;
Inner   Only matching records&lt;br&gt;
Left Anti   Customers without Orders&lt;br&gt;
Right Anti  Orders without Customers&lt;/p&gt;

&lt;p&gt;Joins are useful when you actually need to bring columns or rows together during data preparation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Joins vs Relationships&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This distinction confused me at first.&lt;/p&gt;

&lt;p&gt;A Power Query merge physically combines data before it enters the model.&lt;/p&gt;

&lt;p&gt;A Power BI relationship does not combine tables. It simply tells Power BI how tables should filter each other.&lt;/p&gt;

&lt;p&gt;Therefore, I would avoid excessive merging. Keeping FactSales, DimCustomer, DimProduct and DimDate separate usually produces a cleaner model.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;My Recommended Model&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For most business intelligence projects, I would choose a Star Schema:&lt;/p&gt;

&lt;p&gt;Dimensions → Fact Table&lt;/p&gt;

&lt;p&gt;I would normally use 1: relationships*, with dimensions on the “1” side and facts on the “*” side, using single-direction filtering.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;It gives me better performance, simpler DAX, less redundancy, easier reporting, clearer relationships and easier maintenance.&lt;/p&gt;

&lt;p&gt;Power BI is not just about making beautiful dashboards. A beautiful dashboard built on a poor model will eventually become a painful dashboard to maintain.&lt;/p&gt;

&lt;p&gt;Build the model well, and the report becomes much easier.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>database</category>
    </item>
    <item>
      <title>EXCEL AS A DATA ANALYSIS TOOL</title>
      <dc:creator>jmuthama12</dc:creator>
      <pubDate>Sun, 22 Mar 2026 18:11:32 +0000</pubDate>
      <link>https://dev.to/jmuthama12/excel-as-a-data-analysis-tool-437n</link>
      <guid>https://dev.to/jmuthama12/excel-as-a-data-analysis-tool-437n</guid>
      <description>&lt;p&gt;Microsoft Excel is one of the most important tools in data analysis. Whether you're cleaning data, building reports, or preparing datasets for pipelines, Excel skills are essential.&lt;br&gt;
&lt;strong&gt;BASIC EXCEL FUNCTIONS&lt;/strong&gt;&lt;br&gt;
➤ SUM&lt;br&gt;
Adds values in a range&lt;br&gt;
=SUM(A1:A10)&lt;/p&gt;

&lt;p&gt;➤ AVERAGE&lt;/p&gt;

&lt;p&gt;Finds the mean&lt;br&gt;
=AVERAGE(A1:A10)&lt;br&gt;
&lt;strong&gt;COUNT&lt;/strong&gt;&lt;br&gt;
Counts numeric values&lt;br&gt;
=COUNT(A1:A10)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Logical Functions&lt;/strong&gt;&lt;br&gt;
➤ IF&lt;br&gt;
=IF(A1&amp;gt;50, "Pass", "Fail")&lt;/p&gt;

&lt;p&gt;Returns values based on a condition&lt;/p&gt;

&lt;p&gt;➤ AND&lt;br&gt;
=AND(A1&amp;gt;50, B1="Yes")&lt;/p&gt;

&lt;p&gt;Checks multiple conditions&lt;br&gt;
➤ OR&lt;br&gt;
=OR(A1&amp;gt;50, B1="Yes")&lt;/p&gt;

&lt;p&gt;Returns TRUE if one condition is met&lt;/p&gt;

&lt;p&gt;** Lookup &amp;amp; Reference Functions**&lt;br&gt;
➤ VLOOKUP&lt;br&gt;
=VLOOKUP(A2, A1:C10, 3, FALSE)&lt;/p&gt;

&lt;p&gt;Searches vertically&lt;br&gt;
➤ HLOOKUP&lt;br&gt;
=HLOOKUP(A2, A1:C3, 2, FALSE)&lt;/p&gt;

&lt;p&gt;Searches horizontally&lt;br&gt;
➤ INDEX + MATCH (Better alternative)&lt;br&gt;
=INDEX(B1:B10, MATCH(A2, A1:A10, 0))&lt;br&gt;
➤ &lt;strong&gt;LEN&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Counts characters&lt;br&gt;
=LEN(A1)&lt;br&gt;
&lt;strong&gt;CONCAT / CONCATENATE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Join text&lt;br&gt;
=CONCAT(A1, " ", B1)&lt;/p&gt;

&lt;p&gt;These are some of the formulae's used daily in excel &lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
