A1 = ac_tree_birch_NewYork_ext複数のアンダースコアでテキストと値の変化長さを分離する方法
A2 = bc_animal_dog_Washington_desの長さを変化させることがあるので、私は、「_」によって、細胞内のテキストを分離するにはどうすればよい
セル値。私は、列にテキストではなく、数式を使用したいと思います。
おかげ
A1 = ac_tree_birch_NewYork_ext複数のアンダースコアでテキストと値の変化長さを分離する方法
A2 = bc_animal_dog_Washington_desの長さを変化させることがあるので、私は、「_」によって、細胞内のテキストを分離するにはどうすればよい
セル値。私は、列にテキストではなく、数式を使用したいと思います。
おかげ
これはおそらくFlash Fill
(エクセル2013+)を介して行うことができます。
データの最初の行については、右に続くセルに期待される結果を入力します。これは、分割データをする方法である:
そして、出力データの最初のセルを選択し、Flashがリボンから塗りつぶしクリック:
は、残りの列のためにこれを行います。これは、元のデータの中にExcelで認識されたパターンに基づいて、列を記入します:
おそらくxl2013で[Flash Fill](https://support.office.com/en-us/article/Flash-Fill-3fb96b4a-ee83-4493-af45-6522324477bd)が導入されたことに注意してください。 – Jeeped
ありがとう@jeeped、回答に追加 – radiocontrolled
VBAソリューションが許容される場合は、VBA Split
機能のラッパーを書くことができます。
Public Function Split2(s As String) As String()
Split2 = Split(s, "_")
End Function
は、その後、あなたのワークシートに、選択(例えば)セルB1:F1は、(CTRL-SHIFT-ENTER)配列関数として
=Split2(A1)
を入力し、あなたのデータが出てきます。
希望に役立ちます。
使用SUBSTITUTE functionスペースの多数(元の文字列の一般的に長さ全体)へのすべての下線(例えばCHAR(95)
)を変更し、MID functionを埋め込む片を剥離します。 TRIMとIFERRORの「ラッパー」で終わります。
、
=IFERROR(TRIM(MID(SUBSTITUTE($A1, CHAR(95), REPT(CHAR(32), LEN($A1))), (COLUMN(A:A)-1)*LEN($A1)+1, LEN($A1))), TEXT(,))
右および下の両方を埋めます。
ありがとう!それは完璧に働いた。 – scannon
私は式を使用することを好むだろう 'フラッシュFill' – radiocontrolled
を使用して見てみましょう。それについてのアイデア? – scannon
IF、LEN、FIND、RIGHT、LEFT、およびSUBSTITUTEの組み合わせを使用できます。 – radiocontrolled