- ベストアンサー
Excelで1つのセルに3つの情報を入れた情報の抽出方法は?
- みんなの回答 (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)))
その他の回答 (3)
- pkh4989
- ベストアンサー率62% (162/260)
こんにちは。 以下のマクロで、試してみてください。 但し、検索シートの範囲は「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を押してマクロ一覧からマクロ名を選択して実行
お礼
ありがとうございます。 VBAは現在勉強中ですが、貼り付け方まで書いていただいて 感謝です。 がんばってみます。
- kokorone
- ベストアンサー率38% (417/1093)
関数を使うと、とんでもなく複雑になります。 メニュー操作ではいけないでしょうか? 参照URLに詳しく出ています。
- redowl
- ベストアンサー率43% (2140/4926)
関数で解決するより、 「データ」メニューの「区切り位置・・・」 http://bio.ics.kagoshima-u.ac.jp/~ohno/ECL/6/excel2.html の方が楽なケースかな・・・
お礼
ありがとうございます。 どうしても関数でやっつけたくなる癖がありまして・・・ 区切り位置の使い方勉強になりました。 情報量が多く、文字数などが不規則なので、応用して目的の ことが出来るようにやってみようかと思います。
関連する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」になり、抽出場所は別シートでもかまいません。 過去の質問など参照してみましたがうまく出来ませんでした。 複数の関数を組み合わせでもかまいませんので、お手数おかけしますが よい方法が有ればご教示お願いします。
- ベストアンサー
- その他MS Office製品
- 文字抽出
エクセル初級者です。マクロは分かりません。 セルに ”漢字 半角スペース (ピンイン表記)” されています。 例)麻婆豆腐 (mápó dòufu) これから漢字とピンインを分けて抽出したい。 対象のセルの列には漢字は1~7文字で文字数に応じてピンインも変化します。 FIND,MID,LEFTなどの関数を調べてみましたが、所望には至りませんでした。 何かアドバイスいただければ有難く。
- ベストアンサー
- Excel(エクセル)
- エクセルでスペース以降の単語を引き出す
お世話になります。 たとえば、ひとつのセルに下記のような情報が入っていた場合、 Specialized Allez 24 2010 Road Bike ”Specialized”はLEFT関数とSEARCH関数で引き出せるのですが、最後から二つの半角スペース以降の「単語」を引き出す(ここでは”Road Bike”)場合、どういった関数を組み合わせるとよいのでしょうか。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- セルに入力した数値の組み合わせを抽出する方法
セルに入力した数値の組み合わせを抽出する方法 色々探したのですが、よく分からないので教えてください。 エクセルシートの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つのセルにおさまっており、細かい地域分析ができない為。
- ベストアンサー
- その他MS Office製品
- エクセルのセル内から数字だけを抽出する方法を教えて下さい
エクセルのセル内から数字だけを抽出する方法を教えて下さい あるデータの列(備考欄)には様々な文字が入っていて、 その中に●名(●は数字)が入っています その数字だけを取り出して 別の列に移す関数を教えて下さい ※この列には他の数字は入っていません、最大で2ケタです よろしくお願いします
- ベストアンサー
- その他MS Office製品
- エクセルで文字列の抽出方法についてお尋ねします。
宜しくお願いします。 エクセルを使用して条件付の文字列の抽出をしたいと思っています。 A列のセルに2つの文字列がスペースを挟んで50行ほど入っています。 また、その中にはひとつの文字列しか入っていないものもあります。 イメージ的には以下のようなものです。 | A | B ------------------------------------- 1|エクセル マウス| -------------------------------------- 2|エクセル ペン | -------------------------------------- 3|エクセル ノート | ------------------------------------- 4|エクセル | ------------------------------------- 上記の例では「エクセル」という文字はひとつのセルですが コレが多くあります。 ここで、2つの文字列の組み合わせだけをB列に表示させることは 出来ますか? また、このパターンが終わった後に、「エクセル」という文字列の代わりに 「ワード」という文字列のものが51行目から続きます。 ここでも2つの文字列の組み合わせと「ワード」単体のものとが あるので、出来れば2つの文字列の組み合わせだけをB列に表示し なおかつ上の方へ詰めて表示したいのです。 分かりづらい質問で申し訳ありません。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます。 これだけ長い関数を書いていただくなんて 感謝感謝です。 でも、なんで1つのセルからデータを分割抽出 するだけなのに適切な1つの関数がないんでしょうかね?