• ベストアンサー

Excelで1つのセルに3つの情報を入れた情報の抽出方法は?

いつも教えてもらいありがとうございます。 今Excelにて1つのセルの中に3つから4つの情報が半角スペースで開けて入れているのですが、 別シートにそれらを分けて1つのセルに1つの情報を入れたいのですが、 1つ目の情報は文字列操作関数SEARCHとLEFTの組み合わせで 抽出することが出来たのですが、2つめ以降が上手くいきません。 どうすればできますか教えてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

A1にデータがあるとして一番目から四番目を取り出すそれぞれの式 =IF(ISERROR(SEARCH(" ",A1,1)),"",(LEFT(A1,SEARCH(" ",A1,1)-1))) =IF(ISERROR(SEARCH(" ",A1,SEARCH(" ",A1,1)+1)),"",MID(A1,SEARCH(" ",A1,1)+1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)-1-SEARCH(" ",A1,1))) =IF(ISERROR(SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)+1)),"",MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)+1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)+1)-1-SEARCH(" ",A1,SEARCH(" ",A1,1)+1))) =IF(ISERROR(SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)+1)),"",MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,1)+1)+1)+1,LEN(A1)))

hatenaman
質問者

お礼

ありがとうございます。 これだけ長い関数を書いていただくなんて 感謝感謝です。 でも、なんで1つのセルからデータを分割抽出 するだけなのに適切な1つの関数がないんでしょうかね?

その他の回答 (3)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

こんにちは。 以下のマクロで、試してみてください。 但し、検索シートの範囲は「A1~使用ROW,使用Column」です。 展開はシート「Sheet2」にされます。 Sub 文字列分割()   Dim wRng1 As Range   Dim wR   As Long   Dim wC   As Integer   Dim wh1   As Worksheet   Dim wStr  As String   Dim wChr  As String   Dim wI   As Integer   Dim wRow  As Long   '   '検索範囲(A1:??)   Application.ScreenUpdating = False   With ActiveSheet                '検索シート     wR = .Range("A" & Rows.Count).End(xlUp).Row     wC = .UsedRange.Columns.Count     Set wRng1 = .Range(.Cells(1, 1), .Cells(wR, wC))     For Each c In wRng1       If c.Row <> wRow Then         wRow = c.Row         wC = 0       End If       wStr = c.Value       If wStr <> "" Then         wI = 1         wChr = 1         Do While wI > 0           wI = InStr(1, wStr, " ")           wC = wC + 1           If wI > 1 Then             wChr = Left(wStr, wI - 1)             wStr = Mid(wStr, wI + 1)             Worksheets("Sheet2").Cells(c.Row, wC) = wChr  '←展開シート(Sheet2)           Else             Worksheets("Sheet2").Cells(c.Row, wC) = wStr  '←展開シート(Sheet2)           End If         Loop       End If     Next   End With   Application.ScreenUpdating = True End Sub マクロ貼付 (1) Alt+F11 (ツール → マクロ → Visual Basic Editor) →「挿入」→「標準モジュール」で表示される画面に貼り付け (2) 実行は、(F5を押す)又は、シート画面に戻って Alt+F8を押してマクロ一覧からマクロ名を選択して実行

hatenaman
質問者

お礼

ありがとうございます。 VBAは現在勉強中ですが、貼り付け方まで書いていただいて 感謝です。 がんばってみます。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

関数を使うと、とんでもなく複雑になります。 メニュー操作ではいけないでしょうか? 参照URLに詳しく出ています。

参考URL:
http://www.relief.jp/itnote/archives/000133.php
  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

関数で解決するより、 「データ」メニューの「区切り位置・・・」 http://bio.ics.kagoshima-u.ac.jp/~ohno/ECL/6/excel2.html の方が楽なケースかな・・・

hatenaman
質問者

お礼

ありがとうございます。 どうしても関数でやっつけたくなる癖がありまして・・・ 区切り位置の使い方勉強になりました。 情報量が多く、文字数などが不規則なので、応用して目的の ことが出来るようにやってみようかと思います。

