• ベストアンサー

エクセル 文字列-文字列 を数式で区切りしたい

文字列の文字数が列で同じならLEFT、RIGHTで作ることができるのですが、 左右の文字数がランダムの場合がわかりません。 (例) A列 AAA-AAAAAA AA-AAAAA AAAAA-AA ↓ B列    C列 AAA   AAAAAA AA    AAAAA AAAAA AA この時のB1とC1の数式の作り方をご教授ください。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 「-」は全角のマイナスとします。 B1セルに =LEFT(A1,FIND("-",A1)-1) C1セルに =MID(A1,FIND("-",A1)+1,LEN(A1)) または =SUBSTITUTE(A1,B1&"-","") としてフィルハンドルで下へコピーしてみてください。m(_ _)m

kenthehg
質問者

お礼

ありがとうございます。 見事に作ることができました。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

ご使用のExcelのバージョンが2007以降なら以下の式を入力して下方向にオートフィルコピーします。 B1セル   =IFERROR(LEFT(A1,FIND("-",A1)-1),"") C1セル   =IFERROR(MID(A1,FIND("-",A1)+1,100,"") 実際は関数を使わずに、A列を選択して「データ」「区切り位置」で「次へ」をクリックして、区切り文字の欄で「その他」の枠に「-」を入力し、「次へ」で出力先にB1セルを選択して「完了」するのが簡単です。 Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

kenthehg
質問者

お礼

無事、返すことができました。 ありがとうございます。 以後バージョン情報など注意いたします。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.2

必ずハイフンがあるのだったら left,midの引数として FIND("-",a1) として±1ぐらいで文字列の長さを調節すればOKです。 例えば、 =left(a1,find("-",a1)-1)       =mid(a1,find("-",a1)+1,10) midの場合、大目の長さを指定しても問題ありません。   =right(a1,len(a1)-find("-",a1))      といった具合です

kenthehg
質問者

お礼

無事に返すことができました。 ありがとうございました。

関連するQ&A

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • エクセルデータの改列の方法について

    エクセルデータの改列の方法について エクセルデータでA列のセルに以下のように「aaa」と「スペース」で区切られた数列のグループを、 ___A__B__ 1|aaa|1 2|465|2 3|231|3 4|124|4 5|221|5 6|・ 7|・  ・(数は不明) ・ 10|3|84 11|スペース 12|aaa|1 13|556|2 14|245|3 15|111|4 16|232|5 17|・ 18|・ ・(数は不明) ・ 28|2|78 29|スペース 30|aaa|1 31|255|2 ・ ・ 以下のようにaaaを頭とする複数の列に分割するにはどうしたらいいでしょうか。 ___A__B__C__D・・・ 1|aaa|__|aaa|__・・・ 2|465|1|556|1・・ 3|231|2|245|2・・ 4|124|3|111|3・・ 5|221|4|232|4・・・ 6| ・ 7| ・ 各ファイル50ブロックの数字の列があり、更にファイルも100以上ありますので、 贅沢ですが、できれば作業が少ない方が。。と思っています。 どなたか教えていただけたら幸いです。 よろしくお願いします。

  • Excelで特定の文字を抜き出す

    Excelで関数を使い、特定の文字列を自動で抜き出し、二つの列に分けたいです。 あいうえお0X =AAA= かきくけこ00 =BBBB= さしすせそ000 =CCC= たちつてと0 =DD= なにぬねの00X =EEE= はひふへほ000 =F= 上記のようにA1~A6に、文字数も文字もバラバラのセル列があったとします。 これを以下のように分解したいです。 例: A1:あいうえお0X =AAA= A2:かきくけこ00 =BBBB=    ↓ 「B1:あいうえお0X」と「C1:AAA」 「B2:かきくけこ00」と「C2:BBBB」 関数を教えて下さい。

  • エクセルの数式について

    A列      B列    C列  1234    1204   1234  1203    1205   1203 1204    1234   1204 1256    1256   1256 1205    1203   1205 … … … …     A列にある。元の数字をランダムになってあるB列より検索しC列へA列と同じ並びで検出したいのですが、どの様な数式を適用すればよいのでしょうか? 教えて下さい。宜しくお願い致します。

  • 数式を表している文字列を数式にする?方法

    表現が下手で申し訳ございませんが、教えてください。 ある特殊なリンク数式があります。数式の中ほどには数値部分があります。 その数値部分の前後で分割して(文字列化)、数値部分を変化させた後、元の数式にもどしたいのですが、単純に結合すれば、頭に=をつけても数式として認識されません。 方法はありますでしょうか? 例/ セル F1 に入っている数式  =IF(A1="あ","="&C1&B1&D1,"") セル B1 には不特定の数値が入力される。(例えば200411) セル C1 と D1 には元々一つの数式であったものを三分割した左側と右側を文字列として納めてある。 このままだと、セル A1 に「あ」が入力された場合、 セル F1 には、=「C1」0411「D1」といういように文字列として表示されます。 F1 をコピーして G1 に値貼り付けして、G1をダブルクリックした後、他セルを選択すると、数式になり、リンク値を正しく表示します。この作業を毎回行うのは面倒です。 F1 のみで処理する必要はないのですが、G1では完了させたいのです。 =Value(F1) ではダメでした。

  • エクセルで数式が文字列になってしまう

     こんにちは。教えて下さい。  あるセルに対して、例えば「=sum(a1:c1)」のような式を入力すると、結果が表示されずに「=sum(a1:c1)」がそのまま表示されます。  セルの属性に関係あるのかと思って、他の数式の入っているセルをそのままコピー(このときは数式になっている)、数式を書き換えたのですが、書き換えたとたん文字列になってしまいます。セルの書式で「標準」を指定しても変わりません。  どうすればいいのでしょう。  よろしくお願いいたします。

  • エクセルの文字列・数値【長文です】

    昨日、LEFT関数の使い方を教えていただきましたが、これですとLEFT関数を用いたところが【文字列】として認識されました。【数値】として認識させる方法を教えてください。 初心者で申し訳ございません。 昨日の質問・いただいた回答は以下の通りでした。 ≪質問≫ [123456/あいうえお/abc][234567/かきくけこ/efg]のようなデータがいくつかあって(例えばA列に)、B列に[123456][234567]、C列に[あいうえお][かきくけこ]、D列に[abc][efg]と表記できるような【関数】を教えてください。 ≪いただいた回答≫ A1にデータがあったとして。 B列 =LEFT(A1,SEARCH("/",A1,1)-1) C列 =LEFT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),1)-1) D列 =RIGHT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),LEN(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)))-SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1))))

  • エクセルの文字列操作

    住所録の様式で A列にNo、B列に氏名、C列に住所のファイルがあり、 C列の住所で、1個のセルに何故かしら「住所と電話番号」が入っています。 住所と電話番号を夫々別の列に分割したくて、 電話番号は、RIGHT 関数で取り出しました。 住所は、文字数が一定でないので、LEFTまたはMID関数では出来ません。 ここで質問です 住所データの末尾に混在する電話番号は10文字の場合に限定し、 文字数の異なる、住所(○○市XX町△△番地○△荘2-103など)のみ 抽出する方法はありませんか。 なお、VBAなどは無知です、エクセル関数だけの操作があれば教えてください。

  • エクセル 特定文字列のセル番号を返したい

    宜しくお願いいたします。(エクセル2013) B1:F1の範囲内に、「AAA」という文字列があり、その文字列のセル番号をまず、初めに返したいと考えています。 そして最終的に、AAAの右隣のセルに入っている数値を返したいのですが、どうもうまくいきませんm(__)m またAAAがない場合は、空白で返したいです。 H2とG2に入れる数式をご教授お願いいたします。

  • EXCEL 文字列分割について

    EXCEL2003を使用しています。 1つのセルに文字列が入力されており、 それを決まったバイト数ずつ別のセルに分割したいと考えています。 例)A1の文字列を6バイトずつ分割したい A1:東京都文京区 ↓ B1:東京都 C1:文京区 これを実現する為に B1に「=LEFTB(A1,6)」 C1に「=MIDB(A1,7,6)」という数式を入力しました。 A1の文字列が全角のみ(または半角のみ)なら 上記の数式で問題ないと思うのですが、 分割対象の文字列は全角と半角が混ざっており、 例えばA1の値が 「a東京都文京区」 というようなものだった場合、 B1:a東京 C1:文京 となり、元の文字列にある「都」の文字が消えてしまいます。 元の文字列が上記の様な場合には B1:a東京 C1:都文京 というように値が返されるようにしたいのですが、 どのように実現したらよいでしょうか?

専門家に質問してみよう