Split Multiple Selections In Single Form Into Individual Rows (Core Product)
There have been a number of people asking how to make multiple selections in a single form and then have those selections broken down into individual rows, and the previous answer was always to use a 3rd party app, a premium add-on, or the API.
Below is a set of detailed instructions on how to accomplish this within the core product using two sheets and a copy row automation. The below is set up with new form entries being populated at the top of the sheet for ease of formulas, but it can be adjusted so that new form entries are made at the bottom of the sheet. I wasn't too worried about the look of the initial submission sheet though as the selections get parsed out and put on individual rows on a second sheet.
Here is how we take form submissions that look like this:
And turn them into static entries that look like this:
STEP 1 - Set Up the Base Form Sheet
The first thing to do is set up the Form Sheet. This sheet is the one that has the form attached to it and is also used to shift each form submission from horizontal to vertical. This example is a basic setup where we capture a name and 5 separate options. You are also going to need an auto-number column with no special formatting. This solution can be adapted to use special formatting in the auto-number column, but I am keeping things simple here to get the basic ideas across. In this example, I called the auto-number column [Submission #]. The other columns below are all text/number type columns, and these are the ones we will find on the form.
STEP 2 - Set Up the Formatting Section of the Form Sheet
Next we need to set up our formatting section.
There is a checkbox column called [Copy Section] that is manually checked on 5 rows. If we had more or less options available that needed to be split, we would use that same number of rows manually checked.
We need a text/number column called [Option]. This has a formula in each of the 5 rows. This is what converts our horizontal format into a vertical format. We use an INDEX function to pull the top row from each of the individual option columns.
=INDEX([Option 1]:[Option 1], 1)
=INDEX([Option 2]:[Option 2], 1)
=INDEX([Option 3]:[Option 3], 1)
=INDEX([Option 4]:[Option 4], 1)
=INDEX([Option 5]:[Option 5], 1)
Then I used the Primary Column and called it [Name]. You can use any text/number column, but I used it this way so that the name is in the Primary Column of the Final Sheet. I used this formula in all 5 of the rows:
=IF(Option@row <> "", INDEX([Form Name]:[Form Name], 1))
Next is a text/number column called [Submission Number]. I used this formula on all 5 rows:
=IF(Option@row <> "", MAX([Submission #]:[Submission #]))
Now we should have a section in the Form Sheet that looks like this:
And the whole Form Sheet (after a few test forms) looks like this:
STEP 3 - Set Up the Final Sheet
Now we can create our Final Sheet. To do this, I just created a new sheet, renamed the Primary Column to [Name], then copied a row from the Form Sheet to the Final Sheet to get the rest of the columns pushed through. I also deleted the standard columns that are automatically put in when creating a new sheet
STEP 4 - Copy Row Automation in Form Sheet
Then we hop back over to our Form Sheet and set up a Copy Row automation that looks like this:
Make a few test submissions to make sure everything is in fact linking up, and we should be up and running.
NOTE: We can also modify this to pull from submissions made using a multi-select dropdown, but this example is kept simple to provide the basics on getting this set up.
Comments
-
In order to parse a single multi-select column into multiple rows, the following modifications will be needed in STEP 2:
Insert a text/number column called "Number". Manually enter the numbers 1 through however many you will need. These numbers will go in the "Copy Section" where we have the [Copy Section column boxes checked. You will need to make sure that these boxes are checked on every row that you have manually entered a number.
You will then put the below formula in to the [Option] column on the row where you manually entered the number 1:
=IFERROR(MID("!" + SUBSTITUTE(INDEX([Multi-Select]:[Multi-Select], 1), CHAR(10), "!") + "!", FIND("~", SUBSTITUTE("!" + SUBSTITUTE(INDEX([Multi-Select]:[Multi-Select], 1), CHAR(10), "!") + "!", "!", "~", Number@row)) + 1, FIND("~", SUBSTITUTE("!" + SUBSTITUTE(INDEX([Multi-Select]:[Multi-Select], 1), CHAR(10), "!") + "!", "!", "~", Number@row + 1)) - (FIND("~", SUBSTITUTE("!" + SUBSTITUTE(INDEX([Multi-Select]:[Multi-Select], 1), CHAR(10), "!") + "!", "!", "~", Number@row)) + 1)), "")
Finally, you will need to drag-fill this formula down the rows until you have it in all of the rows that have a manually entered number.
-
Hi Paul,
Is there a way to have this solution run automatically?
Thanks, Peleg
-
@Peleg Once you get it set up, the solution will run automatically as new forms are submitted.
-
sorry for the hassle, but I couldn't figure out how to apply it to my sheet.
Care to help?
-
@Peleg Which step did you get to?
-
@Paul Newcome I was trying to apply the extra step you built for multi-selection columns.
Is it possible for you to share your sheet with me?
-
@Peleg Are you able to provide screenshots and an outline of each formula as you currently have it in your sheet?
-
@Paul Newcome Never mind, I just realized I didn't change the position for new lines (having rows spawn at the top of the sheet).
The solution is brilliant! thank you!
-
@Paul Newcome. I just read through your post and it is quite brilliant. I have a follow up question and not sure if it would work for what I am trying to achieve but let me explain a bit to see if you could help guide me.
I created a form to capture data from a family of 8. I want to move/copy all the for each unique ID into separate rows. I am collecting alot of intake data, so the columns on the form are about 23.
Please advise.
Best regards,
Jacob A. PMP, AgileXP, CSM
Please kindly upvote if my contributions have provided you some value or answer. Thank you
-
@jacob.alabi It would be the same concept as the original solution posted.
-
@Paul Newcome Okay, I would try it out and revert.
Best regards,
Jacob A. PMP, AgileXP, CSM
Please kindly upvote if my contributions have provided you some value or answer. Thank you
-
@Paul Newcome
This is a great suggestion! I'm running into a small issue. When forms are submitted in quick succession, I've noticed that sometimes the aggregate form will skip the submissions (e.g. it seems the form submissions are coming in faster than the workflow to copy the row executes). The result is that certain submissions are missing (evidenced by the skips in submission numbers). Any thoughts on why this is happening? Thanks in advance for your help. -
@duslakm I've not had this issue before. You may want to reach out to Support.
-
Hi Paul,
I'm having some issues with step 2. Here is how my data currently looks!
The formulas I have match your exact references above - any assistance is greatly appreciated! -
@chris.wang What is the formula you have in the cell that is throwing th ecircular reference error?
Categories
- All Categories
- 14 Welcome to the Community
- Smartsheet Customer Resources
- 64.1K Get Help
- 414 Global Discussions
- 221 Industry Talk
- 459 Announcements
- 4.8K Ideas & Feature Requests
- 143 Brandfolder
- 141 Just for fun
- 58 Community Job Board
- 461 Show & Tell
- 31 Member Spotlight
- 1 SmartStories
- 299 Events
- 38 Webinars
- 7.3K Forum Archives