问题
a1=ac_tree_birch_NewYork_ext
a2=bc_animal_dog_Washington_des
How do I separate the text in the cells by the "_", since there is varying length of the cell values. I would like to use a formula, and not text to columns.
Thanks
回答1:
Use the SUBSTITUTE function to change all underscores (e.g. CHAR(95)
) to a large number of spaces (typically the entire length of the original string) and peel out the padded pieces with the MID function. Finish off with TRIM and an IFERROR 'wrapper'.
In B1 as,
=IFERROR(TRIM(MID(SUBSTITUTE($A1, CHAR(95), REPT(CHAR(32), LEN($A1))), (COLUMN(A:A)-1)*LEN($A1)+1, LEN($A1))), TEXT(,))
Fill both right and down.
回答2:
This can likely be done via Flash Fill
(Excel 2013+).
For the first row of data, enter your expected outcome in subsequent cells to the right. This is how you want the data broken up:
Then select your first cell of output data and click Flash Fill from the ribbon:
Do this for the remaining columns. This will fill the column based on the pattern recognized by Excel within your original data:
回答3:
If a VBA solution is acceptable, you can write a wrapper around the VBA Split
function:
Public Function Split2(s As String) As String()
Split2 = Split(s, "_")
End Function
Then in your worksheet, select (say) cells B1:F1, enter
=Split2(A1)
as an array function (CTRL-SHIFT-ENTER), and out comes your data.
Hope that helps.
来源:https://stackoverflow.com/questions/36227729/how-to-separate-text-with-multiple-underscores-and-varying-length-of-values