My goal here is to provide the best online resource for helping you to learn data analysis, data visualization, building dashboards and other data-related topics using Google Apps, specifically Sheets, Apps Script and Data Studio.

Before you start, why not sign up for my Google Sheets and Data Studio email, full of exclusive tips, tutorials and special offers?

You’ll be joining my community of over 11,000 data analysts, digital marketers, educators and YOU! 👍

If you’re interested in professional Google Sheets training, be sure to check out my online courses.

Here you’ll find all my articles, grouped (as best I can) into:
Google Sheets | Apps Script | Data Studio | Annual Reviews | Other

Google Sheets Articles


How to use Google Sheets: A Beginner’s Guide (a super detailed, 7000 word guide to take you from newbie to ninja in no time!)

How do I get the first and last days of the current month?

How do I get the first and last days of the prior month?

How do I create a drop down list in Google Sheets?


Slow Google Sheets? 🐢 Here are 27 ideas to try today

18 best practices for working with data in Google Sheets

Checkboxes (☑) are now available in Google Sheets! Here’s three ways you can use them.

Format your Google Sheets so they look good GREAT

How to use the FILTER function to return specific values in a Google Sheet

How can I use an OR condition inside the FILTER() function?

How does the array formula work in Google Sheets?

Vlookup in Google Sheets using wildcards for partial matches

Using Google Sheets as a basic web scraper

How can I combine text and numbers in a cell and keep the number formatting?

Help, my formula doesn’t work! (Dealing with errors)


Advanced Formulas 30 Day Challenge – My free Google Sheets Course

Google Sheets Query function: Learn the most powerful function in Google Sheets

Filtering with dates in the QUERY function

How to add a total row to a Query Function table in Google Sheets

How do I do a VLOOKUP to the left in Google Sheets?

How do I return multiple values with a single VLOOKUP formula in Google Sheets?

Running Total Array Formulas (using MMULT)

How do I reverse text in a cell in Google Sheets?

How to create dynamic named ranges in Google Sheets

Use Array Formulas to auto-fill calculation columns when using Google Forms

How can I import social media statistics into Google Sheets?

Data Analysis articles

What the world’s richest man can teach us about averages

How to create and interpret a Scatterplot in Google Sheets

Histogram and Normal Distribution Curves in Google Sheets

Charting articles

Creating dynamic charts using Google Sheets drop down menus

Everything you ever wanted to know about Sparklines in Google Sheets

How to create an annotated line graph in Google Sheets

How to create a funnel chart in Google Sheets

How to create a waterfall chart in Google Sheets

Web traffic chart with dynamic banding in Google Sheets

How do I create a multi-colored line chart in Google Sheets?

Dashboard articles

10 techniques for building a Google Sheets dashboard

Dashboard Design Checklist: From a Blank Google Sheet to Business Insights (incl. Facebook example)

10 techniques to use when building budget templates in Google Sheets

How to build a real-time sales dashboard for E-junkie using Google Sheets and Apps Script

How to create CSS pie charts in Geckoboard dashboards with data from Google sheets

Premier League Social Media Dashboard in Google Sheets

Building a dynamic dashboard for a 3-day digital flash sale

Creating a custom Google Analytics report in a Google spreadsheet

Creating a dynamic dashboard in Google Spreadsheets to track sales for a digital product launch

Other resources

Explaining syntax differences in your formulas due to your Google Sheets location

Google Sheets Resources

Apps Script Articles


Guide to getting started with Apps Script (for absolute beginners)

Guide to getting started with APIs using Apps Script

Intermediate & Advanced

Automatically issue Teachable course certificates with Apps Script

How to build a real-time sales dashboard for E-junkie using Google Sheets and Apps Script

Saving data in your Google Sheets with Apps Script

How to set up time-based triggers to run your Apps Script code

How to add a hyperlinked index sheet or sidebar to your large Google Sheet workbooks

Google Sheets Slack bot: how to push data from your Google Sheets into the popular messaging app

Google Sheets and D3 charts

How to extract email addresses tagged with a specific Gmail label

How to reply to Google Forms survey responses quickly with Sheets & Apps Script

Connecting to the Crunchbase API with Google Sheets

Google Sheets and Mailchimp integration using Apps Script

Show data from the GitHub API in Google Sheets, using Apps Script and Oauth

How to build a real-time sales dashboard for E-junkie using Google Sheets and Apps Script

How to automatically create waterfall charts using Apps Script

How to automatically create funnel charts using Apps Script

One way to animate a chart in Google Sheets

How to create a Data Studio Community Connector with Apps Script

D3 and Google Chart API

Multi-series D3 line chart (D3 only)

Creating a dynamic d3 visualization from the GitHub API (D3 only)

Recreating Tufte’s famous temperature chart with the Google Chart API

Animated temperature chart using the Google Chart API

Other resources

Apps Script resources

Check out my apps script and apps script API repositories on GitHub.

Data Studio Articles


An introduction to Data Studio

Intermediate & Advanced

6 advanced techniques in Data Studio

Community connectors to access any data in Data Studio

Data Studio Connector fields get an update

Other resources

Data Studio resources

Annual Reviews

2017 in review and a look forward to 2018

2016 in review and a look forward to 2017

2015 in review and a look forward to 2016

Other, non-Google related articles


Thoughts on productivity


Refugees resettling in the US in 2015: where from, where to and who? (SQL and Tableau)

Hang on a Median, whaddya Mean there’s no Mode function in MySQL?

Survival and retention analysis using MySQL

Creating a histogram from MailChimp data using MySQL

Deep dive into Mailchimp email data using MySQL


Multi-line chart with custom range banding in Tableau

Makeover Monday Tableau Challenge: Theft in Japan

Human Trafficking Data Visualization: Reviz Project

Makeover Monday: Wage growth in English Football leagues

Suicide: The Gun Issue No One Talks About (Tableau)


Excel tutorial: build a dynamic bump chart of the English Premier League

Excel tutorial: Building a dynamic, animated dashboard for U.S. political data

Excel-fficiency: 10 tips for boosting productivity in Excel

Other resources

Data Analytics Resources (Excel, SQL, Tableau, Statistics, Data Viz)