how to separate text with multiple underscores and varying length of values

孤街浪徒 提交于 2019-12-08 14:10:38

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!