- ベストアンサー
エクセル 文字列抽出について質問です
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
関数なら、A1に文字列を入れて、他のセルに =LEFT($A$1,FIND("=",$A$1)-1) =RIGHT($A$1,LEN($A$1)-FIND("=",$A$1)) VBAなら Sub samp() Dim str As String Dim arg As Variant str = "ボリュームサイズ=74.53GB" arg = Split(str, "=") MsgBox arg(0) MsgBox arg(1) End Sub
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17068)
=が文字列中に必ずあり、2つ以上ないとして VBAでユーザー関数ですか ーー Function splt(a, b) s = Split(a, "=") If b = 1 Then splt = s(0) Else splt = s(1) End If End Function とコード数が少なく簡単でしょう。 ーー 使い方 A1セル ボリュームサイズ=74.53GB B1に =splt(A1,1) 1は先頭部 結果 ボリュームサイズ C1に =splt(A1,2) 2は右部 結果 74.53GB ーー 普通は既回答のFIND関数で=の位置を割り出し、=の左部(LEFT)と右部(RIGHT)に分けるでしょう。
お礼
ご回答ありがとうございます。
1.そのセルの内容を別のセルにコピー。(元のデータを残しておきたい場合) 2.コピー先の列の右側に列を1列挿入しておきます。 3.コピー先のセルを選択します。 4.「データ」-「区切り位置」をクリック。 5.「カンやタブ・・・」に●がついていることを確認して、「次へ」をクリック。 6.「区切り文字」の「その他」にチェックを入れ、内容に「=」を入力して、 「完了」をクリック。 でいかがでしょう。 区切る元のセルの右にデータが有ると「上書き」されてしまうので、 区切りたいブロック数の分だけ、右側に空白のセルを設けておく必要があります。
お礼
ご回答ありがとうございます。
[イミディエイト] ? CutStr("AAAAA=BBBBB=CCCCC", "=", 1) AAAAA ? CutStr("AAAAA=BBBBB=CCCCC", "=", 2) BBBBB ? CutStr("AAAAA=BBBBB=CCCCC", "=", 3) CCCCC ? CutStr("This is a pen!", " is ", 1) This ? CutStr("This is a pen!", " is ", 2) a pen! This 汎用性と使い勝手で言えば、VBA で CutStr() などを作成することでしょう。 Public Function CutString(ByVal Text As String, _ ByVal Separator As String, _ ByVal N As Integer) As String Dim I As Integer Dim J As Integer Dim K As Integer Dim L As Integer Text = Text & Separator L = Len(Separator) - 1 For I = 1 To N J = K + 1 K = InStr(J, Text, Separator, vbTextCompare) + L Next I If K > J Then CutString = Mid$(Text, J, K - J - L) End If End Function 一昔前までは、こういう風にチトややこしい手続きを書かねばなりませんでした。 しかし、今は、Split関数で文字列を分割して抽出することが可能なので割りと簡単に書けます。 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 1、分割した配列 strDatas(0) に "" が代入されるように、""と区切り文字列を先頭に付けて分割。 2、N番目という指定に相当する配列があればそれを戻し、ない場合はstrDatas(0)を戻しています。 ? CutStr("This is a pen!", " is ", 3) ですから、このように存在しない3番目を指定すると""が返ってきます。
お礼
ご回答ありがとうございます。
- mu2011
- ベストアンサー率38% (1910/4994)
関数の一例です。 左辺が=LEFT(A1,FIND("=",A1)-1)、右辺が=MID(A1,FIND("=",A1)+1,LEN(A1))
お礼
ご回答ありがとうございます。
- higekuman
- ベストアンサー率19% (195/979)
vbaになりますが、 left mid right instr instrrev これらを調べてみてください。
お礼
ご回答ありがとう御座います。 調べてみます。
関連するQ&A
- excel 文字列抽出に関する質問
エクセル文字列抽出について質問です。 例えば、 "西郷 隆盛" この文字列から、" "の前後に分けて "西郷" と "隆盛" をユーザ定義関数を用いて、それぞれ別セルに抽出する場合、どのようにモジュールに入力すれば良いのでしょうか? ご教授願います
- ベストアンサー
- オフィス系ソフト
- エクセル-抽出したデータや文字列を消さない方法
他のファイルから例えばVLOOKUP関数で数値や文字列を抽出する場合、そのファイルが消えた場合抽出したデータや文字列も消えてしまいます。ファイルが消えてもデータや文字列を残すには別のセルにコピーして形式を選択して貼り付ければよいのですが、そうしなくても簡単に別のセルに数値や文字列として残す方法はないでしょうか。回答よろしくお願いいたします。
- ベストアンサー
- その他(業務ソフトウェア)
- エクセル 文字列検索と検索した文字列が含まれるセルへのジャンプ
エクセル教えてください。 VBAは使ったことがありません。 現在Q&Aを作っています。 かなりボリュームが増えてしまったので、 文字列検索ができるようにしたいと思っています。 そこで、あるセルに調べたい文字列を入力し、 検索ボタンを押すと、その文字列が含まれるセルにジャンプする。 こんな機能は、エクセルでできませんでしょうか? マクロを組んだりすればよいのでしょうか? 教えてくださいー。
- ベストアンサー
- オフィス系ソフト
- 指定した文字列が抽出できる関数
Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。
- 締切済み
- Excel(エクセル)
- エクセル 特定の文字列を抽出・挿入
例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?
- 締切済み
- オフィス系ソフト
- Excelセル内の改行を含む文字列の1行目抽出
Excelセル内の改行を含む文字列があり、関数を使って、その1行目だけ抽出したい。 たとえば、下記のような式を書きました。「改行コード」おかしみたいで動作しません。 Left("A1", Find(vbCrLf, "A1")) (改行コードをさがして、そこまでの文字列を切り取る) これをVBAで書く方法があれば、コードを教えてください!
- ベストアンサー
- その他MS Office製品
- Excelの文字数が決まっていない文字列の抽出
教えてください。Excelで、文字数の決まっていない文字列を抽出したいのですが、例えば、 セルA1 : プロジェクト1 簡単な文章 2352 PD_JOK セルA2 : プロジェクト13 複雑な文章列とは決まっていない 2453 AO_JKI ・・・・・・ というセルから、 プロジェクト名から、半角数字前までの文字数が決まっていない文字列「簡単な文章」や「複雑な文章~」をセルB列に抽出する方法を教えていただきたいのですが、 そして、半角数字後の半角英字「PD_JOK」をセルC列に抽出する方法も同時に教えてください。 万単位でデータがあるので、関数を使わないと難しいです。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルの文字列で似たものを抽出する
いくつかあるエクセルの文字列のうち, 一番にてる文字列を抽出する方法を教えてください. たとえば,画像のように入力してある30通りの文字列のうち, ★の文字列に一番似ている文字列は1~30番の文字列のうちどれか, を知る方法について,具体的に教えていただけると嬉しいです. 関数は,不得意なのを踏まえて,教えていただけるとなお嬉しいです. どうぞよろしくお願いします.
- ベストアンサー
- オフィス系ソフト
- エクセルで文字列の最大値を抽出する方法
文字列の最大値を抽出したいのですが 4つのセルにA、B、C、Dが入力されている場合の文字列の最大値Dを抽出する関数式を知りたい エクセルヘルプで見るとMAXAとなっていたのですが抽出する答えは”0”となってしまいます。
- 締切済み
- オフィス系ソフト
- EXCEL2007で文字列の右側から特定文字を抽出
EXCEL2007で1つのセルの文字列の右側から最初の"/"が出現したときまでの文字を抽出する方法を教えてください。 (例) A 1エクセル/関数/123456/ここがターゲット 2 3 ⇒関数を使用し、上記A1セルの「ここがターゲット」の文字列を抽出したいのです。 神様、どうか教えてください!
- ベストアンサー
- 在宅ワーク・SOHO
お礼
ご回答ありがとうございます。