<?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: Otuko Mauwa</title>
    <description>The latest articles on DEV Community by Otuko Mauwa (@alfred-otuko).</description>
    <link>https://dev.to/alfred-otuko</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%2F4073717%2Fe1b91ec7-7b8f-4f42-95d8-be06f8c01184.png</url>
      <title>DEV Community: Otuko Mauwa</title>
      <link>https://dev.to/alfred-otuko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alfred-otuko"/>
    <language>en</language>
    <item>
      <title>Data Modelling, Relationships And Joins In Power BI</title>
      <dc:creator>Otuko Mauwa</dc:creator>
      <pubDate>Mon, 05 Oct 2026 00:12:27 +0000</pubDate>
      <link>https://dev.to/alfred-otuko/data-modelling-relationships-and-joins-in-power-bi-2dh7</link>
      <guid>https://dev.to/alfred-otuko/data-modelling-relationships-and-joins-in-power-bi-2dh7</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;This article takes through the ideas that decide whether a model works as intended &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Schemas; how table are organized&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Relationships; how the model connects tables&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Joins; how tables are physically combined in power query  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each section on this article explains the concept, shows with an example and guidance on when to use each one of them.&lt;/p&gt;

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

&lt;p&gt;Data modelling in power BI is the process of connecting separate data tables together so that they can have a connections with each other and produce accurate answers for business questions and demands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance of Well Designed Data Model
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Analytics&lt;/strong&gt; - The data model is flexible and fully integrated, numerical metrics can be grouped or filtered by categorical attribute(dimensions like date) without hitting broken relationships and rigid hierarchies. User interface is easier to navigate and data fields are logically organized and named so that business user can easily locate metrics and categories without strain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DAX Calculation&lt;/strong&gt;  -  When one has a well designed data model theres no need to write complex formulas and codes to tell measure on how to filter data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt; - Having a well designed data model impacts the performance by preventing the model from hitting memory limits and faster data refreshes and a quicker visualization on reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt; - As the data model get bigger a lean one allows facts, dimensions and data sources to seamlessly integrate into the model without requiring a full report or have a model redesign.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maintainability&lt;/strong&gt; -  A well designed data model makes it easier to debug, update, and manage over time without breaking existing reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparisons between Flat Table, Star Schema And Snowflake Schema
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1) Flat Table&lt;/strong&gt;&lt;br&gt;
A flat table stores everything in one wide table, each row is transaction and every descriptive attribute the transaction needs like customer name, product name and category is repeated on that row.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Faster to build, is exactly what a CSV export or database view already looks like.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No relationships to configure &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy to understand and analyze &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Redundancy, storage of exact piece of information or repeated attributes values across multiple tables inside the data model instead of being organized into one relatable table.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mixed Grain, a data model or table is combined into different level of details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hard to extend, adding more facts is hard since there's no shared dimensions to related to.&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%2F6m31o9uzycrnydl4ttkj.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%2F6m31o9uzycrnydl4ttkj.jpg" alt="flat table" width="799" height="444"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flat table are appropriate when dealing with small dataset that will not be reused or combined with other datasets. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance and Complexity on Power BI&lt;/strong&gt;&lt;br&gt;
This model is simple but is heavy to run. Many text columns inflate the memory and perform slow scans. Performing DAX becomes impossible and complicated because counting distinct text columns needs extra logic to escape repeated rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Star Schema&lt;/strong&gt; &lt;br&gt;
A star schema has one central fact table surround by dimension table that are connected to the fact table using a single key.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simple and Predictable filtering&lt;/strong&gt; - Every filter is one hop from dimension to fact &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simple DAX&lt;/strong&gt; Once a measure is written it against the fact it works with any dimension&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Easy to read and extend:&lt;/strong&gt; User can tell which table hold metrics and which one hold filters. When a new business process is added against the fact table it can be depended onto other dimension tables.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;More tables and relationships than flat table making it to take time to design.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dimensions have some redundancy &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Star schema is appropriate in the day to use for reporting and analytics project &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance and Complexity on Power BI&lt;/strong&gt;&lt;br&gt;
Start schema's give the best balance in Power BI, relationship is traversal is minimal, also star schema use very minimal memory and the model is easy to go about&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%2Fjej4ofh633y75uv6y4oh.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%2Fjej4ofh633y75uv6y4oh.jpg" alt="star schema" width="240" height="192"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Snowflake Schema&lt;/strong&gt;&lt;br&gt;
A snowflake schema is a version of star schema but in which the dimension are further categorized into sub-dimensions. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Less repetition inside the dimensions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easier data maintenance, modification can be made one the intended sub-dimensions without altering the data model.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;With more table and relationships it becomes complicated to navigate &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Filter must travel through several table before reaching the fact table.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When Its appropriate, when dimensions are large wiith more complex hierarchies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance and Complexity on Power BI&lt;/strong&gt;&lt;br&gt;
To filter a chart using snowflake schema, power bi must traverse multiple tables through a chain relationship making it not recommended.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7p10ounzeo4rimar9b69.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7p10ounzeo4rimar9b69.webp" alt="snowflake" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Facts and Dimension Tables
&lt;/h2&gt;

