Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Adding a Missing Closing Bracket.
Written by Allen Wyatt (last updated September 7, 2019)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
Terry has a huge list of names in an Excel worksheet. Some are just the names, but some have words in brackets after them. Unfortunately, some of the words in brackets don't have the closing bracket and Terry has to manually add the closing bracket. He wonders if there is a way that he can add a bracket using a wild card search and replace.
The short answer is that you can't do this using a search and replace, either wild card or regular. You can, however, use a formula to add any missing brackets. The following is just one example of the type of formula you can use:
=IF(AND(NOT(ISERROR(SEARCH("[",A1))),NOT(RIGHT(A1,1)="]")),A1&"]",A1)
The trick is to check to see if the cell (A1 in this case) has a left bracket in it and, if it does, check for the right bracket. If the right bracket isn't found, then you append one to the contents of the cell. Here's another variation on the same formulaic theme:
=IF(ISERROR(FIND("[",A1)),A1,IF(ISERROR(FIND("]",A1)),A1&"]",A1))
If you have to check large numbers of cells for missing brackets on a regular basis, you may want to create a macro that will examine a range of cells and add a right bracket if one is needed. Here's an example of how such a macro could be formulated:
Sub Close_Bracket() Dim c As Range Const csLBrk As String = "[" Const csRBrk As String = "]" On Error Resume Next For Each c In Selection.Cells If InStr(1, c.Value, csLBrk) > 0 And _ InStr(1, c.Value, csRBrk) = 0 Then c.Value = c.Value & csRBrk End If Next c End Sub
To use the macro, simply select the range of cells you want to affect, and then run it. The cells are examined in-place and modified, if needed.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (126) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. You can find a version of this tip for the older menu interface of Excel here: Adding a Missing Closing Bracket.
Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!
Want to figure out how to do a gift exchange for your family or office? There are a variety of ways you can approach the ...
Discover MoreIn a series of values, you may need to know the smallest value that isn't a zero. There is no built-in function to do ...
Discover MoreLooking for a formula that can return the address of a cell containing a text string? Look no further; the solution is in ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2019-09-09 14:21:23
Dave Bonin
Here's another variation:
= IF( ISERROR( FIND( "[", A1 )), A1, SUBSTITUTE( A1 & "]", "]]", "]" ))
If there is no opening bracket, then return the original value.
If there is an opening bracket, then add a closing bracket and then change any occurrence of two closing brackets to one bracket.
2019-09-07 19:09:11
Daryl D.
Terry can use this sub if some of the names do not have a left bracket in it.
Sub close_bracket()
Dim c As Range
For Each c In Selection.Cells
If Left(c, 1) = "[" And Right(c, 1) <> "]" Then c = Left(c, Len(c)) & "]"
Next c
End Sub
2019-09-07 18:58:23
Daryl D.
Hello Allen, I really appreciate ExcelTips and have learned so much from you!
Here is a shorter macro that will work for Terry.
Sub Close_Bracket()
Dim c As Range
For Each c In Selection.Cells
If Right(c, 1) <> "]" Then c = Left(c, Len(c)) & "]"
Next c
End Sub
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments