• 締切済み

【Excel】指定した条件の文字を抜き出して表示させる方法

お世話になります。 以下のような文字列があり、""で囲まれている文字を左から抜き出し、結合した形で抽出したいと思っています。 1列:■■■■■("文字")■■■■■■+"文字"+■■+"文字"+■■■("文字") お手数ですが、ご教示のほどよろしくお願いします。<(_ _)> もうさっぱりわかりません…。TT

みんなの回答

noname#140971
noname#140971
回答No.1

■■■■■("文字1")■■■■■■+"文字2"+■■+"文字3"+■■■("文字4") 文字1 <--- =Cutstr(A1, """", 2) 文字2 <--- =Cutstr(A1, """", 4) 文字3 <--- =Cutstr(A1, """", 6) 文字4 <--- =Cutstr(A1, """", 8) 標準モジュールに次の CutStr関数を登録すれば簡単に'文字1'、'文字2'を抜き出せます。 エクセルの標準関数を使っても可能かと思います。 が、たった2行の関数を登録すれば事足りるので・・・。 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 なお、 CutStr関数の仕掛けは簡単です。 ダブルクォーテーション(")を文字列の区切りとみなしSplit関数で分解しているだけです。 そうすりゃ、配列に ■■■■■( 文字1 ■■■■■■+ が順次代入されます。 で、指定のN番目を戻り値にセットしているだけです。 超簡単な関数ですから、まあ、VBAを使うってレベルでもないと思います。

関連するQ&A

  • 各行ごとに異なる文字を抽出したいです。

    同じ列に文字が入力されています。 ただ、各行ごとに抽出したい文字が異なり、その抽出結果を別セルに反映させたいです。 お手数ですが、ご教示いただけますと幸いです。 宜しくお願い致しますm(__)m

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • 【excel2003 vba】指定した文字列が入力されている「セル範囲」の表示方法?

    ◎Sheet1  A B C D E 1○○○-- 2○○○×× 3---×× 4×○--- ※「-」は空白 上記のようにセルに「○」「×」が入力されている「Sheet1」シートがあります。(例として○×の2種類を使っていますが、本当はもっとたくさんの種類の文字列があります。) vbaを使って、以下の一覧表を「List」シートに作成するコードを作成できませんでしょうか? ◎List  A     B 1○     ×  '文字列の種類 2A1:C2  D2:E3 '文字列の範囲  3B4     A4  '同上 【ToDo】 (1)1行目に文字列(○、×)を入力する (2)1行目に入力してある文字列が入力されているすべての「セル範囲」を2行目以降の各列に抽出する。 **1セル内に「○」「×」の両方が入力されているものもある。**  ⇒例えば、A1セルに「○×」と入力されていたら、「Rist」シートのA列B列の両方に「A1」が抽出されるようにしたい。 1セルごとのセル番地(○:A1,A2,B1,…)を一覧化することはできるのですが、同じ文字列をまとめた「範囲」の抽出ができないのです。 どなたかお力添えをお願いできませんでしょうか? 宜しくお願い致します。

  • Excel関数

    お世話になります。 Excelで、あるセル内の「~~Number○○~~」という文字列から、前後の不要な文字列を省いて「Number○○」部分だけを抽出する方法(関数?)はありますか。  注)○○の部分には様々な数字が入り、1桁の場合と2桁の場合があります。 また、「~~Number○○~~」という文字列から、自分で指定した特定の数字を含む場合のみ「Number○○」の文字列だけを抽出する方法もありますか。 ご教示いただきたく存じます。よろしくお願いします。

  • Excel:ふたつの条件でSUMIFを使いたい

    例えば日付(月と日にちは別のセル)とその日に買ったものとその値段の表Aがあって ある日にちに使った合計金額を知りたい場合 単純な方法としては表Aの月と日のセルの数字をCONCATENATEで結合した文字列を新たに作って その文字列と知りたい日付(こちらも結合してある)でSUMIFをすればよいのだと思いますが 無駄に1列結合した文字列を入れるのがなんとなくスマートじゃない気がするので 他の方法は何かないかといろいろ考えているのですができません。 新たに列を作らないで合計を知る方法は何かないのでしょうか? 回答よろしくお願いします。

  • 各行ごとに異なる文字を抽出したいです。2

    同じ列に文字が連続して入力されています。 ただ、行ごとに抽出したい文字が異なり、その抽出結果を別セルに反映させたいです。 抽出したい文字の法則は、抽出結果の右側に記載さえていただきました。 お手数ですが、ご教示いただけますと幸いです。 宜しくお願い致しますm(__)m

  • VBA にて、条件を指定して文字列結合

    条件を指定して文字列を結合させたく、ユーザー定義関数を作成しております。 第一段階として、ワークシート関数のCONCATENATEを、選択した範囲の文字列が結合されるよう、((A1:A5)の様に)、ユーザー定義関数(仮にCONCATENATERANGE)を作成しました。 平たく言うと、SUMIFのSUMの部分を、この、CONCATENATERANGEに置換えたものが作りたいのです。 検索条件を、数値、文字列、空白以外といった条件に限定すれば、望むものができたのですが、演算子(<>,<=,>=,<,>,?,*)までを考慮するとなかなか厄介で、、、 そこで、どなたかSUMIFをコードで書ける方はいらっしゃいませんか? 私が望む関数(仮にCONCATENATERANGEIF)そのものズバリをご教示いただければありがたいのですが、何かと面倒かと思いますので。 どうぞよろしくお願いいたします。

  • Excel2003 IF関数の条件指定方法 (2)

    御世話になります。 先ほど 下記質問に対して的確な ご回答をいただき、一旦は解決したのですが 実は 文字列「BBB」+数字の時にも 後ろの数字を拾う必要が御座いました。 「=IF」を使い、重ねるように試してみましたがダメでした。。。 =IF(ISERR(FIND("BBB",BU33)),"",MID(W33,5,2)),IF(ISERR(FIND("AAA",W33)),"",MID(W33,7,2)) 結果は「#VALUE!」でした。。。 どこを どのように直したらよろしいでしょうか。。 以下 前回の質問文です。 お手数では御座いますが、何卒 宜しくお願い致します。 ________________________________________ 掲題の件で 質問が御座います。 「W列」に文字列「AAA」 を含むコードがあり、後ろに数字が1桁~2桁入っています。 1桁の時には数字の前に半角スペースがあり、2桁の時にはスペースはありません。 他にも文字列「BBB」+数字 だったり「CCC」+数字だったりがありますが(全部で40数種類ぐらい) 「文字列AAAの時のみ後ろの数字を表示させたい」という時に「=IF」と「=MID」の組み合わせで何とかならないかと 思ったのですが、「=IF」の理論式の中で「AAAを含む」という数式を指定する方法は御座いますでしょうか? 説明不足でしたら 何なりと お申し付けください。 宜しくお願い致します。

  • 指定文字から指定位置の文字を除く文字を抽出する

    例えば 文字列「Momotarou too inu kiji」だとして 先頭から11文字目の「t」から13文字の「o」である「too」を抜き出した 文字列「Momotarou inu kiji」を抽出したいと思います。 希望は、 Functionプロシージャで自前の関数です。 (関数にする必要無い場合など別案でも回答としては十分です。) ターゲット文字列(Moji)と最初と最後の文字数(Fp,Lp)を指定して 抽出する文字列(New_Moji)だとすれば New_Moji(Moji,Fp,Lp) ---> New_Moji("Momotarou too inu kiji",11,13) のような型式を想定しています。 特定の文字よりinstrとLeftを利用して左部分にある文字列を取り出すなどの コードは出来るのですが問題の関数となると今の私には難しいです。 Office 2021 / Windows_11

  • Excel2003の関数で文字の抽出

    Excle初心者です。以下のことを関数を使用して実行したいのですが・・・。宜しくお願いします。 列の各セルには文字の羅列があります。これらの特定文字のみを抽出またはカウントしたい。   列1 ----------- (1)(2)(3) (2)(3) (3)(5) (1)→1 (2)→2 (3)→2 (4)→0 (5)→1