&lt;p&gt;A fact table is a central data model that stores numerical number, measurements or metrics of a business like customerID, productID,  sales amount. Dimension tables is a supporting table in data model that stores descriptive attributes and background information about a business like product name, category and customer email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Information Stored in fact tables&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Foreign keys&lt;/strong&gt; - connects to dimensions tables  this includes (productID, customerID)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Numeric number&lt;/strong&gt; - This are numeric columns that contain business transaction such as (Sales amount, Units sold, discount percentage)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Information stored in Dimension tables&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Primary Key&lt;/strong&gt; &lt;br&gt;
Every dimension table consist of unique IDs that acts as master key connects descriptive information and details to the central fact table.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Descriptive text attributes&lt;/strong&gt; &lt;br&gt;
This are columns that contain descriptive that is used to slice, dice, filter and group the data inro charts, tables and slicers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hierarchies and Categories&lt;/strong&gt; &lt;br&gt;
Dimension tables hod structural grouping that allow data to be arranged into forms of hierarchies.&lt;br&gt;
Product category-Category-subcategory-product name&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Grain of a Fact Table&lt;/strong&gt;&lt;br&gt;
The grain of a fact table is the level of detail that is show in a single row in a table.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships and Joins Between Tables
&lt;/h2&gt;

&lt;p&gt;Relationship is a rule that indicates how two or more table are connected or linked. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;One to many *&lt;/em&gt;&lt;br&gt;
One row matched many rows. Filters flows from the one side to the many by default. &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%2Fvw1teupq6jbirdkmw2gc.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%2Fvw1teupq6jbirdkmw2gc.png" alt="one many" width="578" height="139"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One to One&lt;/strong&gt;&lt;br&gt;
Each key appears at once on both tables. Filter flow in both direction.&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%2Fonxv0ke0vsr9k50mzf3q.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%2Fonxv0ke0vsr9k50mzf3q.png" alt="one one" width="537" height="108"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Many to Many&lt;/strong&gt;&lt;br&gt;
Multiple row in one table are clinked to a different table with multiple rows.&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%2Fy8crvsmzxmnt1nqbgf5a.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%2Fy8crvsmzxmnt1nqbgf5a.png" alt="many many" width="586" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Filter direction refers to how a filter travels across relationships line to filter in other tables. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Single directions filtering&lt;/strong&gt;&lt;br&gt;
Filtering moves in one direction from one side dimension table to the many fact table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Both directions filtering&lt;/strong&gt;&lt;br&gt;
Filters flows between the two tables along a relationship line. In setting up the dimension table can filter the fact table and fact table can filter the dimension table. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Bi-directions is discouraged&lt;/strong&gt;&lt;br&gt;
1) Performance &lt;br&gt;
It heavily degrades report performance on large datasets since the engine is constantly evaluating complex bi-directional filtering logic.&lt;br&gt;
2) Ambiguous Filter paths &lt;br&gt;
With more than one route to be used it cannot the determined which path to be used.&lt;/p&gt;

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

