文字列から可変長の部分文字列を抽出する方法を探しています。
私の細胞は次のようになります。
ABC - DEF
ABCDE - DEF
ABCD - ABC
文字で文字列を分割したい-
ので、セルは次のようになります。
ABC
ABCDE
ABCD
これは、VBScriptではなく式を使用して行う必要があります。
Excel 2010を使用しています
編集
データセットに常に-
文字が含まれているわけではないことがわかりました。つまり、変更はありません。
文字列から可変長の部分文字列を抽出する方法を探しています。
私の細胞は次のようになります。
ABC - DEF
ABCDE - DEF
ABCD - ABC
文字で文字列を分割したい-
ので、セルは次のようになります。
ABC
ABCDE
ABCD
これは、VBScriptではなく式を使用して行う必要があります。
Excel 2010を使用しています
編集
データセットに常に-
文字が含まれているわけではないことがわかりました。つまり、変更はありません。
回答:
この問題は、2つのステップに分けられます。
"-"
または" - "
)。FIND
そしてSEARCH
、それぞれが所与のインデックス返すコマンドneedle
にhaystack
(FIND
大文字と小文字が区別され、SEARCH
大文字と小文字を区別しないで、ワイルドカードを可能にします)。それを考えると、次のものがあります。
FIND(search_text, source_cell, start_index)
またはこの場合:
FIND(" - ", A1, 1)
インデックスを取得source_cell
したら、「分割」を行うために接頭辞が必要です。MID
それだけです:
MID(source_cell, start_index, num_characters)
両方をまとめると、次のようになります。
=MID(A1,1,FIND(" - ",A1,1))
A1のテキストがABC - DEF
giveの場合ABC
。
編集に基づいたAndrewの答えを拡張します。分割する文字列を見つけるために、FIND
関数を使用しています。FIND
与えられた文字列を見つけられなかった場合、エラーを返し#VALUE?
ます。そのため、この値を確認し、代わりに代替値を使用する必要があります。
を含むエラー値をチェック#VALUE
するには、ISERROR
関数を使用します:
=ISERROR(FIND(" - ", A1, 1))
FIND
関数がA1セルで「-」文字列を見つけられない場合、これは真になります。それを使用して、使用する値を決定します。
=IF(ISERROR(FIND(" - ", A1, 1)), A1, MID(A1, 1, FIND(" - ", A1, 1)))
つまり、findコマンドがエラーを返した場合は、変更されていないA1セルを使用します。それ以外の場合は、MID
Andrewが既に提供している機能を実行します。
Excelのテキスト文字列から左から5番目の文字を抽出する非常に簡単な方法を次に示します。
文字列ABCDEFGHIJ
がExcelスプレッドシートのセルA1に格納されていると仮定すると、次の式
=RIGHT(LEFT(A1,5),1)
文字列の左から5番目の文字、つまりを生成しE
ます。
MID
Excelに関数はありませんか?レガシーVisual Basicに存在するはずです、そしてそれは次のようなものになるでしょう=MID(A1, 5, 1)
)
次の式は、からサブストリングを削除します [TEXTCOLUMN_1]
例:に変換-./thumb/hello.jpg
するthumb/hello.jpg
場合は、次の式を使用します
=SUBSTITUTE([TEXTCOLUMN_1],LEFT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)
[TEXTCOLUMN_1]
=変更する列名
[NUM_OF_CHARACTERS]
=削除する左側の文字数
右側から削除する場合は、次を使用します
=SUBSTITUTE([TEXTCOLUMN_1],RIGHT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)
=MID(a1,FIND("-",a1)+1,LEN(a1))
)任意の「細胞外」の言及なし