**Why would you want to group worksheets?**

By grouping worksheets you can make the same change to multiple worksheets at the same time. This can be a formatting change, a structural change such as inserting a row, or even a formula.

A group can consist of one or more sheets. Once the sheets are grouped, perform the actions you want on the active sheet and those actions are replicated on the other sheets of the group.

- Click on the first sheet you want in the group, then hold down the
**Ctrl**key and select the other sheets. If the sheet tabs are contiguous you can hold**Shift**and click the first and last sheets of the group. - You can now perform whatever actions you want on the grouped sheets. In the video below I demonstrate writing a formula, formatting some cells and also formatting the sheet tabs.

When the sheets of a workbook are grouped, Excel displays [Group] next to the workbook name in the Title bar. This serves as a constant reminder of the grouped status. Some Excel functionality does not work when sheets are grouped.

To ungroup the worksheets, either click on any sheet tab that is not in the group, or right mouse click a sheet tab and select **Ungroup** sheets.

If you want to group all of the sheets of a workbook, right mouse click a sheet tab and select **Group All Sheets**.

Want to see what grouping worksheets can do for you. Check out the video below.

The example below is a typical example of CONCATENATE. In this example, it is being used to join the first name and last name and insert a space in between. The formula below is written in cell C2.

=CONCATENATE(A2,” “,B2)

This blog post uncovers **4 amazing tips to take your CONCATENATE functions to the next level**.

If you are joining large amounts of text then you may need to wrap it on multiple lines. This is a common technique with text in Excel because excessively wide column can make tables awkward.

To do this with the CONCATENATE function, you must first apply text wrapping to the cells. This alone though will not wrap the text of a formula.

To wrap the text of the CONCATENATE function we need to insert line breaks. And because this is a formula that will require a function.

The function for the job is CHAR. This function will return a character specified by a code from the computer. We need a line break so need to know the code for that. You can find these codes by searching online. For a line break we need code 10.

This CHAR function can be nested within CONCATENATE like below.

=CONCATENATE(A2,CHAR(10),B2,CHAR(10),C2,CHAR(10),D2)

The result of the above formula is shown below.

The Ampersand (&) can also be used to join text as a simple alternative to the CONCATENATE function. The example below joins the first name and last name again with a space in between.

=A2&” “&B2

The TEXT function can be used with CONCATENATE to brilliant effect.

The TEXT function will convert a number to text, but display it in a number format. Without the TEXT function we would not be able to join numbers into a text string in a legible format.

In the example below the TEXT function has been used to include the sum total of values in CONCATENATE, and display them in a currency format.

=CONCATENATE("Total sales for 2016 - ",TEXT(SUM(B4:B8),"£#,###.00"))

Adding descriptive labels to your Excel charts is useful. Adding creative and dynamic labels is awesome.

You can link your chart labels such as the chart title, data labels and axis titles to the cells of a worksheet. The great thing about this is that when the cell content changes, so does the chart label.

Now with CONCATENATE we can build great content for labels. Take for example, the sales total using the TEXT function we created previously. This would be a great label.

To link a chart label to the cell; simply click on the label, then click the Formula Bar and type = followed by clicking on the cell.

The reference created by Excel will be absolute and include the sheet name. It will look something like *=’This Year Sales’!$C$10*.

You will then have an awesome chart title like below which updates as the formulas on the sheet change.

**One that drifts under the radar a little is the WEEKDAY function**. This function will return a number that identifies the day of the week of a date.

This can be very useful. This blog post will look at two examples of what the WEEKDAY function can do for you.

Firstly, let’s look at how this function is written. The syntax of the function is;

=WEEKDAY(serial number, [return type])

The *serial number* is simply the date that you want to find out the weekday for.

The *return type* is a number from 1 to 7 that identifies the day of the week of the date. It provides a list so that you can choose how you would like the number returned e.g. Sunday = 1 to Saturday = 7, or Monday = 1 to Sunday = 7.

One situation where you may want to use the WEEKDAY function is to calculate a different rate of pay for weekend work.

In the list below the WEEKDAY function has been used with the IF function in column C to calculate a different rate of pay when working on a Saturday.

This was achieved my using the formula below in cell C2. This formula checks if the day of the week is equal to 7 (which indicates a Saturday). If this is true then the hours worked is multiplied by the Saturday rate, and if not then the hours worked is multiplied by the standard workday hourly rate.

=IF(WEEKDAY(A2,1)=7,B2*$F$3,B2*$F$2)

In this list the 04/02/2017 and the 11/02/2017 were a Saturday. You can see that Excel applied the increased rate of pay.

This example can be seen in action on my Excel timesheet for different rates for shift work post.

Let’s look at another example. Maybe we wish to highlight the dates in a list that fall on a Saturday or a Sunday.