&lt;p&gt;A join combines two separate tables horizontally by matching columns in one or more key columns. In power query this is done with merge queries feature, pulling matching details from both the left table and the right table into structured columns that can expand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Joins&lt;/strong&gt;&lt;br&gt;
1) Left Outer Join&lt;br&gt;
A left outer joins returns all rows are from the left on the first table and adds matching columns from the second table whenever theirs a match. Unmatched row gets to be highlighted as "null" from the columns on the right.&lt;/p&gt;

&lt;p&gt;2) Right Outer Join &lt;br&gt;
Similar to the left outer join it joins returns all rows from the right table and adds matching columns from the second table whenever theirs a match. Unmatched rows gets highlighted as "null" from the columns of the left.&lt;/p&gt;

&lt;p&gt;3) Full Outer Join &lt;br&gt;
Matches are combined from both tables and unmatched one get to be highlighted as null. &lt;/p&gt;

&lt;p&gt;4) Inner Join &lt;br&gt;
Inner joins only returns rows that have a match in both tables. Those rows that are not matched are dropped and do not return null or blanks. &lt;/p&gt;

&lt;p&gt;5) Left Anti Join &lt;br&gt;
Left anti joins returns rows from the left table haven't matched in the right table.&lt;/p&gt;

&lt;p&gt;6)Right Anti Join &lt;br&gt;
Right anti joins returns row from the right table that haven't matched in the left table.&lt;/p&gt;

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

&lt;p&gt;The difference is that power query join are physical data transformations that combine columns into tables while power BI relationships are logical data model that creates virtual connections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Does a Power Query merge physically combine columns/data from tables?&lt;/strong&gt;&lt;br&gt;
Merging in power query evaluates matching keys and copies columns from the secondary table to the primary table resulting into a singled merged table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Does creating a relationship combine the tables?&lt;/strong&gt;&lt;br&gt;
Creating a relations does not result in a combined table since creating a relationship does not copy or physically move data. The table remain separate. A relationship simply is creates a path that allows power bi DAX to perform filters on one table to another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) At what stage of the Power BI workflow does each operation occur?&lt;/strong&gt;&lt;br&gt;
Power Queries happens before the data is loaded into the model.&lt;/p&gt;

&lt;p&gt;Relations happens right after the model is loaded into the model at the data modelling stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) When would I choose a merge instead of a relationship?&lt;/strong&gt;&lt;br&gt;
I would choose a merge over relationship when i want to convert snowflake schema into easy to use star schema.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5) How can excessive merging affect the structure of a data model?&lt;/strong&gt;&lt;br&gt;
Excessive merging turn a clean relations structure into a huge and flat table which then takes up a huge storage. Large tables bloats the model size, refresh rate become slower and degrades its report rendering performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6) Why might keeping fact and dimension tables separate be preferable in a BI model?&lt;/strong&gt;&lt;br&gt;
Keeping the fact and dimension tables separate helps write clear DAX measures becomes straightforward since filters flows in a clean 1 to many relationships. Improves performance making rapid computations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recommended Power BI Architecture
&lt;/h2&gt;

&lt;p&gt;I would recommend the star schema since for business intelligence project, it separates data into central fact table which contains quantitative measurements and foreign keys that is surrounded by dimension tables that contains descriptive attributes the following are the justifications.&lt;/p&gt;

&lt;p&gt;1) Query and report performance&lt;br&gt;
&lt;strong&gt;Vertipaq&lt;/strong&gt; is a columnar database engine that is engineer and optimized for a start schema that can scan and filter compact tables instantly.&lt;/p&gt;

&lt;p&gt;2) DAX simplicity&lt;br&gt;
Filter flow from 1 sided dimension table to many sided fact table, this makes DAX measures into simple and readable. &lt;/p&gt;

&lt;p&gt;3) Filter Propagation &amp;amp; Model Complexity&lt;br&gt;
In star schema it is recommended to use a one to many relationship that has a single directional filter &lt;/p&gt;

