• ベストアンサー
  • 困ってます

文字列の抽出について

A1のセルに入力されている文字列の内容をスペース毎にC~Eに列に表示させるにはどうしたらいいのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数11
  • 閲覧数197
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.10
  • mt2015
  • ベストアンサー率49% (257/523)

こんな方法も…… C1に↓の式を入れ、C1:E2にコピー =TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",100)),100*COLUMN(A1)-99,100)) ただし、文字列が何十文字もあるような場合は上手くいかない可能性あり。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとう御座いました。

関連するQ&A

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

  • ワードで文字列の参照はできないのでしょうか

    たとえば、Aテキストボックスに文字列を入力することにより、Bテキストボックスにも同じ文字列が反映される。みたいなことがしたいのですが、ワードではそのようなことはできないのでしょうか? エクセルの場合、A1セルに入力した文字列を、他のセルにも反映させたい場合は、反映させたいセルに「=A1」と入力すれば、そのセルにもA1に入力した文字列が参照されて反映されますよね。 それと同じようなことをワードでしたいのです。

その他の回答 (10)

  • 回答No.11

項目は必ず3つあり、項目区切りは全角スペース 出来合いの関数の組み合わせで実現したい。 ということよければ、 C1=LEFT(A1,FIND(" ",A1,1)-1) D1=MID(A1,FIND(" ",A1,1)+1,FIND(" ",A1,FIND(" ",A1,1)+1)-FIND(" ",A1,1)-1) E1=RIGHT(A1,(LEN(A1)-FIND(" ",A1,FIND(" ",A1,1)+1))) とし、必要数下方向に複写するというのはいかがでしょうか。

共感・感謝の気持ちを伝えよう!

  • 回答No.9
  • imogasi
  • ベストアンサー率27% (4561/16326)

#5です。 私の回答は、一応、「関数による処理」ともいえると思うが。 ぴったりの、エクセル既定の関数は無いので、関数を組み合わせてやることになるが、却って、思い付きが要り、複雑になると思ったので、紹介したのだ。  仕事でエクセルを使うなら、VBAを勉強しないと、どうにもならんと思うよ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

関数でどうにかなりました。

  • 回答No.8

すみません。よく見ると空白は全角ですね。全角に直しました。 C1 =LEFT(A1,FIND(" ",A1)-1) D1 =MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)) E1 =MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,100)

共感・感謝の気持ちを伝えよう!

  • 回答No.7

C列、D列、E列別々の数式です。 C1 =LEFT(A1,FIND(" ",A1)-1) D1 =MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)) E1 =MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,100)

共感・感謝の気持ちを伝えよう!

  • 回答No.6
  • msMike
  • ベストアンサー率20% (294/1442)

添付図参照 G列を空白のマンマ放置して、次式を入力したセル H1 を右方に(数値 99 が表示されるまで)オートフィル =IFERROR(FIND(" ",$A1,G1+1),99) 次式を入力したセル C1 を右方に(空白セルが表示されるまで)オートフィル =IFERROR(MID($A1,G1+1,H1-G1-1),"")

共感・感謝の気持ちを伝えよう!

  • 回答No.5
  • imogasi
  • ベストアンサー率27% (4561/16326)

「区切り位置」の操作と同じことを、VBAでやると、私製関数を作って 標準モジュールに Function spt(a As Range, n) 'MsgBox a.Value 'MsgBox n splt = Split(a.Value, " ") spt = splt(n - 1) End Function 肝は、Split関数という関数がVBAにあることです。 ーー エクセルシートの どこでもよいが A12に 豚バラ肉 138円 A店 と(半角スペースで区切られた)文字列があるとして、 A13に 式 =spt($A$12,COLUMN()) と入れてB13、C13に式を複写すると A13:C13は 豚バラ肉138円A店 となります。

共感・感謝の気持ちを伝えよう!

質問者からの補足

できれば関数を使用して処理したいと考えております。

  • 回答No.4

データが有るA1とA2を選択⇒ [データ]タブ⇒[区切り位置] [カンマやタブなどの・・・・] チェック ⇒[次へ] [スペース]をチェック ⇒[次へ]⇒ [表示先] にC1と入力⇒[完了]

共感・感謝の気持ちを伝えよう!

質問者からの補足

できれば関数を使用して処理したいと考えております。

  • 回答No.3
  • f_a_007
  • ベストアンサー率20% (955/4565)