- Select the range of dates you want to format.
- Click the
**Home**tab,**Conditional Formatting**button and then**New Rule**. - Select
**Use a formula to determine which cells to format**. - Enter a formula like the one below in the box provided.

=OR(WEEKDAY(A2,1)=1,WEEKDAY(A2,1)=7)

In this formula the OR function is used to test more than one condition. Although a range of dates was highlighted, we only reference cell A2 in the formula because it is the first cell of that range.

I used this function for this exact reason in my Excel Gantt Chart template.

Take this example where column A contains a start date and time, and column B an end date and time. We wish to **calculate the elapsed time in days, hours and minutes** e.g. 11 days 4 hours 9 minutes.

There are multiple ways of calculating date and time difference in Excel. In this scenario we will need to get a little clever.

As you may well know, date and time values are stored as numbers in Excel. For example, the 05/01/2017 10:10 is stored as 42740.42.

Therefore, if I write the formula as =B2-A2, then the result is returned as 2.993056.

To return a result that makes sense to us, we will tackle the date and time parts of the cell separately.

To work with just the date part of the cell, we will use the INT function. This function rounds a value down to the nearest integer.

So if we write the function as below. This will return only the integer part of the date difference, and this is the number of days.

=INT(B2-A2)

We now need to work on the number of hours and minutes, which is the decimal part.

To return only the decimal part of the B2-A2 formula, we will use the MOD function. This function returns the remainder after a number is divided by a divisor.

We will use it to divide the B2-A2 formula by 1 so that it returns to remainder as the decimal part.

We will then use the HOUR and MINUTE functions to return the hours and minutes from this decimal value.

So the formula below returns the number of hours elapsed.

=HOUR(MOD(B2-A2,1))

And this returns the number of minutes elapsed.

=MINUTE(MOD(B2-A2,1))

Finally, we need to put this altogether as one Excel formula. We can use the ampersand (&) to concatenate the different parts of the formula.

You can construct the result to look however you want. For example the formula below would return the result as 2 days 23 hours and 50 minutes.

=INT(B2-A2)&" Days "&HOUR(MOD(B2-A2,1))&" Hours "&MINUTE(MOD(B2-A2,1))& " Minutes "

And this formula would display the result as 2 days 23:50.

=INT(B2-A2)&" Days "&HOUR(MOD(B2-A2,1))&":"&MINUTE(MOD(B2-A2,1))

The formula used in this tutorial will work for any text character, and can also be used to count the occurrences of specific words in a cell.

In this example, we used the formula to count the occurrences of the asterisk in the cells of column A.

The formula below was used to return the number of times the asterisk appears. It uses the LEN and SUBSTITUTE functions to accomplish its mission.

=LEN(A2)-LEN(SUBSTITUTE(A2,"*",""))

The LEN function is used to count the total number of characters in a cell.

The second half of the formula uses the LEN function again but with the SUBSTITUTE function. SUBSTITUTE replaces all occurrences of the asterisk with nothing, essentially removing them.

So what we are left with is a formula that subtracts the number of characters in the cell excluding the asterisks from the total number of characters including asterisks.

The result is how many asterisks there are in the cell.

It is a clever approach that can be applied for any word, phrase or text character.

To do this we will first need to insert checkboxes onto the spreadsheet, we then need to be able to highlight an item when it is completed.

In this tutorial I am using the idea of a Christmas shopping list of names (shown below). Your checklist could however be for any list of tasks, inventory or products.

To insert checkboxes in Excel, you need the Developer tab on the Ribbon. If you do not have this, right mouse click on the Ribbon, select **Customize the Ribbon** and then check the **Developer** box.

On the **Developer** tab, click the **Insert** button of the Controls group and then click the **Check Box (Form Control)** button.

Click and drag to draw the checkbox onto the spreadsheet. Resize and position the checkbox so that is neatly fits inside a single cell. Right mouse click the checkbox and select **Edit Text** to change the default label. In this tutorial I have deleted the text next to the checkbox.

Select the cell containing the checkbox (not the checkbox itself) and copy and paste that cell to all the others in the list where you will need a checkbox.

You then need to link the checkbox value to a cell. Select the checkbox by pressing **Ctrl** and clicking on it. Then type = in the Formula Bar and select the cell you want to link the checkbox value to.

In this example I have used cell A4. The font of column A has been set as white so the values are not visible to the user. When linking to a cell only absolute cell references can be used such as =$A$4. Unfortunately this means you need to repeat this process for every checkbox in the list.

Watch this video to see how to create a macro that links all the checkboxes of a sheet to a cell saving lots of time.

When a box is checked this linked cell displays TRUE, and if not will display FALSE (or blank if unused). So column A will be used to know if a box is checked or not.

With the checkboxes in place we want to automatically format the items when they are checked by writing a Conditional Formatting rule.