&lt;p&gt;4) Scalability and Maintainability&lt;br&gt;
When new data sources are introduced including tables along with existing table there's no need to rebuild the model. The existing dimension tables can link with the a new fact table.&lt;/p&gt;

&lt;p&gt;5) Ease of Creating Reports and Model Readability&lt;br&gt;
The start schema creates the best layout for clean and clear structure in that the dimension table hold all the descriptive attributes and the fact table holds the numerical metrics.&lt;/p&gt;

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

&lt;p&gt;Understanding between power query operations and power bi modelling is the defining line. Choosing when to merge tables and when to have then isolated directly dictates the performance, scalability and the long term maintenance of the data model. By applying the data transformations early in power query and highlighting relationships efficiently in the data model this enable reports to be understandable.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>database</category>
    </item>
    <item>
      <title>Jumia Product Analysis WithExcel Dashboards</title>
      <dc:creator>Otuko Mauwa</dc:creator>
      <pubDate>Sat, 19 Sep 2026 23:27:43 +0000</pubDate>
      <link>https://dev.to/alfred-otuko/jumia-product-analysis-withexcel-dashboards-1ha8</link>
      <guid>https://dev.to/alfred-otuko/jumia-product-analysis-withexcel-dashboards-1ha8</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Big E-commerce organisation like Jumia handle large datasets that are vital in the day-to-day operations. The data needs to be evaluated to make good and decisive business decisions that will improve overal business perfomance. &lt;br&gt;
For this article I will take you through the process of building a comprehensive product analysis and dashboards that will guide smarter business decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Objective
&lt;/h2&gt;

&lt;p&gt;The objective of this project is to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To produce excel dashboards that provide insights into the perfomance of products.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To analyze product pricing, discounts, customer reviews and ratings to understand product perfomance and identity trends.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dataset Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Product&lt;/strong&gt; - Name of the product&lt;br&gt;
&lt;strong&gt;Current price&lt;/strong&gt; - The current seeling price of products in (Ksh)&lt;br&gt;
&lt;strong&gt;Old price&lt;/strong&gt; - The original price before discount in (Ksh)&lt;br&gt;
&lt;strong&gt;Discount&lt;/strong&gt; - The percentage discounts offer on the products&lt;br&gt;
&lt;strong&gt;Review&lt;/strong&gt; - The number of customer reviews received on the products &lt;br&gt;
&lt;strong&gt;Ratings&lt;/strong&gt; - The average customer rating of the product out of 5&lt;/p&gt;

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

&lt;p&gt;Before any analysis could be done on the dataset, I had to clean the data for the mistakes that were done during data entry. This are the steps that i did towards effective data cleaning&lt;/p&gt;

&lt;p&gt;1) The first step i did was to copy the data to a new worksheet then renamed it "Cleaned" and renamed the other worksheet as "original"&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%2Frlfur2x77xorf5n7kcni.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%2Frlfur2x77xorf5n7kcni.png" alt="Clean data" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) The next step I added freezing panes to assist with easier navigation.&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%2Fn8frj15o3ovwcfbhoweq.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%2Fn8frj15o3ovwcfbhoweq.png" alt="freezing panes" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Used the proper function to capitalize the first letters of the titles&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%2F7imhb8qb4i8xv6jiq00i.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%2F7imhb8qb4i8xv6jiq00i.png" alt="proper funtion" width="791" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) To change the numeric columns (Current price) and (Old price) to their correct data types of currencies I pressed ctrl and selected both columns then changed the data field to currencies then used the find and replace to change (ksh) into blank which then sets the data to the correct field type.&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%2F2zgwadr35o3jtjgoy234.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%2F2zgwadr35o3jtjgoy234.png" alt="field type" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) Removed duplicates on the dataset which will lead to an accurate analysis&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%2Fa95rieiimvygz5jntodw.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%2Fa95rieiimvygz5jntodw.png" alt="duplicates" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Enhancement
&lt;/h2&gt;

