Join / Split Function in Microsoft Excel
The Excel Joinand SplitExcel functions are very useful function. The split function is used to take a delimited string and parse the values into an array. The join function is used to extract the values out of the array and concatenate them back into a delimited string.
The Basics:
Join( Array , Delimiter )
Array = The array that contains the values you want to join
Delimiter = The delimiter we want to use
Split( StringToProcess, Delimiter , The Numer of Strings to Process , Compare Option )
StringToProcess = The string that will be proccessed
Delimiter = The delimiter that you want to use
The Numer of Strings to Process = How many strings do you want to process
Compare Option = Do you want the delimiter to be case sensitive or not
Now let’s assume I want to take the string value in cell A2, process it into an array, write out the array values in column B and then process the array values back into a delimited string specifying our own delimiter value to use.
Code
Dim A As Long ’The counter we will be using the process our records
Dim ArrayValues() As String ’Declare an array variable
Dim StringToProcess As String ’This is the string that will be processed
Dim Counter As Long ’This variable will hold the row variable to control the output where we want to write the output to
StringToProcess = ActiveSheet.Cells(2, 1).Value ‘Assign the value in cell A2 to our string variable
ArrayValues() = Split(StringToProcess, “,”) ‘The split function parsed the comma delimited values
‘ into the array starting at position 0. The array values
‘are dynamically populated depending on how many values
‘there are
Counter = 2 ’We set the counter at 2 as we want to start writing the output from row 2
‘Now let’s take the array values and write the array values out to cells B2 through B8.
For A = LBound(ArrayValues) To UBound(ArrayValues) ‘This will allow us to step through the array values using the for next function
ActiveSheet.Cells(Counter, 2).Value = ArrayValues(A)
Counter = Counter + 1 ’Increment the counter variable with 1
Next
‘Now let’s create a new delimited string and write the output to cell C2
ActiveSheet.Cells(2, 3).Value = Join(ArrayValues, “#”)
Output