We will need a basic formula for this because the Conditional Formatting rule will refer to a cell outside the selected range.

- Select the range of cells that you want to apply the formatting to. In this example I selected the entire table, range B4:C8 in the image above.
- Click the
**Home**tab,**Conditional Formatting**and**New Rule**. - Select
**Use a formula to determine which cells to format**, and enter*=$A4=TRUE*. In this example, cell A4 is the first cell in the table that contains the response from a checkbox click. - Click the
**Format**button and choose what formatting you want to apply.

With the data in column A tracking the items to checked, you could take the checklist further and create totals for how many items checked, or how many unchecked. You could even then show this information graphically. I have decided not to cover these extras in this tutorial though.

By using our own icons we can create customised workbooks and not be constrained by the standard Microsoft icon set provided.

In this example I have a macro that exports all the worksheets of a workbook to PDF, and I want to assign it to the icon shown below. This icon was downloaded from flaticon.com, a fantastic resource for icons that you can use for your macros.

To insert our icon into a Ribbon of an Excel file we need the Custom UI Editor for Office. This is free to download and if you do not have it already you can download it here – Custom UI Editor for Office.

Open the Custom UI Editor and open the Excel workbook where you would like to add your icon.

You may see some XML code appear as soon as you open the file, but you will probably need to insert some sample XML code to get started.

You can do this by clicking **Insert**, **Sample XML** and then **Custom Tab**.

This code can now be edited to work for you. Change the **label** for the tab, group and then button to what you want to use.

Then enter the name of the image you want to use for the **image** argument. In the example below my image is saved as *analytics-72*. Shortly we will insert this into the Excel workbook.

Finally enter the name of your macro for the **onAction** argument. My macro is called *ExportAsPDF*.

You can copy and paste the relevant lines of code to easily add more buttons, groups or tabs.

**Insert your Image to the Workbook**

With the code now set to add your icon to the Ribbon and run your macro, we need to insert the image into the workbook so that it is there to be used.

Click the **Insert** menu and then **Icons**. Browse and select your icon and it will be added to the file. You can see it on the left. Click the + sign next to the workbook name to expand the list of all added icons.

The problem with extracting UK postcodes is that they are highly irregular. They will be at the end of the full address and can come in a different number of characters e.g. E1 6AX, RM3 8HN and LE41 8JX.

They are not as structured as a US zip code may be and harder to extract. Because of this the formula is intense, but I am going to break it down and explain it in detail.

The formula below is the finished article. If you are not used to writing formulas like this it may seem overwhelming, but we are going to look at it one piece at a time.

To use this formula, simply copy and paste and change the cell references to where your addresses are entered. If you want to know more about how this works, read on.

*=RIGHT(SUBSTITUTE(A5,” “,”*”,LEN(A5)-LEN(SUBSTITUTE(A5,” “,””))-1),LEN(A5)-FIND(“*”,SUBSTITUTE(A5,” “,”*”,LEN(A5)-LEN(SUBSTITUTE(A5,” “,””))-1)))*

The RIGHT function has been used to extract the postcode. This function extracts text from the end of a cell. We can be sure that the postcode is at the end, so this function works for us here.

The Right function requires two pieces of information from us. What text to extract the postcode from, and how many characters in the postcode.

*=RIGHT(the text to extract from,how many characters)*

What we do not know is how many characters are in the postcode of each address. We need Excel to calculate this.

To do so, we will find and mark the start of the postcode in the address. This unique mark can then be used to calculate how many characters in the postcode.

The postcode always starts after the penultimate space of the address. It does not matter how many spaces are in the address, we can be sure that the postcode begins after the second from last space.

The formula below calculates what number space the penultimate space is. So it basically returns the position of the space.

LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1)

The LEN function returns the number of characters in a cell. The SUBSTITUTE function finds and replaces each space with nothing, essentially removing them.

Altogether, by subtracting the number of characters in a cell without spaces from how many characters including spaces, gives us how many spaces there are.

The -1 is then used to return the occurrence of the second from last space.

This part of the formula actually occurs twice n the full formula as shown below.

*=RIGHT(SUBSTITUTE(A2,” “,”*”, LEN(A2)-LEN(SUBSTITUTE(A2,” “,””))-1),LEN(A2)-FIND(“*”,SUBSTITUTE(A2,” “,”*”,LEN(A2)-LEN(SUBSTITUTE(A2,” “,””))-1)))*

Now that we have found the postcode we want to insert a unique marker so that Excel knows where it is.

In the formula below the SUBSTITUTE function has been added to the previous formula to add an ***** at the start of the postcode (the second from last space).

SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1)

This also occurs twice in the formula.