&lt;p&gt;1) Discounted Amount&lt;br&gt;
To find the discounted amount I created a new column right after the Old price column then perfomed a calculation on the new column &lt;strong&gt;Discounted amount = Old price - Current price&lt;/strong&gt;&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%2F2juiaxw57wod8awjzt3i.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%2F2juiaxw57wod8awjzt3i.png" alt="discount" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Rating category &lt;br&gt;
For the rating category Iwas expected to display the rating either excellent, average or poor i used the below formula &lt;br&gt;
&lt;strong&gt;=IF(NOT(ISNUMBER(H3)),"Not Provided",IF(H3&amp;lt;3,"poor",IF(H3&amp;lt;=4,"average",IF(H3&amp;gt;4.5,"excellent","good"))))&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since in the rating column there was blank cells i replaced the blanks with "Not Provided". The &lt;strong&gt;IF(NOT(ISNUMBER&lt;/strong&gt; function was used to check if the highlighted cell has a number or not and returns cells that is not numerical with "Not provided".&lt;/p&gt;

&lt;p&gt;I added rating of "good rating"  since there was some figures that were left out and they were above the average rating and slightly below the excellent rating.&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%2Fpkn9q3n21p3be05g18ch.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%2Fpkn9q3n21p3be05g18ch.png" alt="ratings" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Discount Category &lt;br&gt;
The Dicount category was categorized into three high, medium and low. I inserted a new column next to the discount pecentage and used the following formula for groupings. &lt;strong&gt;=IF(E4&amp;lt;20%, "Low Discount", IF(E4&amp;lt;40%, "Medium Discount", IF(E4&amp;gt;41%, "High Discount")))&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%2F6jsxy51wnna38tr19j4s.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%2F6jsxy51wnna38tr19j4s.png" alt="discount category" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) Price Category &lt;br&gt;
I was required for this project to display if prices were high, medium or low, used the following formula to determine the out of the prices&lt;br&gt;
&lt;strong&gt;=IF(B3&amp;lt;500, "Low Price", IF(B3&amp;lt;1500, "Medium Price", IF(B3&amp;gt;1501, "High Price")))&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Analysis
&lt;/h2&gt;

&lt;p&gt;For data analysis I created an new worksheet and the worksheet created a table that best describe the various questions raised for the project as show below&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%2F6drb4ps7otp3axdtau1q.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%2F6drb4ps7otp3axdtau1q.png" alt="analysis" width="743" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then used the filter and sort to find out the top rated products and lowest rated products to further give insights of how the products are performing on the market &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%2Fdjv06sjb6c825i91ai2a.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%2Fdjv06sjb6c825i91ai2a.png" alt="top and lowest prod" width="799" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To find if there was any relationship between products and customers reviews then also find if there was any relationship between high discount and more reviews on the products I used the CORREL() function where a positive relationship results with a +1, with a -1 symbolizing a strong negative relationship. Close to 0 represents a no relationship of two products&lt;br&gt;&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%2Fyknby850oy26n0wdtp8d.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%2Fyknby850oy26n0wdtp8d.png" alt="correl" width="689" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboard
&lt;/h2&gt;

&lt;p&gt;For the dashboard I first started by creating pivot tables on then data then from the pivot i then created slicers that are instrumental on the creating of the dashboards used for visualization. &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%2Fsk5r57h2hrpbl6pymudd.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%2Fsk5r57h2hrpbl6pymudd.png" alt="dashboard" width="611" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;1) High Discounts do not translate to high customer engagements since most of the products that have high discounts have poor ratings from customers.&lt;/p&gt;

&lt;p&gt;2) Highly rated products from the data most of the products tend to have low prices on them but that is not on all products since other products have a medium or high price making it difficult to ascertain if products that have high ratings are cheap in the market.&lt;/p&gt;

&lt;p&gt;3) High quality assurance on low rated products to make sure the products do not have defects making it to have low rating after which it affects the prices from low prices to medium.&lt;/p&gt;

&lt;p&gt;4) Improving on the review method of the products so that most of the products are reviewed by customer after purchase since from the data a lot of customer fail to have reviews of products making it hard to know the customer satisfaction.&lt;/p&gt;

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

