<?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: Joseph Okwemba</title>
    <description>The latest articles on DEV Community by Joseph Okwemba (@josepho_okwemba_a02e2378a).</description>
    <link>https://dev.to/josepho_okwemba_a02e2378a</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%2F3708632%2F44ac0c3f-9c35-4064-82c9-58b11cffa83d.jpg</url>
      <title>DEV Community: Joseph Okwemba</title>
      <link>https://dev.to/josepho_okwemba_a02e2378a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/josepho_okwemba_a02e2378a"/>
    <language>en</language>
    <item>
      <title>Power BI Meets PostgreSQL: A Practical Guide to Local and Cloud Database Connections</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:28:46 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/power-bi-meets-postgresql-a-practical-guide-to-local-and-cloud-database-connections-79i</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/power-bi-meets-postgresql-a-practical-guide-to-local-and-cloud-database-connections-79i</guid>
      <description>&lt;p&gt;Most people build their first Power BI dashboard on a CSV or Excel file. But real&lt;br&gt;
business data lives in a database and connecting Power BI &lt;em&gt;directly&lt;/em&gt; to a SQL&lt;br&gt;
database instead of exporting spreadsheets means your reports can refresh&lt;br&gt;
automatically as the underlying data changes.&lt;/p&gt;

&lt;p&gt;In this guide I connect Power BI to PostgreSQL two ways: a &lt;strong&gt;local&lt;/strong&gt; installation&lt;br&gt;
running on my own machine, and a &lt;strong&gt;cloud-hosted&lt;/strong&gt; instance on &lt;strong&gt;Aiven&lt;/strong&gt;, which&lt;br&gt;
requires SSL. I'll use a car sales and logistics dataset as the working example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why connect Power BI directly to a database?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-time-data&lt;/strong&gt; — refresh the report and it pulls the latest rows, no manual re-export.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation&lt;/strong&gt; — scheduled refresh means the dashboard stays current without anyone touching it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single source of truth&lt;/strong&gt; — everyone builds on the same underlying table instead of copies of a spreadsheet.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Part 1: Connecting to a Local PostgreSQL Database
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install PostgreSQL locally (&lt;a href="https://www.enterprisedb.com/downloads/postgres-postgresql-downloads" rel="noopener noreferrer"&gt;https://www.enterprisedb.com/downloads/postgres-postgresql-downloads&lt;/a&gt;) and confirm the service is running the default port is &lt;code&gt;5432&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Make sure the target database already contains the table you want to visualize.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Power BI Desktop&lt;/strong&gt;, &lt;strong&gt;Get Data&lt;/strong&gt;, &lt;strong&gt;More&lt;/strong&gt;, &lt;strong&gt;Database&lt;/strong&gt;, &lt;strong&gt;PostgreSQL database&lt;/strong&gt; and &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; &lt;code&gt;localhost:5432&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; your database name&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Import&lt;/strong&gt; or &lt;strong&gt;DirectQuery&lt;/strong&gt;, then enter your PostgreSQL username and password when prompted.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Navigator&lt;/strong&gt; window lists your tables select the ones you need and click &lt;strong&gt;Load&lt;/strong&gt;, or &lt;strong&gt;Transform Data&lt;/strong&gt; if you want to clean first.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Opening the Get Data window in Power BI Desktop and selecting the PostgreSQL database connector.&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%2Flp6q58cvv7fwzb2grbsh.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%2Flp6q58cvv7fwzb2grbsh.png" alt=" " width="799" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Navigator window listing the tables available in the local PostgreSQL database after connecting.&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%2Fmj83p3zkx1d42qh8r6vz.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%2Fmj83p3zkx1d42qh8r6vz.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No SSL setup is needed here since the connection never leaves your machine.&lt;/p&gt;

&lt;p&gt;One limitation worth knowing: if you publish this report to the &lt;strong&gt;Power BI Service&lt;/strong&gt; later and want scheduled refresh, a local database needs an &lt;strong&gt;On-Premises Data Gateway&lt;/strong&gt; installed, since the cloud service can't otherwise reach &lt;code&gt;localhost&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2: Connecting to Cloud PostgreSQL on Aiven
&lt;/h2&gt;

&lt;p&gt;Aiven is a managed cloud database provider. Unlike a local database, &lt;strong&gt;Aiven&lt;br&gt;
enforces SSL on every connection&lt;/strong&gt;  your credentials and data are encrypted in&lt;br&gt;
transit, which matters a lot more once the database isn't sitting on your own&lt;br&gt;
laptop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1  Get your connection details from Aiven
&lt;/h3&gt;

&lt;p&gt;Log in to the Aiven console, open your PostgreSQL service, and on the&lt;br&gt;
&lt;strong&gt;Overview&lt;/strong&gt; page copy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host&lt;/li&gt;
&lt;li&gt;Port&lt;/li&gt;
&lt;li&gt;Database name (usually &lt;code&gt;defaultdb&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Username (usually &lt;code&gt;avnadmin&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Aiven PostgreSQL service dashboard showing the host, port, database name, and username needed to connect.&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%2Fsgf5wcxwme7wzyon2g7e.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%2Fsgf5wcxwme7wzyon2g7e.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2  Download and trust the CA certificate
&lt;/h3&gt;

&lt;p&gt;Because Aiven uses a self-signed certificate authority, your machine needs to&lt;br&gt;
explicitly trust it before Power BI's driver will accept the connection.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the same Overview page, click &lt;strong&gt;Download CA Certificate&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Rename it &lt;/li&gt;
&lt;li&gt;Double-click and &lt;strong&gt;Install Certificate&lt;/strong&gt;, &lt;strong&gt;Local Machine&lt;/strong&gt;, &lt;strong&gt;Place all certificates in the following store&lt;/strong&gt;, &lt;strong&gt;Trusted Root Certification Authorities&lt;/strong&gt; and &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Restart Power BI Desktop so the trust store change takes effect.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Downloading the CA certificate from the Aiven console, required to establish a trusted SSL connection.&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%2Fca6lsyz45ukfrh3fk1uk.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%2Fca6lsyz45ukfrh3fk1uk.png" alt=" " width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Confirmation that the Aiven CA certificate was successfully installed into the Trusted Root Certification Authorities store on Windows.&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%2F39lckxmwqrlst3x93k8i.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%2F39lckxmwqrlst3x93k8i.png" alt=" " width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3  Connect Power BI to Aiven
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Get Data&lt;/strong&gt;, &lt;strong&gt;PostgreSQL database&lt;/strong&gt;, &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server:&lt;/strong&gt; &lt;code&gt;your-host.aivencloud.com:port&lt;/code&gt; (host and port combined with a colon).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database:&lt;/strong&gt; &lt;code&gt;defaultdb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Expand &lt;strong&gt;Advanced options&lt;/strong&gt; and set SSL mode to &lt;code&gt;require&lt;/code&gt; (try &lt;code&gt;verify-ca&lt;/code&gt; if you hit certificate errors).&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;OK&lt;/strong&gt;, then in the credentials prompt choose the &lt;strong&gt;Database&lt;/strong&gt; tab (not Windows) and enter your Aiven username and password.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Entering the Aiven host and port into Power BI's PostgreSQL connector, with SSL mode set to require.&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%2F0rlixmn67rquylxxnv3l.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%2F0rlixmn67rquylxxnv3l.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Navigator window listing the jcars_sales table after successfully connecting Power BI to the Aiven-hosted database.&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%2Fairn6s8qdtnh4wf758wc.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%2Fairn6s8qdtnh4wf758wc.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once connected, the table loads exactly like a local one Power Query, data&lt;br&gt;
modeling, and DAX all work identically regardless of where the data physically lives.&lt;/p&gt;

&lt;h3&gt;
  
  
  Troubleshooting
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;"Unable to Connect"  connection refused&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm the Aiven service status is "Running," not "Rebuilding."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;"Remote certificate is invalid"  SSL errors&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirm the certificate was actually installed into &lt;em&gt;Trusted Root Certification Authorities&lt;/em&gt;, not just downloaded.&lt;/li&gt;
&lt;li&gt;Restart Power BI Desktop after installing the certificate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Authentication failures&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Re-copy the password directly from the Aiven console typos are the most common cause.&lt;/li&gt;
&lt;li&gt;Confirm you selected the &lt;strong&gt;Database&lt;/strong&gt; authentication tab, not Windows credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Local vs Cloud: Quick Comparison
&lt;/h2&gt;

&lt;p&gt;A local PostgreSQL database doesn't require SSL, since the connection never leaves your machine, while Aiven always requires SSL because the data is traveling over the internet to a cloud server. This also makes local setup slightly simpler overall, since Aiven adds the one-time certificate step.&lt;/p&gt;

&lt;p&gt;There's also a difference when it comes to scheduled refresh. If you publish your report to the Power BI Service and want it to refresh automatically, a local database needs an On-Premises Data Gateway installed so the cloud service can reach it. Aiven, being cloud-hosted already, works directly with scheduled refresh no gateway required.&lt;/p&gt;

&lt;p&gt;In practice, a local database is a good fit for personal projects or local testing, while a cloud database like Aiven is better suited for team projects and production dashboards that other people need to access.&lt;/p&gt;

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

&lt;p&gt;Connecting Power BI straight to PostgreSQL whether it's sitting on your laptop&lt;br&gt;
or hosted on Aiven  turns a one-time spreadsheet export into a living&lt;br&gt;
dashboard. The core workflow (Get Data, PostgreSQL database, enter&lt;br&gt;
connection details, Navigator, Load) is identical in both cases; the only&lt;br&gt;
extra step for the cloud is trusting Aiven's SSL certificate once. After that,&lt;br&gt;
Power Query, data modeling, and DAX work exactly the same either way.&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>postgres</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Understanding Relationship Schemas and Joins in Power BI (A Beginner's Guide, Using Real Kenyan Crop Data)</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sun, 05 Jul 2026 11:40:51 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/understanding-relationship-schemas-and-joins-in-power-bi-a-beginners-guide-using-real-kenyan-51co</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/understanding-relationship-schemas-and-joins-in-power-bi-a-beginners-guide-using-real-kenyan-51co</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Imagine you're a farmer in Kiambu, Kenya. You keep one notebook listing all the farmers in your cooperative, another notebook recording every harvest how much was planted, how much was yielded, and the profit made and a third notebook listing the different crop types and varieties grown in the region. Each notebook makes sense on its own, but the real value comes when you can flip between them and answer a question like: &lt;em&gt;"Which county produced the most profitable potato harvest last season?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's exactly the problem Power BI solves with &lt;strong&gt;relationships&lt;/strong&gt; and &lt;strong&gt;joins&lt;/strong&gt;. This article uses a real dataset of over 300 Kenyan crop harvest records covering counties, farmers, crop types, seasons, and profits. To walk through what these terms mean, why they matter, and how to set them up. No coding background required.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a "Relationship Schema"?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;schema&lt;/strong&gt; is simply a map of your data it shows what tables you have and how they connect. Think of it like a family tree, but for spreadsheets.&lt;/p&gt;

&lt;p&gt;Our original dataset arrived as &lt;strong&gt;one flat spreadsheet&lt;/strong&gt;, with 313 rows and 19 columns every harvest record repeating the farmer's name, county, crop type, and contact number over and over again. That's fine for a small file, but it makes analysis clumsy and error-prone: if "Kiambu" is spelled two different ways anywhere in those 313 rows, Power BI will treat them as two different counties.&lt;/p&gt;

&lt;p&gt;The fix is to split that single flat file into &lt;strong&gt;separate, connected tables&lt;/strong&gt; a relationship schema. For this dataset, that means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fact_Harvest&lt;/strong&gt;  the core transactional table: one row per harvest, holding measurements like yield, revenue, cost, and profit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1zrtxauosdx36ztgwiaw.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%2F1zrtxauosdx36ztgwiaw.png" alt=" " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dim_County&lt;/strong&gt;  one row per Kenyan county (Kiambu, Meru, Nakuru, and so on).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8r1dqh1bsqzsnjfvn0fe.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%2F8r1dqh1bsqzsnjfvn0fe.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dim_Farmer&lt;/strong&gt; one row per farmer, with their name and contact number.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F38e5rdk2ut66vg1gdaql.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%2F38e5rdk2ut66vg1gdaql.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dim_Crop&lt;/strong&gt; one row per crop type and variety combination (e.g., Potatoes Organic).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qp57nc7cdwos351rvzm.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%2F1qp57nc7cdwos351rvzm.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dim_Season&lt;/strong&gt; one row per growing season (Long Rains, Short Rains, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb0kphyo9b1byq6ci9w4q.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%2Fb0kphyo9b1byq6ci9w4q.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Two Common Schema Shapes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Star Schema&lt;/strong&gt;&lt;br&gt;
Picture one central table &lt;strong&gt;Fact_Harvest&lt;/strong&gt; with the smaller reference tables branching out from it like the points of a star: Dim_County, Dim_Farmer, Dim_Crop, and Dim_Season. Each "point" table connects directly to the central fact table through an ID column.&lt;/p&gt;

&lt;p&gt;This is the layout used below, and it's the one Power BI performs best with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Power BI Model view showing the star schema built from this dataset&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI Model view showing Fact_Harvest connected to Dim_County, Dim_Farmer, Dim_Croptype, and Dim_Season &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%2Fd2bezfnjilvnj6m1zqd5.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%2Fd2bezfnjilvnj6m1zqd5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snowflake Schema&lt;/strong&gt;&lt;br&gt;
This is a star schema broken into smaller pieces. For example, Dim_Crop could itself be split further into a separate Dim_CropCategory table. It's more normalized but adds complexity best avoided unless there's a clear need.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are "Joins" (Relationships) in Power BI?
&lt;/h2&gt;

&lt;p&gt;In everyday database language, these connections are often called "joins." In Power BI specifically, they're called &lt;strong&gt;relationships&lt;/strong&gt;, and you build them visually no code required.&lt;/p&gt;

&lt;p&gt;A relationship links a &lt;strong&gt;column in one table&lt;/strong&gt; to a &lt;strong&gt;matching column in another table&lt;/strong&gt;. In our dataset: the &lt;code&gt;CountyID&lt;/code&gt; column in Fact_Harvest links to the &lt;code&gt;CountyID&lt;/code&gt; column in Dim_County. The &lt;code&gt;FarmerID&lt;/code&gt; in Fact_Harvest links to &lt;code&gt;FarmerID&lt;/code&gt; in Dim_Farmer. And so on for &lt;code&gt;CropID&lt;/code&gt; and &lt;code&gt;SeasonID&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Relationships
&lt;/h3&gt;

&lt;p&gt;This sounds technical, but it just describes &lt;em&gt;how many&lt;/em&gt; matching records exist on each side.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One-to-Many (most common):&lt;/strong&gt; One county (Kiambu) can appear against many harvest records in Fact_Harvest, but each harvest record belongs to only one county. This is exactly the relationship between Dim_County and Fact_Harvest in our model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-to-One:&lt;/strong&gt; Each record in Table A matches exactly one record in Table B (rare not present in this dataset).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Many-to-Many:&lt;/strong&gt; Records on both sides can repeat. Power BI supports this, but it should be used carefully since it can make totals harder to trust.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The "Edit relationship" dialog in Power BI, showing the relationship between Fact_Harvest and Dim_County&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Power BI Edit relationship dialog showing Fact_Harvest joined to Dim_County on CountyID, cardinality Many to one&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%2F6aogh1p8isesyp4jhlk1.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%2F6aogh1p8isesyp4jhlk1.png" alt=" " width="799" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice the cardinality is set to &lt;strong&gt;"Many to one (*:1)"&lt;/strong&gt; many harvest records point to one county and the cross-filter direction is &lt;strong&gt;"Single,"&lt;/strong&gt; meaning filtering by county correctly filters the harvest records, not the other way around.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cross-Filter Direction
&lt;/h3&gt;

&lt;p&gt;This determines which table "controls" the filtering of the other. In our model, filtering a report by County (say, selecting only "Meru") will correctly filter Fact_Harvest down to only Meru's harvests. Power BI sets this automatically for star schemas, so as a beginner you rarely need to change it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Create a Relationship in Power BI
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Load the split tables into Power BI Desktop: &lt;code&gt;Fact_Harvest.csv&lt;/code&gt;, &lt;code&gt;Dim_County.csv&lt;/code&gt;, &lt;code&gt;Dim_Farmer.csv&lt;/code&gt;, &lt;code&gt;Dim_Crop.csv&lt;/code&gt;, and &lt;code&gt;Dim_Season.csv&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;Model view&lt;/strong&gt; icon on the left-hand sidebar (it looks like three connected boxes).&lt;/li&gt;
&lt;li&gt;You'll see each table laid out as a card with its column names listed inside.&lt;/li&gt;
&lt;li&gt;Click and drag &lt;code&gt;CountyID&lt;/code&gt; from Fact_Harvest directly onto &lt;code&gt;CountyID&lt;/code&gt; in Dim_County.&lt;/li&gt;
&lt;li&gt;Power BI draws a line between them and automatically detects the relationship type.&lt;/li&gt;
&lt;li&gt;Double-click that line to open &lt;strong&gt;Edit relationship&lt;/strong&gt;, where you can confirm the cardinality and filter direction, exactly as shown in Screenshot 7 above.&lt;/li&gt;
&lt;li&gt;Repeat for &lt;code&gt;FarmerID&lt;/code&gt;, &lt;code&gt;CropID&lt;/code&gt;, and &lt;code&gt;SeasonID&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why Does This Matter?
&lt;/h2&gt;

&lt;p&gt;If &lt;code&gt;CountyID&lt;/code&gt; in Fact_Harvest isn't properly connected to Dim_County, Power BI has no way of knowing that "CountyID 3" refers to Kiambu. This leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Profit totals that don't split correctly by county in a chart&lt;/li&gt;
&lt;li&gt;Slicers for crop type or season that don't filter anything&lt;/li&gt;
&lt;li&gt;Reports that &lt;em&gt;look&lt;/em&gt; fine but are quietly giving wrong answers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setting up a clean star schema  Fact_Harvest at the center, with Dim_County, Dim_Farmer, Dim_Crop, and Dim_Season branching out is like organizing farm notebooks so that when you ask "which county had the highest average profit per acre this season," every notebook can be consulted together and give one accurate, trustworthy answer.&lt;/p&gt;

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

&lt;p&gt;Relationships and schemas might sound like advanced database jargon, but at their core they're about &lt;strong&gt;connecting related pieces of information so they can talk to each other&lt;/strong&gt;. Using this real dataset of 500 Kenyan crop harvests, we went from one unwieldy flat file to a clean star schema and once that connection is in place, questions like "which crop is most profitable in the Short Rains season" become a simple drag-and-drop report instead of a manual spreadsheet headache.&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>datascience</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How I Learned Excel in My First Week Of Data Science - Real-World Uses Explained</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sat, 06 Jun 2026 09:34:30 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/how-i-learned-excel-in-my-first-week-of-data-science-real-world-uses-explained-28me</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/how-i-learned-excel-in-my-first-week-of-data-science-real-world-uses-explained-28me</guid>
      <description>&lt;p&gt;When I started learning Data Science, I thought the first thing I would learn was Python. I expected to spend my first week writing code and learning about machine learning.&lt;/p&gt;

&lt;p&gt;Instead, our instructor introduced us to Excel.&lt;/p&gt;

&lt;p&gt;At first, I didn't understand why we were starting with a spreadsheet. I had always thought Excel was mainly used to enter numbers and create simple tables. But after working with an employee dataset in class, I realized there was much more to it.&lt;/p&gt;

&lt;p&gt;As we practiced sorting data, filtering records, and using formulas like &lt;code&gt;SUM()&lt;/code&gt;, &lt;code&gt;AVERAGE()&lt;/code&gt;, and &lt;code&gt;COUNT()&lt;/code&gt;, I began to see why Excel is still an important tool for data analysts. By the end of the week, I understood that before you can analyze data with programming languages, you first need to know how to organize and understand the data itself.&lt;/p&gt;

&lt;p&gt;Looking back, starting with Excel made a lot more sense than I expected. It gave me a strong foundation and made me feel more confident about the next stages of my Data Science journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Uses of Excel
&lt;/h2&gt;

&lt;p&gt;Excel is widely used across industries for handling and analyzing data. Some of the most common uses include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Business Analysis&lt;/strong&gt; - Tracking sales and identifying trend &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accounting and Budgeting&lt;/strong&gt; - Managing Expenses, Profits and Financial reports &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marketing Analysis&lt;/strong&gt; - Measuring campaigns performance and customer behavior &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Entry and Management&lt;/strong&gt;  - organizing large datasets efficiently &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Businesses rely on Excel because it helps turn raw data into meaningful insights for decision making.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Excel Features I Learned
&lt;/h2&gt;

&lt;p&gt;In my first week, I explored several important Excel Features that help with data organization and analysis: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Excel Interface Overview&lt;/strong&gt; - I first explored how Excel is organized, including Ribbon, Worksheets, Cell, Row, Columns, and formula bar. this helped me understand how to navigate the tool before working with data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Excel interface&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%2Ft4x16ynzlr1siuepqiau.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%2Ft4x16ynzlr1siuepqiau.png" alt=" " width="799" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Excel Cell indicated in yellow&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%2Fqgzol38ic8jxl99r610w.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%2Fqgzol38ic8jxl99r610w.png" alt=" " width="799" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Excel Row indicated in Green A2&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%2F295u4p3e4fp3jsclrrpb.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%2F295u4p3e4fp3jsclrrpb.png" alt=" " width="800" height="211"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;excel column indicated in yellow&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%2Fhozowk1fwtbs3w0obuc9.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%2Fhozowk1fwtbs3w0obuc9.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Sorting&lt;/strong&gt; - Organizing data by numbers, Text and Dates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjpah3cjbsg8j9r4xl710.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%2Fjpah3cjbsg8j9r4xl710.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Filtering&lt;/strong&gt; - Showing only relevant data based on condition &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszbon7rx8fmxv897cyda.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%2Fszbon7rx8fmxv897cyda.png" alt=" " width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data Validation&lt;/strong&gt; - Ensuring accurate and consistent data entry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbgcubc9zq8cp6z9qdlly.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%2Fbgcubc9zq8cp6z9qdlly.png" alt=" " width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Freeze Panes&lt;/strong&gt; - Keeping header Visible while scrolling through large datasets. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2xzvp2brlxi1hyb4ozsj.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%2F2xzvp2brlxi1hyb4ozsj.png" alt=" " width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These features make working with data much easier, faster and more structured.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Excel Functions I learned
&lt;/h2&gt;

&lt;p&gt;I was also introduced  to some basic Excel functions used in Data Analysis.&lt;br&gt;
&lt;strong&gt;Aggregate Functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;SUM&lt;/strong&gt; - Add all values in a range &lt;br&gt;
&lt;strong&gt;Sum salary of employee &lt;code&gt;=sum(E2:E870)&lt;/code&gt;&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%2Fswogygqcdndtpxojvcog.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%2Fswogygqcdndtpxojvcog.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;AVERAGE&lt;/strong&gt; - Calculate the mean of a dataset&lt;br&gt;
&lt;strong&gt;Finding Average salary we use &lt;code&gt;=Average(E2:E870)&lt;/code&gt;&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%2Fainq7dbvtmihn56kzur6.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%2Fainq7dbvtmihn56kzur6.png" alt=" " width="799" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;COUNT&lt;/strong&gt; - Counts numerical entries in a dataset &lt;br&gt;
&lt;strong&gt;Count employee with ages recorded &lt;code&gt;=count(G2:G870)&lt;/code&gt;&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%2F91eu1wst7b9gje4z67oo.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%2F91eu1wst7b9gje4z67oo.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conditional Functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;&lt;code&gt;SUMIF()&lt;/code&gt; and &lt;code&gt;SUMIFS()&lt;/code&gt;&lt;/strong&gt; - Add values that meets one or more conditions&lt;br&gt;
-&lt;strong&gt;&lt;code&gt;COUNTIF()&lt;/code&gt; and &lt;code&gt;COUNTIFS()&lt;/code&gt;&lt;/strong&gt; - Counts records that match specific criteria &lt;br&gt;
-&lt;strong&gt;&lt;code&gt;AVERAGEIF()&lt;/code&gt; and &lt;code&gt;AVERAGEIFS()&lt;/code&gt;&lt;/strong&gt; - Calculate average based on selected conditions &lt;/p&gt;

&lt;p&gt;These functions help analysts answer business questions such as total sale by product, customer count by region, or average performance across departments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OTHER FUNCTIONS&lt;/strong&gt;&lt;br&gt;
I also learned about:&lt;br&gt;
-&lt;strong&gt;TEXT FUNCTIONS&lt;/strong&gt; such as &lt;code&gt;LEFT()&lt;/code&gt;, &lt;code&gt;RIGHT()&lt;/code&gt;, &lt;code&gt;LEN()&lt;/code&gt;, and &lt;code&gt;CONCAT()&lt;/code&gt;&lt;br&gt;
-&lt;strong&gt;&lt;code&gt;DATE&lt;/code&gt; and &lt;code&gt;TIME FUNCTIONS&lt;/code&gt;&lt;/strong&gt; such as &lt;code&gt;TODAY()&lt;/code&gt;, &lt;code&gt;NOW()&lt;/code&gt;, &lt;code&gt;DAY()&lt;/code&gt;, &lt;code&gt;MONTH()&lt;/code&gt;, &lt;code&gt;YEAR()&lt;/code&gt;&lt;br&gt;
These functions help analyst clean data, identify Trends, and create meaningful reports. &lt;/p&gt;

&lt;h2&gt;
  
  
  What this changed for me
&lt;/h2&gt;

&lt;p&gt;Before this week, I thought Excel was just a tool for entering data and doing simple calculations. After working with an employee dataset and practicing different formulas, I realized how much you can learn from well-organized data. Even simple tasks like sorting, filtering, and calculating totals became much easier than doing them manually.&lt;/p&gt;

&lt;p&gt;The biggest lesson for me wasn't just learning new formulas—it was understanding the importance of organizing data before trying to analyze it. That foundation will be useful as I continue learning Data Science.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Although this was only my first week, I now understand why many Data Science and Data Analytics courses begin with Excel. It has helped me build confidence in working with datasets and understand the basics before moving on to programming.&lt;/p&gt;

&lt;p&gt;My next goal is to learn more advanced Excel features like Tables, XLOOKUP, and Dashboards before continuing with Python and data visualization. I'm excited to keep learning and see how these skills connect as I progress. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What was your first experience with Excel like?&lt;/strong&gt;&lt;br&gt;
If you're learning Data Analytics or already working in the field, I'd love to hear about your experience and any tips you have for someone just getting started.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>learning</category>
      <category>excel</category>
    </item>
    <item>
      <title>Schemas and Data Modeling in Power Bi</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sun, 01 Feb 2026 16:49:07 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/schemas-and-data-modeling-in-power-bi-4ckh</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/schemas-and-data-modeling-in-power-bi-4ckh</guid>
      <description>&lt;p&gt;&lt;em&gt;The blue print for High-perfomance Analytics&lt;/em&gt;&lt;br&gt;
Effective data modelling is foundation of reliable analytics. Regardless of how advanced your visualisation are, a poor model leads to slow reports and inaccurate insightst. This article explore the esseential architecture of Power BI: Schemas, Tables, and Relationships.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core Building Blocks
&lt;/h2&gt;

&lt;p&gt;Power BI uses the &lt;em&gt;Vertipaq in memory engine&lt;/em&gt;, Which thrive on structred data. To leverage this, you must categorize your table into two roles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Fact Tables&lt;/em&gt;&lt;/strong&gt;: These store quantitative events (e.g., sales, Temparature rreading, or Tickets). They are long "long," containing millions of rows with numeric values to be aggregated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;DImension Table&lt;/em&gt;&lt;/strong&gt;: These provide context (e.g.,Date, Product, or Geography). They are "wide," containing descriptive attribute used for slicing and dicing. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Choosing The Roght Schema
&lt;/h2&gt;

&lt;h1&gt;
  
  
  The Star Scheme (Best Practise)
&lt;/h1&gt;

&lt;p&gt;In the star schema, A central FAct table is surrounded by Dimension tables. &lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;&lt;em&gt;Why it works&lt;/em&gt;&lt;/strong&gt;: it's the most effecient for POwer BI. It minimize the number of "joins" the engine must perform, resulting in lighting-fast calculations. &lt;/p&gt;

&lt;p&gt;-&lt;strong&gt;&lt;em&gt;The verdict&lt;/em&gt;&lt;/strong&gt;: Always aim for this.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Snowflake Schema
&lt;/h2&gt;

&lt;p&gt;A snowflake shema occurs when dimensions tables are &lt;strong&gt;&lt;em&gt;normlized&lt;/em&gt;&lt;/strong&gt;(e.g., a &lt;em&gt;product&lt;/em&gt; table links to a &lt;em&gt;category&lt;/em&gt; table). &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;The Downside&lt;/em&gt;&lt;/strong&gt;:While it saves space, It forces Power BI to perform  multiple joins, which can drag down performance and make &lt;strong&gt;&lt;em&gt;DAX&lt;/em&gt;&lt;/strong&gt; measure much harder to write. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Power BI &lt;strong&gt;&lt;em&gt;Audit&lt;/em&gt;&lt;/strong&gt; Checklist
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Best Practice&lt;/th&gt;
&lt;th&gt;Red Flag (Avoid)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Relationship&lt;/td&gt;
&lt;td&gt;One-to-Many (1 : *)&lt;/td&gt;
&lt;td&gt;Many-to-Many (* : *)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filter Direction&lt;/td&gt;
&lt;td&gt;Single (Dim → Fact)&lt;/td&gt;
&lt;td&gt;Bi-directional (Both)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schema Type&lt;/td&gt;
&lt;td&gt;Star Schema&lt;/td&gt;
&lt;td&gt;Flat / Wide Tables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Granularity&lt;/td&gt;
&lt;td&gt;Consistent across tables&lt;/td&gt;
&lt;td&gt;Mixed levels of detail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Common Pitfalls and How to Fix Them
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Problem&lt;/em&gt;&lt;/strong&gt; "My totals are wrong when i use a specific slicer."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;The Fix&lt;/em&gt;&lt;/strong&gt;:Check your &lt;strong&gt;&lt;em&gt;Relationship Direction&lt;/em&gt;&lt;/strong&gt;. Ensure your dimension id filtering the fact table, not the other way round. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Problem&lt;/em&gt;&lt;/strong&gt;: :Power BI says there is a 'circular Dependancy'"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;The Fix&lt;/em&gt;&lt;/strong&gt;: Thisusually happens with Bi-directional filters. Change your cross-filter  to "single" to restore a logical data flow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters for Your Business
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Perfomance&lt;/em&gt;&lt;/strong&gt;: Well-modeled load in milliseconds, even with millions of row.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Accuracy&lt;/em&gt;&lt;/strong&gt; A star schema prevent "double-counting" and ensure &lt;strong&gt;&lt;em&gt;DAX&lt;/em&gt;&lt;/strong&gt; logic remains simpleand predictable. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;3.&lt;strong&gt;&lt;em&gt;Self-Service&lt;/em&gt;&lt;/strong&gt;: when the model is clean, non-technical users can build their own charts without breaking the data. &lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Aid Recommendation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjp71z0eg3n3f1nvc7aq2.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%2Fjp71z0eg3n3f1nvc7aq2.png" alt="Star schema data model in Power BI showing a central fact table connected to multiple dimension tables" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>architecture</category>
      <category>dataengineering</category>
      <category>microsoft</category>
    </item>
    <item>
      <title>Introduction to Micrososft Excel for Data Analytics</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sat, 24 Jan 2026 17:31:59 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/introduction-to-micrososft-excel-for-data-analytics-3iic</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/introduction-to-micrososft-excel-for-data-analytics-3iic</guid>
      <description>&lt;p&gt;Microsoft excel is one of the easiest tool to use when starting with data analytics. It helps to organise data, perfom simple analysis, and present result clearly. In this article, I explain how excel can be used  for basic data analysis using simple examples. &lt;/p&gt;

&lt;h2&gt;
  
  
  Opening and viewing data on excel
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 1: Excel workbook with dataset opened&lt;br&gt;
The first step is data analysis using excel is opening dataset. Once the file is opened, the data appears in the raw and columns. Each column represesnts a type of information, such as names, location, or values.&lt;br&gt;
Having data well arranged make it easier to work and analyze.&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%2Fegfkl4xor9m0qd4f8f6f.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%2Fegfkl4xor9m0qd4f8f6f.png" alt=" " width="799" height="424"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Understanding Raw, Columns, and Cells
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 2: Excel sheet showing column headers and rows&lt;br&gt;
Each box in excel is called a cell. Row run horizontally, while column run vertically. column headers help identify what type of data is stored in each colum.&lt;br&gt;
This structure allow data to be organized clearly. &lt;br&gt;
Example of rows, columns, and a selected cell in Excel&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%2F2z5yyxg9sxv0tyoc9pxx.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%2F2z5yyxg9sxv0tyoc9pxx.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Sorting Data
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 3: Sort option selected from the Data tab&lt;br&gt;
Sorting is used to arrange data in a specific order. For example, Data can be sorted alphabetically or Numeric. &lt;br&gt;
Sorting helps quickly identify highest, Lowest, or grouped values. &lt;br&gt;
Data sorted in Excel to organize information more clearly.&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%2Flvemzpo9h15ijwn1f4v6.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%2Flvemzpo9h15ijwn1f4v6.png" alt=" " width="800" height="411"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fhuueuqk5pksd6k40tjdq.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%2Fhuueuqk5pksd6k40tjdq.png" alt=" " width="800" height="423"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F7pm7lvxbubium8e0hqgh.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%2F7pm7lvxbubium8e0hqgh.png" alt=" " width="800" height="392"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;
  
  
  Filtering Data
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 4: Filter applied to a column&lt;br&gt;
Filtering allows users to display only specific information. For example  filtering can be used to show data from one location only. &lt;/p&gt;

&lt;p&gt;this help focus on relevant data without deleting anything. &lt;br&gt;
Filtering data in Excel to display only specific records.&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%2Fzbxwfvri3g6tz5uodvod.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%2Fzbxwfvri3g6tz5uodvod.png" alt=" " width="799" height="425"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F7ndt0ou4i7g5od26kr04.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%2F7ndt0ou4i7g5od26kr04.png" alt=" " width="799" height="410"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F90b4tooe4pgcprfvbaz5.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%2F90b4tooe4pgcprfvbaz5.png" alt=" " width="799" height="422"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Using Basic Formulas
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 5: Formula bar showing SUM or COUNTIF&lt;br&gt;
Excel formulas help perform calculations automatically. Common formulas include:&lt;br&gt;
&lt;strong&gt;SUM&lt;/strong&gt; for adding values.&lt;br&gt;
&lt;strong&gt;COUNT&lt;/strong&gt; or &lt;strong&gt;COUNTIF&lt;/strong&gt; if for counting entries &lt;br&gt;
&lt;strong&gt;AVERAGE&lt;/strong&gt; for calculating the mean. &lt;br&gt;
Formulas makes analysis faster and reduce manual errors. &lt;br&gt;
Click an empty cell&lt;/p&gt;

&lt;p&gt;Enter a formula such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNTIF(P:P,"Nairobi")

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

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;=COUNTIFS(P:P,"Nairobi",O:O,"Intern")

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

&lt;/div&gt;



&lt;p&gt;Using an Excel formula to analyze data&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.amazonaws.com%2Fuploads%2Farticles%2Fwf8cllpzcqzo93ynlpdl.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%2Fwf8cllpzcqzo93ynlpdl.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Charts
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 6: Bar or column chart created from data&lt;br&gt;
Chart helps turn data into visual information. Excel allow users to create charts such as bar chart and pie charts. &lt;br&gt;
charts makes it eaiser to compare values and understand trends. &lt;br&gt;
Chart created in Excel to visually represent the data.&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.amazonaws.com%2Fuploads%2Farticles%2F6p73ymto6qb98c3sbv6y.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%2F6p73ymto6qb98c3sbv6y.png" alt=" " width="800" height="423"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F00nq2l5g7xt68zyuxszu.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%2F00nq2l5g7xt68zyuxszu.png" alt=" " width="800" height="422"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fhlkdamttu52fimxtnr6o.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%2Fhlkdamttu52fimxtnr6o.png" alt=" " width="800" height="426"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2F17unshkdg2flcdfcjia3.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%2F17unshkdg2flcdfcjia3.png" alt=" " width="800" height="423"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fpw3sqninz10re986xzex.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%2Fpw3sqninz10re986xzex.png" alt=" " width="799" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Formatting Data
&lt;/h2&gt;

&lt;p&gt;📸 Screenshot 7: Formatted table with bold headers and colors&lt;br&gt;
Formatting helps improve readability. This include bolding headers, adjusting column width, and applying number formatts. &lt;br&gt;
Well-Formatted data is easier to understand and looks more professional. &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%2Frtm2y75uja66d6o67ifq.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%2Frtm2y75uja66d6o67ifq.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Formatted dataset to improve readability and presentation.&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.amazonaws.com%2Fuploads%2Farticles%2F85jk9z48fcot6dvn4flm.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%2F85jk9z48fcot6dvn4flm.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;📸 Optional Screenshot: Final dataset or chart&lt;br&gt;
Microsoft excel is a useful tool for basic data analytics. It help organize data, Perfomr simple analysis, and present result clearl. For beginners, Excel is good strating point before learning advance data analyiss. &lt;/p&gt;

</description>
      <category>analytics</category>
      <category>beginners</category>
      <category>microsoft</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Understanding Git and GitHub: A Beginners Guide</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Sun, 18 Jan 2026 06:06:06 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/understanding-git-and-github-a-biginners-guide-4gho</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/understanding-git-and-github-a-biginners-guide-4gho</guid>
      <description>&lt;h1&gt;
  
  
  What is Git?
&lt;/h1&gt;

&lt;p&gt;Git is version control system that helps you keep track of changes in made to your code. Instead of saving many copies of the same project, Git record each changes and store it as part of the project history.&lt;br&gt;
with git you can always go back to an earlier version of your code if something goes wrong. Git works locally on your computer and does not need internet to track changes. &lt;/p&gt;
&lt;h2&gt;
  
  
  Why version control is important
&lt;/h2&gt;

&lt;p&gt;version control is important for several reasons &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;it helps you &lt;strong&gt;avoid loosing your work&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You can see &lt;strong&gt;what changes were made and when&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;It allows &lt;strong&gt;Multiple people to work on the same project&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;You can easily fix mistakes by going back to previous version 
In real software project, Version is necessary because code change is always changing. &lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Git and GitHub Difference
&lt;/h2&gt;

&lt;p&gt;Git and GitHub are not the same thing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git&lt;/strong&gt; is the tool that track and changes your computer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; is an online platform where you store and share your Git project
you use Git commands to send your code to GitHub or get code from GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Seting up Git on your computer
&lt;/h2&gt;

&lt;p&gt;Before using Git, you need to make sure it is installed and configured. &lt;/p&gt;
&lt;h2&gt;
  
  
  Check Git version
&lt;/h2&gt;

&lt;p&gt;To confirm Git is installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure your Name and Email
&lt;/h2&gt;

&lt;p&gt;Git uses this information to track who made changes.&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;"joseph"&lt;/span&gt; 
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"joseph@gmail.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To confirm the configuration :&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; &lt;span class="nt"&gt;--list&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Setting up &lt;strong&gt;HHS&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;SSH allow you to connect to GitHub securely without entering your password every time.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Generate HHS key
&lt;/h2&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; joseph@gmail.com&lt;span class="s2"&gt;"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Press &lt;strong&gt;enter&lt;/strong&gt; to accept the default file location.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start the &lt;strong&gt;HHS&lt;/strong&gt; agent
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add &lt;strong&gt;SSH&lt;/strong&gt; key
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-add ~/.ssh/id_ed25519

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Copy the public key
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_ed25519.pub

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

&lt;/div&gt;



&lt;p&gt;Copy the output and add it to GitHub → setting → SHH → and GPG key.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to push GitHub code
&lt;/h2&gt;

&lt;p&gt;First, open your project in the terminal &lt;/p&gt;

&lt;h1&gt;
  
  
  Step one
&lt;/h1&gt;

&lt;p&gt;Step 1: Initialise Git&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2: Check file status&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3: Add File&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;step 4: Commit changes&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"My first commit"&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Step 5 : Connect to GitHub Repository&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin https://github.com/username/repository-name.git

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

&lt;/div&gt;



&lt;p&gt;Step 6: Push the code&lt;br&gt;
&lt;/p&gt;

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

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

&lt;/div&gt;



&lt;p&gt;your code will now appear on GitHub&lt;/p&gt;

&lt;h2&gt;
  
  
  How to pull code from GitHub
&lt;/h2&gt;

&lt;p&gt;pulling means getting the latest version of the project from giHub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull origin main 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;this is usefully when working others or when switching devices &lt;/p&gt;

&lt;h2&gt;
  
  
  How to track changes using Git
&lt;/h2&gt;

&lt;p&gt;To see changed files&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To see what exactly changed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To view commit history&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This commands help you understand how your project has changed over time &lt;/p&gt;

&lt;h2&gt;
  
  
  conclusion
&lt;/h2&gt;

&lt;p&gt;Git is very important tool for developers. It helps you manage your code, track changes, and work with others.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Luxdev Markdown Language Class</title>
      <dc:creator>Joseph Okwemba</dc:creator>
      <pubDate>Tue, 13 Jan 2026 11:00:02 +0000</pubDate>
      <link>https://dev.to/josepho_okwemba_a02e2378a/luxdev-markdown-language-class-49hk</link>
      <guid>https://dev.to/josepho_okwemba_a02e2378a/luxdev-markdown-language-class-49hk</guid>
      <description>&lt;h1&gt;
  
  
  How to right a  markdown language
&lt;/h1&gt;

&lt;p&gt;this is the first markdown language the students have learned and they can now write an article on dev.to &lt;/p&gt;

&lt;h2&gt;
  
  
  The first things students learned
&lt;/h2&gt;

&lt;p&gt;the student have learned how to write a heading &lt;/p&gt;

&lt;h3&gt;
  
  
  lastly but not leat
&lt;/h3&gt;

&lt;p&gt;she/he tolld me that &lt;strong&gt;they love tech&lt;/strong&gt; and i responded &lt;em&gt;i enjoy tech&lt;/em&gt; too.&lt;br&gt;
-Morning class &lt;br&gt;
-Evening class&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;*name = "kaleb"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is where you wiil find me; &lt;a href="https://dev.toin/joseph-okwemba-6b4837156"&gt;visit my linkedIn account on&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9b12j4cdzbx6qw1dtqwz.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%2F9b12j4cdzbx6qw1dtqwz.png" alt=" " width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

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