*=RIGHT( SUBSTITUTE(A2,” “,”*”,LEN(A2)-LEN(SUBSTITUTE(A2,” “,””))-1),LEN(A2)-FIND(“*”,SUBSTITUTE(A2,” “,”*”,LEN(A2)-LEN(SUBSTITUTE(A2,” “,””))-1)))*

In the second part of the RIGHT function the formula below has been used to find the position of the * (our unique marker), and subtract that number from the total number of characters in the cell (LEN function). This returns how many characters are in the postcode.

LEN(A2)-FIND("*",SUBSTITUTE(A2," ","*",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-1))

I do hope this makes sense. It is a complicated formula if you are a beginner.

If you are interested in seriously improving your Excel formula skills. Check out our online course – Excel Formulas Made Easy – Learn over 100 Formulas.

This blog post uncovers 6 different ways you can find the last row. In these examples the number of the last row is assigned to a variable for use within your procedures.

Are you new to Excel VBA? Learn Excel VBA quickly with this online course.

For these examples the following variables have been declared and the *sht* variable activated.

Dim sht As Worksheet Dim LastRow As Long Set sht = ThisWorkbook.Worksheets("Sheet1")

You may know that using the keyboard shortcut of **Ctrl + the down arrow **key will shoot you to the bottom of a list. The VBA code for the same shortcut is shown below.

This assumes A1 is the first cell of data.

LastRow = Range("A1").End(xlDown).Row

This is a common approach but has its disadvantages. This shortcut finds the bottom of a block of cells. This means that if you have blank cells in a range it will not accurately find the last row.

If you have blanks cells in a range, then you could work around that by starting quite far down a spreadsheet and using the shortcut to go up and hit the bottom (instead of top and down).

LastRow = Range("A100000").End(xlUp).Row

You will need to ensure the starting cell is further than you will ever need. In this example it is row 100,000.

The *UsedRange* property in Excel VBA is the range of filled cells on a spreadsheet.

It is extremely useful that Excel knows this, and we can use this information on a worksheet by using the shortcuts **Ctrl + End** and **Ctrl + Home**.

However this *UsedRange* needs resetting or it may contain outdated information about the sheet. The code below clears the *UsedRange* and then uses it to located the last row number.

sht.UsedRange.Clear LastRow = sht.UsedRange.Rows.Count

The CountA function can be used to count all non-blank cells in a range to find the last row.

Now like the first example, you will need to be careful of blank cells in a range causing a problem.

However in my blog post on creating a macro to remove blank rows from a list, I used this technique for exactly that reason. To find out how big the list is, when the blanks are removed.

LastRow = Application.CountA(Range("A:A"))

If you have set up a named range for your list, this can make it easy to find the last row. In the code below the named range of the list is *Sales*.

LastRow = sht.Range("Sales").Rows.Count

If you have already formatted your range as a table. We can used the table to locate the last row number.

LastRow = sht.ListObjects("Table1").Range.Rows.Count

- Loop Through all the Files in a Folder using VBA
- Count Cells in a Range By their Cell Colour
- Export Multiple Excel Sheets to a Single PDF
- Format Specific Words in a Cell using VBA

blah blah

]]>

This tutorial will show you how to display any symbol though, so you could insert a smiley face, hour glass, aeroplane and much more.

The first thing we need to do is find out the letter or number for the symbol we want to insert. Every symbol from the *Wingdings* libraries has an associated letter or number when displayed in a normal written font such as Calibri or Arial.

To find this out; start by inserting the symbol in a cell on your worksheet. Then select that cell and change the font to Calibri, Arial or some other written font.

The letter or number will now be displayed instead. For example, the smiley face symbol is J, and the hourglass is 6. Importantly for this tutorial, we know the thumbs up symbol is C, and thumbs down is D.

The following formula was written in cell D2 of the worksheet shown above.

=IF(C2>=B2,"C","D")

It tests if the value in C2 (this months sales) is greater than or equal to the value in B2 (last months sales). If it is then display C (remember this is the thumbs up symbol), and if not display D (thumbs down symbol).

Now that we have the IF function showing the correct value, all the cells containing the formula need to be formatted in a font such as Calibri to show the symbol.

In the example shown above, the thumbs up symbol is formatted in green, and the thumbs down symbol in red. This is done using Conditional Formatting.

- Select the range of cells containing the symbols.
- Click the
**Home**tab and then**Conditional Formatting**. - Select
**Highlight Cells Rules**and then**Equal To**. - Enter C in the first box and then select a green font colour from the
**Custom Format**options in the second box. Click**Ok**.

- Repeat these steps to display in a red font if the value is equal to D.

Displaying a different symbol based on the values of your worksheet, and applying automatic custom colours can add a creative wow factor to your spreadsheets.

Depending on the kind of data you work with, there are loads of symbols on offer and they may just have your spreadsheets jumping out of the screen.