&lt;p&gt;This project have changed how i interact with data and has given me more insights and how to approach projects to answers business questions and to provide solutions that make a huge difference on the overall performance products and organization.&lt;/p&gt;

&lt;p&gt;The link below to github for the workbook that contains Original raw data and cleaned data, data enrichment, analysis and dashboard&lt;/p&gt;

&lt;p&gt;Github repository &lt;a href="https://github.com/alfieotuko/Jumia-product-analysis" rel="noopener noreferrer"&gt;https://github.com/alfieotuko/Jumia-product-analysis&lt;/a&gt;&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basics to Data Cleaning</title>
      <dc:creator>Otuko Mauwa</dc:creator>
      <pubDate>Mon, 31 Aug 2026 01:39:32 +0000</pubDate>
      <link>https://dev.to/alfred-otuko/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-548k</link>
      <guid>https://dev.to/alfred-otuko/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-548k</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Excel is spreadsheet software tool that is wildly and commonly used to organize, format, calculate and analyze data in row and columns. It is widespread due to it's user friendly interface and powerful inbuild functions and features that makes it easy for beginners and professional alike to do day-to-day data related tasks. This article takes you through a step by step guidelines on how to use and navigate excel from basic navigation to practical data cleaning methods that are vital for data analytics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Excel Workbook
&lt;/h2&gt;

&lt;p&gt;1) Workbook and Worksheets&lt;br&gt;
An excel workbook is the main file that can contain one or many worksheets. A worksheet is the single grid that contains multiple rows and columns. The worksheets are mainly found on the bottom left of the workbook. The below image indicates the different worksheets and a worksheet can be added by clicking the + &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%2Fhryfkrskar14678gvtb4.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%2Fhryfkrskar14678gvtb4.png" alt="Workbook" width="800" height="32"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Cell&lt;br&gt;
A cell is an intersection of arow and column.&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%2F5lg95aie23kqq400o0jz.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%2F5lg95aie23kqq400o0jz.png" alt="Cell" width="90" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Ribbon&lt;br&gt;
A ribbon is a toolbar at the top part of a worksheet that has buttons and icon. It organizes tools into groups for quick formatting and data management.&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%2F21m5n7n0ielb0x2ybq64.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%2F21m5n7n0ielb0x2ybq64.png" alt="Ribbon" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Data cleaning is the process of finding and fixing errors so that the data can be easy to work on for accurate information and analysis. Before starting on data cleaning i copied the original worksheet to another worksheet and renamed it to clean and the clean worksheet is where i will be working on cleaning the data.&lt;/p&gt;

&lt;p&gt;1) Test Functions&lt;br&gt;
Upper - Changes text characters to Uppercase&lt;br&gt;
Lower - Changes text characters to lowercase&lt;br&gt;
Trim - Removes spaces in characters before and after and also in between &lt;br&gt;
Concat - Can be used to join characters of two cells like using the first name and last name to create an email address&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%2F02gyecf3lv0958skmwjn.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%2F02gyecf3lv0958skmwjn.png" alt="Concat" width="528" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Find and Replace &lt;br&gt;
Find and replace is the initial step in data cleaning the dataset by merging similar data that were enter incorrectly such human resource and HR which basically mean the same thing but were not keyed to the dataset as one. Find and replace tool will be used to merge them into one.&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%2F8faa4rr9jqg5shb061kt.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%2F8faa4rr9jqg5shb061kt.png" alt="Find and replace" width="454" height="196"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Conditional Formatting&lt;br&gt;
Conditional formatting is a tool that changes the appearence of cells, it let me use colors or databars to highlight high values or errors without having to look at rows or columns manually.&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%2Fz27jvdjgp2n05x5sngyv.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%2Fz27jvdjgp2n05x5sngyv.png" alt="Conditional formatting" width="800" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4) Sorting and Filtering&lt;br&gt;
The first step to data cleaning is sort each column from the largest to smallest for numeric columns and from A to Z for text columns to be able to find cells that have wrong date keyed in them. As highlighted below the age column has thirty keyed in as a text instead of number.&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%2Freickgag508q6cga6f71.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%2Freickgag508q6cga6f71.png" alt="Sorting" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To change it from text written 'thirty' and correcting it into a number format&lt;/p&gt;