私は、こういうケースでは安直に次の関数を使っています。 Option Compare Database Public Function CutStr(ByVal Text As String, _            ByVal Separator As String, _            ByVal N As Integer) As String   Dim strDatas() As String   strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function

共感・感謝の気持ちを伝えよう!

質問者からの補足

できれば関数を使用して処理したいと考えております。

  • 回答No.2

追記します。 A列を残し、C,D,E..と分割したい場合は A列をC列に複写し C列を分割してください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

できれば関数を使用して処理したいと考えております。

  • 回答No.1

エクセルの話でよければ、... 分割元のセルたちを選択し、 データタブ、区切り位置を選び、 区切り文字にスペースを選択することで 分割できます。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • EXCELで文字列内のスペースの抽出

    EXCEL2000を使用しています。 A列に文字列が300行ほど入力されています。 ある条件で、各文字列の先頭にスペース(空白)が0個~3個ついています。 いま、文字列の先頭にあるスペースの数をB列に表示させたいのですが、 どのような関数を使えば良いでしょうか。 ご存じの方、ご教授下さい。

  • セル内のある範囲の文字列を関数で抽出したいです

    すみません、以下のような文字列がセルにある場合に、エクセル関数を使って、特定する範囲の文字列を抜き出したいのですが、ご教示頂けませんでしょうか? A1セル:()で囲まれた文字列が先頭と末尾に含まれています。  (文字列1)文字列2(文字列3) A2セル:文字列2だけを抜き出したいです。  文字列2 あともし可能であれば、文字列2を抽出する際に(文字列3)の部分を、 A3セルに入っている文字列に変更したいのですが、 A3セル:たとえば、「1234567」と入っていた場合では、【】をつけて  文字列2【1234567】 という形に直したいという内容となります。 いろいろ試してみたのですがどうしてもできず、お力添え頂けませんでしょうか? 何卒宜しくお願い致します。

  • 文字列の数式を計算したいです。

    文字列の数式を計算したいです。 A1セルに文字列 1+2 と入力し A2セルにその答えの 3 を返したいのですが、どうすればよろしいでしょうか? よろしくお願いします。

  • Excel 文字列の抽出

    Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。

  • エクセルで文字列の右から4文字を削除してセルに表示したい

    明けましておめでとうございます。宜しくお願いします。 エクセルの文字表示で、A列(A1~A20)に文字数の違う文字列が20行程入力されています。それを、A列(A1~A20)のセルに入力されてされている文字列から4文字だけ削除して、B列(B1~B20)に表示(入力)したいのですがどうすればいいのでしょうか? 例えば、A列(A1~A20)のセルにそれぞれ「今年は2008年です。etc.」とか「今年は2008年1月3日です。etc.」、、、など文字数の違った文字列が入力されているセルの右から4文字分「etc.」だけ削除してB列(B1~B20)に「今年は2008年です。」とか「今年は2008年1月3日です。」というふうに表示(入力)したいのです。テキストを読んでMID関数で出来るかなと思ったのですが、MID(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

  • エクセルの計算式(文字列の参照)のことで困っています。

    エクセルの計算式(文字列の参照)のことで困っています。 基礎的なことと思えるのですが、 セルA1:文字・・・値:TEST セルB1:=A1 最初は、B1の表示が TEST となるのですが、 B1をダブルクリックすると =A1 のように表示され、 文字列として扱われてしまうようです。 常にA1の内容を表示するようにするにはどうしたらよいでしょうか。

  • エクセルで文字列の計算をしたいのですが。

    エクセルで文字列の計算をしたいのですが。 セルの表示は文字列ですが、実際のデータは数字(だけ)が入っています。 これを計算する事は可能でしょうか?。 例えば A1セル:00001 と入っていて B1セルには、A1セル+1=00002 とさせたいのです。 よろしくお願いいたします。

  • エクセル関数で文字列の中のスペースの有無を調べたい。

    エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認)     *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無        *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか      *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。

  • 日時を文字列にしたい

    こんにちは。 以下の内容で困っています。 アドバイス宜しくお願いします。 ○内容 セルA1に「2008/11/10 09:08」と入力されている日付のデータがあります。 これをB1に「200811100908」という文字列にしたいのですが、関数を利用して対応できないでしょうか? ○環境 Excel2000 ※西暦部分に関しては以下の方法で文字列にすることができました。 1.B1=YEAR(A1)*10000+MONTH(A1)*100+DAY(A1) 2.出力した値を標準書式にする

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745&#65374;2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745&#65374;2345まで、横のセル=別シートの8.00、8.00、8.00&#65374;13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。