セルA1にこの文字列があります:
A1 some text, to be, processed
B1、C1、D1などの数式を作成します。
B1 some text
C1 to be
D1 processed
E1
Text to Columns機能はすでに見つかりましたが、数式を使用してこれを行う必要があります。
セルA1にこの文字列があります:
A1 some text, to be, processed
B1、C1、D1などの数式を作成します。
B1 some text
C1 to be
D1 processed
E1
Text to Columns機能はすでに見つかりましたが、数式を使用してこれを行う必要があります。
回答:
VBAを使用して、式として使用できるカスタム関数を作成できます。これをする:
Public Function custom_split(str As String, num As Long, Optional delimeter As String = " ") As String
Dim substrs() As String
substrs = split(str, delimeter)
If UBound(substrs) < num Then
custom_split = ""
Else
custom_split = Trim(substrs(num))
End If
End Function
次に、Visual Basicウィンドウを閉じてExcelに戻ります。
例に従って式を使用するには、次のように入力します。
カンマを変更して、他の文字で分割できます。
カスタム式の唯一の欠点は、ファイルを開くたびにマクロを有効にするよう警告が表示されることです。
Left()
コンマが見つかるまで文字を数える予備のワークシートのいくつかの列を使用してこれを行いました。次のように見えました。
A B C D
1 Text 1st Comma 2nd Comma 3rd comma
2 =(cell ref to text)&"," =find(",",a2,0) =find(",",a2,b2) =find(",",a2,c2)
Referring to your original sheet:
B1: =Left(a1,NewSheet!B2)
C1: =Mid(A1, NewSheet!B2+1, NewSheet!C2-NewSheetB2)
D1: =Mid(A1, NewSheet!(C2+1 NewSheet!d2-Newsheet!c2)
NewSheetで、テキストにカンマを含めることができると考えられる数の列を作成します。数が多い場合は、おそらくVBAソリューションを使用する必要があります。
エラー(文字列にコンマがない場合は#value)が発生しないように、文字列の末尾にコンマを付けていることに注意してください。元の文字列の長さより大きい結果をテストするか、コンマを見つけられない関数=iferror()
を処理するために使用でき=find()
ます。最後=Trim()
に、コンマの後にスペースを使用して文字列が一貫していない場合に使用します。
テキスト関数Left、Mid、Rightを使用できます。Leftでは、テキスト文字列の左側からいくつかの文字を抽出できます。Rightは、テキスト文字列の右側から同じことを行います。Midでは、左からいくつかの文字を除外し、次のx個の文字を取得するように指示します。
[関数の挿入]ダイアログボックスに移動すると(数式バーの横にある[fx]をクリック)、[テキスト]カテゴリの下にこれらの関数が表示されます。
,
任意の位置に配置できることです。とにかく、使用してSEARCH
、MID
保持するために、中間列の,
位置と、いくつかのネストされたIF
私はこれを行うことができたのを。