&lt;p&gt;5) Removing Duplicates.&lt;br&gt;
The second part is to remove duplicates which tends to distort data. On the ribbon the data part has the tool for removing duplicate and it displays a dialog box which then i selected the primary column which is unique to make removing duplicates effective.&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%2F57zjjlfo0qjytx2l4a6l.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%2F57zjjlfo0qjytx2l4a6l.png" alt="Removing Duplicates" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) Blank and Missing values &lt;br&gt;
On the columns that have blanks i changed them to '0' on the numeric columns and on the text columns i changed them to 'Unknown'. This is done to reduce inaccuracies.&lt;/p&gt;

&lt;p&gt;7) Aggregate Functions&lt;br&gt;
&lt;strong&gt;Power&lt;/strong&gt; () - Raises the a number to a specified power&lt;br&gt;
&lt;strong&gt;Product&lt;/strong&gt;() - Multiplies numbers&lt;br&gt;
&lt;strong&gt;Min&lt;/strong&gt;() - Finds the smallest number in a row or column&lt;br&gt;
&lt;strong&gt;Sum&lt;/strong&gt; - Adds a range of numbers&lt;br&gt;
&lt;strong&gt;Max&lt;/strong&gt;() - Finds the largest number&lt;br&gt;
&lt;strong&gt;Median&lt;/strong&gt;() - Returns the middle number from a set of given numbers&lt;br&gt;
&lt;strong&gt;Mode&lt;/strong&gt;() -Returns the most occuring number in a set of numbers &lt;br&gt;
&lt;strong&gt;Average&lt;/strong&gt;() Adds a group of numbers together then divides the sum by count numbers&lt;/p&gt;

&lt;p&gt;All the functions and formulas must start with an (=).&lt;/p&gt;

&lt;p&gt;8) Statistical Functions&lt;br&gt;
Count - Counts numerical cells only&lt;br&gt;
Counta - Count the number of cells that are not blank&lt;br&gt;
Countblank - Counts all the blanks in a columns or rows.&lt;/p&gt;

&lt;p&gt;9)Conditional Aggregations&lt;br&gt;
&lt;strong&gt;Countif&lt;/strong&gt; - In the dataset I used countif to find the number of staff in IT department&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%2Fa6e3qyugn5fiagcbw0ys.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%2Fa6e3qyugn5fiagcbw0ys.png" alt="Countif" width="159" height="48"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Countifs&lt;/strong&gt; - Used it to find the number of female staff that are above 30.&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%2Fdwgd6n16joubbyypbq6y.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%2Fdwgd6n16joubbyypbq6y.png" alt="Countifs" width="469" height="63"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumif&lt;/strong&gt; - Used it find out the total amount of salary for female staff.&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%2Fykgpgwkdgov3wkbyhb9a.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%2Fykgpgwkdgov3wkbyhb9a.png" alt="Sumif" width="246" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sumifs&lt;/strong&gt; - Used it to calculate the total salary of male staff that are above 30&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%2Fnkeque8muofdt5ooteie.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%2Fnkeque8muofdt5ooteie.png" alt="Sumifs" width="572" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Averageif&lt;/strong&gt; - Used it to calculate the average age of male staff.&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%2F4ty7x7co4k4u45pxo682.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%2F4ty7x7co4k4u45pxo682.png" alt="Averageif" width="290" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Averageifs&lt;/strong&gt; - Used to calculate the average age of male staff that are in the HR department&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%2Fbqbueymm6ko1exqteq49.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%2Fbqbueymm6ko1exqteq49.png" alt="Averageifs" width="622" height="73"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Excel serves as a vital software tool that is used in data analytics due to its reliability and easy to use features that makes complex tasks easy to manage. Data cleaning is the corner stone of analytics that determines whether can be trusted and used for making bold decisions that shape outcomes of a business.&lt;/p&gt;

