Sometimes you have a need to reverse a list quickly in Google Sheets.
That’s pretty easy to do if the list is sorted alphabetically. Just go on into the <Data> menu and choose from one of the sort functions. But what if the data you want to flip is not in alphabetical or numeric order?
You’ve probably come across the problem where you need to know when a piece of data has been added to your spreadsheet. You probably have been equally frustrated that there is no out-of-the-box function that will do just this.
You’ve tried TODAY() and NOW(), but they change dynamically. What you really need here is something that does not change.
Let’s look at two workarounds that can help you out with this problem.
I need to create a lot of sample data for tutorials and courses. One of the things that I needed for a recent course I am building was to generate a column containing dummy passwords in Google Sheets. Each password needed to consist of letters, numbers and characters.
Until recently, this task would have been relegated to Google Apps Script.
However, with the recent introduction of the LAMBDA function (Well, at the time of writing this anyway), we can do so much more with our Google Sheets.
Before we dive into the formula, it’s important to understand that these ‘passwords’ or random strings of characters are dynamically generated. This means every time you update a cell or reload your Google Sheet the characters in each cell will change.
So once you generate your passwords, copy the range and paste the values back in (Ctrl + c, Ctrl + Shift + v). This way only the values remain.
If you just want to grab the formula and be on your way, you can copy it from the section below. However, if you want to learn how it all works, read on for a breakdown.
Table of Contents
The Password Maker Formula
Note in the formulas below there are three parameters that you can change:
[NumChars]: The number of characters in each string in each cell.
[NumRows]: The number of rows to produce the random string of characters in.
[NumCols]: The number of columns to produce the random string of characters in.
To quickly change the formula to produce only a certain subset of characters, you will need to delete the desired characters from the string contained in the MID function on line 14 of the example above.
You will also need to change the second argument of the RANDBETWEEN function to the length of your new string of characters.
Hint! You can quickly count the string of characters by copying the characters in the formula (including the double quotation marks on each end) and pasting it inside a LEN function. For example:
=LEN("GOAT!1234") = 9
Check out the sample sets below and their letter lengths for convenience.
In this section, we will walk through the process of creating the random string generator. Not only does this help to provide an understanding of how the formula works, but it also gives you some insight into a good workflow for building your own complex formulas in Google Sheets.
The Starter Sheet - To Play Along
If you want to get hands-on to make things more fun, grab the starter sheet from here:
The MAP function allows you to traverse an array and modify each item in the array. For us, we are going to apply a random character to each item in the sequence we generated.
MAP can take a number of arrays or ranges as its first argument and then a LAMBDA function as its last argument.
The nested LAMBDA array takes an iterator item argument. This represents the current cell the item is modifying as it works through each item in the range. We need to add this argument even if we don’t use it in our formula.
The second LAMBDA argument is the formula expression. That is, what we are doing to change the value in each of the cells.
The delimiter – This is the value we want to use to separate each cell item when we combine it into a string. In our example, we don’t want to separate the characters so we will leave this as an empty string.
The array – This will be the array we generated in the previous section.
In the example above we have created an array two columns wide and five columns deep with a random password length of 5 characters (See the second argument of the SEQUENCE)..
This password generator is a really helpful tool for templating spreadsheets to create examples or quickly generate a password or random string of characters for codes.
As we mentioned above, the passwords will change each time you update the sheet. The best solution to provide a static password would be to use a bit of Google Apps Script Magic connected to an onEdit() function similar to this tutorial:
(Select both the image and the Google Sheet, right-click and select ‘Make a copy’)
The basic pattern is as follows:
=HYPERLINK("URL - Link",IMAGE("URL to your image"))
Working from the inside out, the IMAGE function requires a link to the image that is being used. There are a number of ways of getting this link that I will cover in a moment.
The HYPERLINK Google Sheets function takes the destination link as its first argument and then and then a link label as its second argument. Generally, this argument is text, but we can coerce this label into an image by replacing it with our IMAGE function.
But how do we get the image URL?
Image from an external website
If you store your images on a personal website or from some online photo hosting sites you can get the link to the image.
In the example below, I have a link from my website to my image. I want to use that image as my URL label. This is what my image link would look like:
Unfortunately, we can’t just go to Insert > Image > Insert image in cell for this. Nor can we go to our Google drive, select the image share it and get the URL from the share.
It won’t work.
There are a couple of workarounds for this, but probably the easiest approach is to open the image in a drawing.
Here is how we do it:
Navigate to the Google Drive folder where your image is saved.
In a blank space in the folder right-click > More… > Google Drawings
Inside Google Drawings select Insert > Image > Drive.
A sidebar will appear. Navigate to your image and double-click it. It will load into your drawing.
Holding the left mouse button down, drag the image up to the top-left corner of the drawing.
You will notice a checkered grey and white area in the background, this is the page area. We want the page area to be equal to the image. In the bottom right of the page area, there is a little move triangle-shaped button click and drag it up to match the size of the image.
In the top right of the Drawing app, rename it by clicking on the top-left text where it says “Untitled”. Make sure it is something meaningful for your task.
Now we get the URL for the image. Select File > Share with others > Publish to the web.
A dialogue box will appear. Make sure Link is selected, choose your preferred size and then select Publish.
You will get an alert that comes down from the top of the page making sure you want to publish this image. Select Ok.
You will now have a Google Drawing URL. Hit Ctrl + C (⌘ + C) to copy it.
Head back to your Google Sheet and insert it into IMAGE function. It should look similar to this:
Another approach to adding links to images in Google Sheets that you may want to consider is to add a URL to a cell that you want to use for your image and then insert an image over cells. Then move that image so that it fits inside the cell with the URL.
When a user clicks or hovers over the cell and image the link will appear.
Here are the detailed steps:
Select a cell. If you want something larger, you may have to merge cells together to make it just right.
Add your URL to the selected cell.
Change the text colour of the cell to match the background colour. This will hide the URL just in case you didn’t fit your image in perfectly.
Now go to Insert > Image > Insert image in cell
Select your image from your desired location.
One the image appears in the Sheet, move the image to the cell with the link and resize it so that it fits just inside the cell. Note! You should leave a tiny bit of space from the edges of the cell so that the URL is picked up.