- ベストアンサー
文字列の抽出について
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
こんな方法も…… C1に↓の式を入れ、C1:E2にコピー =TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",100)),100*COLUMN(A1)-99,100)) ただし、文字列が何十文字もあるような場合は上手くいかない可能性あり。
その他の回答 (10)
- HohoPapa
- ベストアンサー率65% (454/691)
項目は必ず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))) とし、必要数下方向に複写するというのはいかがでしょうか。
- imogasi
- ベストアンサー率27% (4737/17068)
#5です。 私の回答は、一応、「関数による処理」ともいえると思うが。 ぴったりの、エクセル既定の関数は無いので、関数を組み合わせてやることになるが、却って、思い付きが要り、複雑になると思ったので、紹介したのだ。 仕事でエクセルを使うなら、VBAを勉強しないと、どうにもならんと思うよ。
お礼
関数でどうにかなりました。
- SI299792
- ベストアンサー率48% (715/1479)
すみません。よく見ると空白は全角ですね。全角に直しました。 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)
- SI299792
- ベストアンサー率48% (715/1479)
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)
- msMike
- ベストアンサー率20% (363/1775)
添付図参照 G列を空白のマンマ放置して、次式を入力したセル H1 を右方に(数値 99 が表示されるまで)オートフィル =IFERROR(FIND(" ",$A1,G1+1),99) 次式を入力したセル C1 を右方に(空白セルが表示されるまで)オートフィル =IFERROR(MID($A1,G1+1,H1-G1-1),"")
- imogasi
- ベストアンサー率27% (4737/17068)
「区切り位置」の操作と同じことを、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店 となります。
補足
できれば関数を使用して処理したいと考えております。
- watabe007
- ベストアンサー率62% (476/760)
データが有るA1とA2を選択⇒ [データ]タブ⇒[区切り位置] [カンマやタブなどの・・・・] チェック ⇒[次へ] [スペース]をチェック ⇒[次へ]⇒ [表示先] にC1と入力⇒[完了]
補足
できれば関数を使用して処理したいと考えております。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
私は、こういうケースでは安直に次の関数を使っています。 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
補足
できれば関数を使用して処理したいと考えております。
- HohoPapa
- ベストアンサー率65% (454/691)
追記します。 A列を残し、C,D,E..と分割したい場合は A列をC列に複写し C列を分割してください。
補足
できれば関数を使用して処理したいと考えております。
- HohoPapa
- ベストアンサー率65% (454/691)
エクセルの話でよければ、... 分割元のセルたちを選択し、 データタブ、区切り位置を選び、 区切り文字にスペースを選択することで 分割できます。
関連するQ&A
- Excel 文字列の抽出
Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 文字列リストから文字列リストの抽出
A列のリストの文字列に、B列のリストの文字が含まれていたらそれを取り出すにはどうしたらよいでしょうか? ※画像を参照してください。 例:A2セルの文字列にB2~B4の文字が含まれていないかをチェック、含まれていた文字列(B2~B4の内容)をC列に表示する。 関数なら何とかできますが、マクロの知識がほとんどありませんのでマクロが必要になるようでしたら詳しく教えていただければ幸いです。 よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- スペースを含んだ文字列から文字列の抽出
エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル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 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 【EXCEL】文字列抽出および表示の式について
【EXCEL】文字列抽出および表示の式について EXCEL初心者です。 以下のように、A列はリストによる選択入力。B列、C列は、A列のリストで選択した値(文字列) を元に文字列を自動入力したいと思っています。 A列のリストの設定は分かるのですが、B列、C列にどのような式を入れれば良いかが分かりません。 (処理内容) ・A列:リストにより選択形式で入力。リストの値(文字列)は、X列に定義(行数未定)。 ・B列:A列の値(文字列)と同じ値(文字列)をX列より抽出し、右隣のセル(Y列)の値(文字列)を表示 ・C列:B列の値(文字列)と同じ値(文字列)をY列より抽出し、右隣のセル(Z列)の値(文字列)を表示 [A列] [B列] [C列] ・・・ [X列] [Y列] [Z列] [1列目] aaa あいうえお 1234 aaa あいうえお 1234 [2列目] bbb かきくけこ 5678 bbb かきくけこ 5678 [3列目] eee たちつてと 3456 ccc さしすせそ 9012 [4列目] aaa あいうえお 1234 ddd さしすせそ 9012 [5列目] ddd さしすせそ 9012 eee たちつてと 3456 : : : : : : : よろしくおねがいします。
- ベストアンサー
- その他MS Office製品
- EXCELで、文字列を任意の文字数毎に分割するには
≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 300個の文字列を結合し1個のセルに
ファイル名変更ソフト「Namery」に使うのですが、セル1個に 001> 001a|002> 001b|003> 001c|004> 002a|005> 002a|006> 002c このようにして 300> 100c| までの文字列つくれませんか? VBAをお願いしたいのです。あるいは下記のD1からD300のセルの文字列を合体してE1に表示、でも良いのですが。 VBAを知らないので、次のような作業を始めましたが途中で疲労困憊です。 A1に001をいれオートフィルでA300までつくり B1に半角スペース+001a B2に半角スペース+002b B3に半角スペース+003c としてから 100c迄オートフィルし C1 に=CONCATENATE(A1,B1) C1をコピーD1に「値のみ貼り付け」してからオートフィル。 出来たD1からD300の文字列を1セルの文字列にするために、エクセルの30個までの制限のため何段階にも作業を分けなければなりません。 ファイル名変更ソフト=Namery の[連続置換・正規表現]に文字列を入れ目的を果たしたいのです。 http://www.vector.co.jp/soft/win95/util/se217399.html
- ベストアンサー
- オフィス系ソフト
- エクセル関数で文字列の中のスペースの有無を調べたい。
エクセル関数について教えてください。 全てが半角のはずの文字列・A1セルについて、下記について調べたいです。 1.同列(A列)の他のセルに入力されている文字列とのダブリチェック(同じ文字列がないかの確認) *ダブリがある場合"ダブリ"表示 2.A1の文字列中のスペースの有無 *スペースがある場合"スペース"表示 3.A1の文字列中に全角が混ざっていないか *全角がある場合"全角"表示 1.については、 =IF(COUNTIF(A:A,A1)>=2,"ダブリ","") の関数を使用してチェックが出来ると思うのですが、 2.については、関数TRIM 及び 置換での削除方法、3.については、 関数ASC での半角変換 しか手段が見つかりませんでした。 上記のものをマクロを組んでいる中に組み込みたいので、出来れば、上記3つの結果をひとつのセル(C1)に表示させたいのですが、可能でしょうか? *A1セルに上記3つが当てはまる場合、C1セルに "ダブリスペース全角" と表示させたい。 どれについて引っかかっているのかがわかればいいので、記号などに置き換えてもかまいません。 可能な限り調べては見たのですが、私の知識ではどうにもなりませんでした。 もし、いい案などがあればご紹介してください。 宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- EXCELで文字列内のスペースの抽出
EXCEL2000を使用しています。 A列に文字列が300行ほど入力されています。 ある条件で、各文字列の先頭にスペース(空白)が0個~3個ついています。 いま、文字列の先頭にあるスペースの数をB列に表示させたいのですが、 どのような関数を使えば良いでしょうか。 ご存じの方、ご教授下さい。
- ベストアンサー
- オフィス系ソフト
- EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいで
EXCELでA列とB列の文字が合わせてC列に入るやり方を教えて欲しいです。 例 A1セルは04+ B1セルは2000 C列に04+ 2000のように作りたいです(真ん中に1個スペース)。 セルが多すぎて、一個ずつやるのは大変時間かかりますので、関数のやり方をご教示ください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとう御座いました。