初めて自分の家と他人の家が違う、と意識した時

Excelの数式の質問です。
A列に「redhat 8.0, centOS 7.9, python 3.9, php 7.9 ,,,,,,,」というふうに、セルごとにアルファベットと数字の単語が入ってます。
B列に数字を削って「redhat , centOS, python ,php ,,,,,,,」のようにしたいです。どういう数式を入れればいいですか。
アルファベットの文字数はバラバラです。

vbaで構いません。

A 回答 (4件)

fujillinさんが、全ての値がご質問文の形式のようにスペースで区切られているという(OS名中、ライブラリ名中には空白を含まず、バージョン番号との間にのみスペースがある)前提で、



=IFERROR(LEFT(A1,FIND(" ",A1)-1),A1)

という数式をお示しになっておられます。

同等の効果を持つ数式として、例えば、文字列中のスペースを探して(万一、スペースがないとエラーになるため敢えて末尾にスペースを付けて)その左側だけを取り出す

=TRIM(LEFT(A1,FIND(" ",A1&" ")))・・・①

とか、

=TRIM(MID(A1,1,FIND(" ",A1&" ")))・・・②

或いは、逆に、スペースを探して、その右側を消去する

=REPLACE(A1,FIND(" ",A1&" "),256,"")・・・③

という数式も使えるのではないかと思います。
    • good
    • 0

b2に=FIND(" ",A2)


c2に=left(A2,b2-1)
    • good
    • 1

こんにちは



全ての値がご質問文の形式のようにスペースで区切られているのなら・・

A列を選択して、「データ」-「区切り位置」から、スペースで分割してB列を消せばお望みの結果になります。

>どういう数式を入れればいいですか。
上記と同じ考え方(=スペースで分割)で良ければ、365、2021環境等であれば
 =INDEX(TEXTSPLIT(A1," "),1)
などとすることで、可能です。
ローテクであれば
 =IFERROR(LEFT(A1,FIND(" ",A1)-1),A1)
とか。

形式が一定ではなく、きちんと「0-9.及びスペース」を削除するとなると、数式でも不可能では無いと思いますが、それなりに面倒です。
特にアルファベットの中にコロンやスペース("."," ")が含まれている場合は、VBAにしてしまった方が簡単です。
VBAを利用するにしても「ユーザ定義関数」の形式にしておけば、セルには関数として設定することが可能です。

>vbaで構いません
VBAでの処理をお望みの場合は、最初に述べた操作を「マクロの記録」で記録すれば、再利用が可能です。
    • good
    • 2

空白の文字を位置numberを取得して



=left(a1,numnber-1)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報