関連するQ&A

  • Excelのセル内の文字操作について

    Excelのセル内に、例えば Rmax_20.5s (←_ は半角スペースです) などの様な文字列が入っているのを、関数を使用して 20.5 の様に数値のみを残すことは可能でしょうか。 REPLACEやSEARCHなどで試みましたが、出来ませんでした。 どうぞ宜しくお願い申し上げます。

  • スペースとスペースの間の文字を抽出する関数

    Excelのひとつのセルのなかに 以下のように スペースで区切って3つの情報を入力しています。 AAA BBB CCC DD EEEEE FF G HHHHHH III このすべてを、それぞれのセルに分解して入力したいです。 一番左の情報(AAA,DD,G)については 以下の関数で抽出することができました。 =LEFT(A1,SEARCH(" ",A1,1)-1) 2つめ、3つめについては どのように関数を記述すればいいでしょうか? お願いいたします!

  • Excelでの複数データ抽出方法

    Excelで関数を使用して以下のようなデータから 複数のデータ抽出を行いたいのですが可能でしょうか? <sheet1> A列 B列 C列 D列     E列 123456 11 12 13    13 123457 12 13 14    13、14 123158 13 14 15    13,14 123159 14 15 16    14  123160 15 16 17 ※抽出するデータは「13・14」になり、抽出場所は別シートでもかまいません。 過去の質問など参照してみましたがうまく出来ませんでした。 複数の関数を組み合わせでもかまいませんので、お手数おかけしますが よい方法が有ればご教示お願いします。

  • 文字抽出

    エクセル初級者です。マクロは分かりません。 セルに ”漢字 半角スペース (ピンイン表記)” されています。 例)麻婆豆腐 (mápó dòufu) これから漢字とピンインを分けて抽出したい。 対象のセルの列には漢字は1~7文字で文字数に応じてピンインも変化します。 FIND,MID,LEFTなどの関数を調べてみましたが、所望には至りませんでした。 何かアドバイスいただければ有難く。

  • エクセルでスペース以降の単語を引き出す

    お世話になります。 たとえば、ひとつのセルに下記のような情報が入っていた場合、 Specialized Allez 24 2010 Road Bike ”Specialized”はLEFT関数とSEARCH関数で引き出せるのですが、最後から二つの半角スペース以降の「単語」を引き出す(ここでは”Road Bike”)場合、どういった関数を組み合わせるとよいのでしょうか。 よろしくお願いします。

  • セルに入力した数値の組み合わせを抽出する方法

    セルに入力した数値の組み合わせを抽出する方法 色々探したのですが、よく分からないので教えてください。 エクセルシートのB3:E6の16個の各セルに、任意に数値を入力していきます。 その入力した数値の組み合わせを全て抽出したいと思っております。 (抽出先はどこでもいいです。) 希望としてはB3:E3の4個の数値は必ず入った組み合わせを作りたいです。 関数でもVBAでも何か方法が有れば教えてください。 宜しくお願い致します。

  • Excel同一セル内の、アルファベットと数字を別々のセルに置き換える方法を教えてください

    ExcelのA列のセルに、アルファベットと数字の組み合わせが3000行くらい入っています。 アルファベットは1~5個でA~Z、 数字は1~3個で0~9  全て半角です。 の組み合わせです。アルファベットと数字の配置は A1    A12    A123 AB1 AB12 AB123 HD167 SDM12 WB987 の組み合わせです。 (アルファベットと数字はそれぞれまとまっていて、入り混じることはありません) これを、   A  B  C   1 A1  A   1 2 A12 A 12 3 A123 A 123 4 AB1 AB 1 のように、アルファベットと数字を別々にセルに置き換えたいのです。 マクロを使わず、B列以降のセルを使って関数でできないでしょうか? よろしくお願いいたします。

  • データ内(同じセル内)の住所を分けて抽出したい

    ACCESSのテーブルデータで、 1つの項目(列)に、 ●●県 ●●●市 南2-3-12 という住所項目があるとします(市のところは村、郡となっているケースもあり)。 これをクエリーで抽出する際に、 ●●県 ●●●市 までしか抽出しないようにすることは可能でしょうか? 市以降の南2-3-12は抽出しない。 (県、市、南の間は半角スペースがそれぞれある) またそれとは別途で、 それぞれにセルを分けることはできるでしょうか? → ●●県 ●●●市 南2-3-12  の上記それぞれを別々の項目/セルに分割する もしアクセスで難しいようであればエクセルでもOK。 また上記とは別途で、半角スペースがない(文字が連続している)場合にも 出来る方法はあるのでしょうか。 ※会社のデータ保存がいけてなく、県、市区郡、以降~と すべて住所内容が1つのセルにおさまっており、細かい地域分析ができない為。

  • エクセルのセル内から数字だけを抽出する方法を教えて下さい

    エクセルのセル内から数字だけを抽出する方法を教えて下さい あるデータの列(備考欄)には様々な文字が入っていて、 その中に●名(●は数字)が入っています その数字だけを取り出して 別の列に移す関数を教えて下さい ※この列には他の数字は入っていません、最大で2ケタです よろしくお願いします

  • エクセルで文字列の抽出方法についてお尋ねします。

    宜しくお願いします。 エクセルを使用して条件付の文字列の抽出をしたいと思っています。 A列のセルに2つの文字列がスペースを挟んで50行ほど入っています。 また、その中にはひとつの文字列しか入っていないものもあります。 イメージ的には以下のようなものです。 | A | B ------------------------------------- 1|エクセル マウス| -------------------------------------- 2|エクセル ペン | -------------------------------------- 3|エクセル ノート | ------------------------------------- 4|エクセル    | ------------------------------------- 上記の例では「エクセル」という文字はひとつのセルですが コレが多くあります。 ここで、2つの文字列の組み合わせだけをB列に表示させることは 出来ますか? また、このパターンが終わった後に、「エクセル」という文字列の代わりに 「ワード」という文字列のものが51行目から続きます。 ここでも2つの文字列の組み合わせと「ワード」単体のものとが あるので、出来れば2つの文字列の組み合わせだけをB列に表示し なおかつ上の方へ詰めて表示したいのです。 分かりづらい質問で申し訳ありません。 宜しくお願いします。

専門家に質問してみよう