&lt;p&gt;Using the above techniques and guidelines assures you of more reliable way of data cleaning.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My First GitHub Project: From a Local Folder to GitHub Using Git and SSH.</title>
      <dc:creator>Otuko Mauwa</dc:creator>
      <pubDate>Sun, 23 Aug 2026 01:20:14 +0000</pubDate>
      <link>https://dev.to/alfred-otuko/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-3lae</link>
      <guid>https://dev.to/alfred-otuko/my-first-github-project-from-a-local-folder-to-github-using-git-and-ssh-3lae</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Git is local software that i installed on my machine to help me manage codes while github is an online platform that host git repositories.&lt;br&gt;
This is a step by step guide of how i used git to publish my first project to github while a SSH key for a secure connection with github.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tools Used
&lt;/h2&gt;

&lt;p&gt;This task was done in the following environments&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Windows Operating system &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Git&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git --version
git version 2.55.0.windows.4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Github account &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Actions Taken to Link Git and Github
&lt;/h2&gt;

&lt;p&gt;This are the step by step methods that i used to mlink git and github&lt;/p&gt;

&lt;p&gt;1) Configuring Git&lt;/p&gt;

&lt;p&gt;Configured Git with my github username and the email I used in setting up my github account&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"alfieotuko"&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"alfiemauwa7@gmail.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;2) Generating the SSH key &lt;/p&gt;

&lt;p&gt;The next action is to generate ssh key. The command will generaye two ssh keys, a private ssh key which should not be share and a public ssh key which is what will be used to link the git and github. The generated public ssh key will be copied to be then pasted on github.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; ed25519 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"alfiemauwa7@gmail.com"&lt;/span&gt;
clip &amp;lt; &lt;span class="s2"&gt;"c/user/omolo/"&lt;/span&gt;.ssh/id_ed25519.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3) Inserting the SSH to Github&lt;/p&gt;

&lt;p&gt;The copied ssh key will be be added to github by going to the github settings under the SSH AND GPG keys and then clicking on the ssh key. To confirm if the added ssh key was successful;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-T&lt;/span&gt; git@github.com

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After which it will display a message that it was successful.&lt;/p&gt;

&lt;p&gt;4) Creating Local Folder &lt;br&gt;
Creating a folder in the local directory that will hold data of the project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Desktop
&lt;span class="nb"&gt;mkdir &lt;/span&gt;kenya-hospital-records-analysis
&lt;span class="nb"&gt;cd &lt;/span&gt;kenya-hospital-record-analysis

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;5) Creating a File and a Folder &lt;/p&gt;

&lt;p&gt;Creating a README.md file inside the kenya-hospital-record-analysis folder alongside the file also creating a folder named "data".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;README.md
&lt;span class="nb"&gt;mkdir &lt;/span&gt;data
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6) Creating a Git Repository &lt;/p&gt;

&lt;p&gt;This is to initialize and turn the folder in a git repository and to check in which branch is the folder in&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git init 
git status
On branch main
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7) Stage and Commit&lt;/p&gt;

&lt;p&gt;This is to stage and saving the project checkpoint history but still not saved in online cloud&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git add .
git status 
On branch main
git commit -m "first commit for kenya-hospital-records-analysis"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;8) Linking To Github&lt;/p&gt;

&lt;p&gt;Creating a new and empty repository on github and copying the the URL of the ssh from github and pasting it on git there by saving it on the online platform.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git remote add origin git@github.com:alfieotuko/kenya-hospital-records-analysis
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;9) Pushing to Github&lt;/p&gt;

&lt;p&gt;To save the repository to github&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;git push -u origin main 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Adding URL Link
&lt;/h2&gt;

&lt;p&gt;Here is the link to my github &lt;br&gt;
&lt;a href="https://github.com/alfieotuko" rel="noopener noreferrer"&gt;alfieotukoGithub&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The local folder was saved and hosted in a cloud based github repositories with the ssh providing a secure hosting.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
