• ベストアンサー

excelにて記号を取り出したい

imogasiの回答

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.9

ユーザー関数(VBA)を定義すれば、正規表現度々使わなくても簡単なコードです。 Function kigou(a) x = "@#$%&()=" For i = 1 To Len(x) p = InStr(a, Mid(x, i, 1)) If p > 0 Then kigou = Mid(x, i, 1) & "がある" Exit Function End If Next i kigou = "記号がない" End Function ーーー (1)どの文字が記号かは x = "@#$%&()=" のところで書き連ねて列挙する。 (2)最初に見つかった記号を返して終わりとしている。 記号を全て列挙もコードを少し変えて可能(注) 例データ A列   B列 aah@wert @がある a%%ggh %がある dffghhh$jku $がある asdfg 記号がない B1は =kigou(A1) 以下式を複写 (注) Function kigou2(a) x = "@#$%&()=" s = "" For i = 1 To Len(x) p = InStr(a, Mid(x, i, 1)) If p > 0 Then s = s & Mid(x, i, 1) & "," End If Next i If s = "" Then kigou2 = "記号がない" Else kigou2 = Left(s, Len(s) - 1) & "あり" End If End Function ーー 例データA5B7 as#3fg4 #あり asdfg 記号がない sddd$gg&6yy $,&あり B5に=kigou2(A5)

関連するQ&A

  • エクセルで特殊記号を普通の文字に認識させたい

    お世話になります。 A列にサイト名、B列にURLが入っています。 C列に次のような文字列が出るように式を入れたいのですが、 エラーでうまくいきません。 <ahref="(Bの文字列)"target="_blank">(Aの文字列)</a> <"などの特殊記号を数式ととらえているようです。 C列にどのような数式を入れれば改善されるでしょうか?

  • エクセルで並び替えが出来ない…!

    エクセルでセルに 文字(というかデータ)をたくさんの行にわたって入力し 右側の別列に数式を入力し特定の文字を抽出し 下に連続データを複写していきました。そして その抽出した文字の列をソートしようとしたのですが 並び替えできません。 原因はもともと連続した数式だからだと思いますが… それを式としてでなく抽出した文字として並び替えることは出来ませんか?? 回答よろしくお願いします。

  • エクセル 特定の文字列を抽出・挿入

    例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?

  • Excelの関数について

    エクセルで表を作っているのですが、関数についてひとつ質問です。 VLOOKUPなどの検索関数で、検索値として参照する値にひとつのセルの中の一定の文字列を指定したい場合はどうすればよいのでしょうか? MID関数で抽出しようとしたのですが、どうも関数で抽出した値はエラーが出るようで・・・。どなたかわかる方いらっしゃったら回答お願いします。

  • エクセルで列にある記号の数をカウントしたい

    エクセルで列にある記号の数をカウントしたいのですが、どうすればいいのでしょうか。 列の中には■ ◎ ☆ が各行にあり、その列の中に各文字がいくつあるのかが確認したいのです。 集計のセルは複数に(各記号ごと)なってもかまいません。 初歩的な質問かもしれませんが、どうぞよろしくお願いします。

  • エクセル:数式の結合

    お世話になります。 A1セルに =B1 A2セルに =B2+C2 A3セルに =B3+C3+D3 ・・・ という式があるとします。 ここにそれぞれのF列の数式を追加したいと思います。 A1セル =B1+(F1の数式) A2セル =B2+C2+(F2の数式) A3セル =B3+C3+D3+(F3の数式) ・・・ となるようにしたいのですがどのようにすればよろしいでしょうか? 結果だけであれば足し合わせればよいのですが数式を書き換えたいというのが希望です。 (最終的にはA列の数式とF列の数式をあわせてひとつの列にしてしまいたいのです) 置換や関数ではどのようにしたらいいかわかりませんでした。 (マクロは手を出したことがありません) 文字列の結合ならCONCANTATE関数でできるのですが中の数式をうまく結合するには・・・ と考えていっても無理でした。 すみませんがお教えください。

  • 指定した文字数分の文字列を抽出し、検索(VBA)

    いつもお世話になっております。 指定した文字数分の文字列を抽出し、他のシートから抽出した文字列を検索して表示するのに セルBB2に =IF(AW2="",VLOOKUP(LEFT(N2,2),商品マスタ!$M$21:$N$67,2,0)) という数式を入れています。 セルBB2のみではなくBB列でずっと同じ処理をするため、マクロで処理しようと思うのですがなにぶん未熟でいい方法がわかりません。 Mid関数を使えばいいのかな、とは考えましたが、どう書けばいいのかわからず前にすすめません・・・・ どなたかご教授いただければ幸いです。

  • 特定の記号の数による、任意の文字行からの抽出。

    文字行がありB2からB15まで、A列の記号で表しています。文字行は任意です。 B列の文字行を特定の記号の数で抽出するとB2からB8までをC列からG列までのように表せます。 A列  B列     C列    D列  E列   F列   G列 1記号・ 文字行 抽出記号    2〇・・△△〇・・・〇・・・・・〇・・・・・〇・・・・・△△・・・〇                3△・・△△〇・・・〇・・・・・〇・・・・・〇・・・・・〇・・・・・△△                  4凵・・凵〇〇・・・凵・・・・・凵・・・・・凵・・・・・〇〇・・・〇〇                   5И・・凵И△・・・凵・・・・・凵・・・・・И・・・・・凵・・・・・凵                6・・・・И△△・・・И・・・・・△△・・・△△・・・И・・・・・И 7・・・・△△△・・・△△△・△△△・△△△・△△△・△△△      8・・・・凵И△・・・△・・・・・И・・・・・凵・・・・・凵・・・・・凵 /・・・・ 15・・・ 特定の記号の数:4種 B2:B8で、列に 1)〇が総数2コ 2)凵が2コ 3)Иが1コ で、 空白なしとします。 こんな文字行があり、特定の記号の数を1)2)3)とすると、C列からG列のようになります。 文字列に空白がない、こんな抽出をしたいのですが、 このような抽出はどうすればよいでしょうか、どなたか教えていただけませんか。 よろしくおねがいします。

  • Excel INDIRECT

    お世話になります。 INDIRECT関数で、 =INDIRECT("A1")は、=A1と同じように、A1セルを参照しますが、 =VLOOKUP(A1,B1:C19,2,FALSE)を、==INDIRECT("VLOOKUP(A1,B1:C20,2,FALSE)”)で囲むと#REF!エラーになります。 目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 #REF!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。

  • エクセル-抽出したデータや文字列を消さない方法

    他のファイルから例えばVLOOKUP関数で数値や文字列を抽出する場合、そのファイルが消えた場合抽出したデータや文字列も消えてしまいます。ファイルが消えてもデータや文字列を残すには別のセルにコピーして形式を選択して貼り付ければよいのですが、そうしなくても簡単に別のセルに数値や文字列として残す方法はないでしょうか。回答よろしくお願いいたします。