• 締切済み

Exelで共通の語句を抽出するマクロを教えて下さい

Exelの表である列で共通するn個の文字列があった場合に指定の列に数字を表記させるマクロがありましたらお教えください。 添付の画像では、C列の品名で「なし」「ぶどう」で共通した場合、A列のチェック欄に「なし」に1、「ぶどう」に2と表示させるイメージです。 共通する文字列に位置はセルの任意の可能性があり、たとえば5個だったり7個と変更できるようにできればベターです。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.2です。 画像をアップするのを忘れていました。 どうもごめんなさい。m(_ _)m

atom9648
質問者

お礼

ご回答いただきありがとうございます。 これまでどう考えて良いか全くわかりませんでししたが、進め方が見えてきました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! >共通するn個の文字列があった場合に指定の列に数字を表記させる Excel的には文字列をどこで区切ってよいのか判断できませんので こちらで決めてやる必要があります。 そこで↓の画像のように「共通する文字列」の表を作成しておいた上での一例です。 シートモジュールです Sub Sample1() Dim i As Long, k As Long For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row For k = 2 To Cells(Rows.Count, "G").End(xlUp).Row If InStr(Cells(i, "C"), Cells(k, "G")) > 0 Then Cells(i, "A") = Cells(k, "H") End If Next k Next i End Sub この程度しか思いつきません。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問の画像があまり見えないので想像の部分があります。Excel2010です。 「なし」や「ぶどう」が含まれる品名に関して、同じように「なし」や「ぶどう」が含まれる品名はそのほか何個あるかを計算したいということでしょうか。 マクロというより、VBA(マクロ)を使ったユーザー定義関数が適切でしょう。 マクロで「なし」や「ぶどう」で照合し、カウントさせる必要があります。そのために「品名区分」として、シートに表を作りました。K2:K3になります。必要な分増やしてください。添付図を見てください。 添付図で、チェック欄G2の算式は、 =CountKubun(I2,$C$2:$C$21,$K$2:$K$3) になります。下にコピーします。 ユーザー定義関数なので、関数をセットすればマクロを実行する必要はありません。(データ行が増えたりした場合は算式の修正と再計算(F9)はしてください。)I列の品名とC列の全品名、K列の作った表を使っています。 以下を標準モジュールに貼り付けます。 Function CountKubun(elm As String, ALL_Table As Range, KUBUN_Table As Range)   Dim rg1 As Range, rg2 As Range   Dim cnt As Integer      Application.Volatile      For Each rg1 In KUBUN_Table     If InStr(elm, rg1.Value) > 0 Then       For Each rg2 In ALL_Table         If InStr(rg2.Value, rg1.Value) > 0 Then           cnt = cnt + 1         End If       Next     End If   Next      If cnt > 0 Then     CountKubun = cnt - 1   Else     CountKubun = ""   End If End Function

atom9648
質問者

お礼

御礼が遅くなり申し訳ございません。 ご丁寧にご説明いただきありがとうございます。 ご教示通りに関数の作成にチャレンジしてみます。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXELのマクロに関して質問します。

    EXELのマクロに関して質問します。 シートAの任意のセルに文字列を入力後、シートBの同位置のセルと比較し、 同じ内容かどうかを判断する方法を教えてください。

  • EXELで電卓の「000」と同じマクロを作る方法

    仕事柄、EXELで百万単位の入力をよく行うので、電卓(加算機)の「000」キーみたいに、入力中の任意のセルの数値を、1000倍、1000000倍するマクロを登録できると便利なのですが、方法がわかりません。なお、EXELは会社のパソコンのため、いまだに「97」です。  よろしくお願いします。

  • Excelのマクロで()内の文字を抽出して書き出したい

    HTMLにあるテーブルの部分をコピペして貼り付けたExcelファイルがあります。 A~Cまでの3列が埋まっている状態で、D以降の列は空欄です。 C列に123(1112)というように、数字(数字)の記載になっている部分があります。 ()の前と、中は必ず半角数字で、桁は1桁~5桁までと幅広い状態です。 この()内の数値をD~F欄に書き出したいです(縦3列のものを、横3列として書き出したい) 数字(数字)という記載のセルは、必ず縦に3つ並んでいますが C列は膨大なセル数なうえに、数字(数字)という記述以外のセルも間に入っております(数字のみのセルか、空欄のセルです) 3つ並んでいる部分のみを探して、()内の数値を抽出し、D~F列に書き出すことは可能でしょうか? 書き出す場所は、3つ並んでいるC列の最初のセルの横のD~Fだと助かります。 (数字(数字)がC6~8にあった場合、D6~F6に書き出される) なお、数字(数字)というセルはC列以外にはなく、4つ以上縦に並ぶ事もありません。 さすがにこのような内容を実行するのは不可能でしょうか? もし可能でしたら、マクロを組んでいただきたいです・・・よろしくお願いします。

  • EXELで条件抽出をしたい…

    教えて下さい。EXELで作った下のような表(データ)がありその条件に合う人を抽出したいんですが…       A   B   C   D 1 Aさん 1234  2345  3456  4567 2 Bさん 6788  1234  5556  7778 3 Cさん 7788  7778  5443  7789 A~Dのセルにランダムに並んだ数字を入力している(ここでは、番号(1234)と入力している)人を関数を使い一発表示したいんですが。  A列だけに1234という数字を入力している人を抽出し、条件にあえば「○」という表示をできるようにはIF関数を使いできましたが、 AさんのA列、B列、C列全てを検索範囲に入れた、(たとえば「1234」と入力しているなら「○」等で表示(抽出)したいんですが…それができる関数を教えて下さい。列ごとしかできないのか…??? 分かりにくいですか? (^_^; 宜敷お願いします。

  • エクセル マクロ

    エクセル マクロで、シート1のA1セルないの文字列(数式)をクリックボードにコピーするマクロを組みたいのですが、セルのコピーは出来るのですが、文字列のみコピーが出来ません。貼り付けは任意でするので必要ないです。 初心者で何もわかりません。よろしくお願いします。

  • EXELでセルの色を投影するには?

    初歩の質問で申し訳ありません。 EXEL上で例えばA1のセルの色が赤であった場合 任意のセルを(例えばC10)関数かマクロでA1のように赤にする方法は無いでしょうか? 多数のセルの色をA1を変えることで変えたいのです よろしくお願いいたします

  • 値が奇数の時、任意のセル範囲の行の色付けマクロを

    条件つき書式のマクロを教えてください。 任意の選択したセルの右端列に数字を入力しています。 その数字が奇数だったら、数字の入力してある任意の列は除いて、行の色付けをしたいのです。 選択するセル範囲と数字の入っているセルの列はシート毎、ブック毎に、変わりますので、マクロで設定をしたいと思っています。エクセル2010を使っています。 よろしくお願いします。

  • マクロでExcelのセルに任意の文字列を追加するには?

    Excel2003 を使用しています。 文字列の入ったセルに任意の文字列を追加するマクロを 作りたいのですが、どのように記述すればよいのでしょうか? 例えば、郵便番号に〒を文字列の頭に追加したい場合です。 元のセルに入力されている文字列が 111-1111 として、マクロで、 〒111-1111 と同じセルに追記したいのです。 ご助言の程、どうぞよろしくお願いします。

  • エクセル2000-マクロでの文字置き換えの質問です。

    エクセル2000を使用しています。    A    B    C    D       ・・ X    Y 1 1  とまと  4  なし       1  とまと 2                      2    なす 3 2  なす   5  りんご     5   きゅうい 4                      6   ソーセージ 5 3  きゅうり 6  えだまめ    6                     -------------------------------------------------------------- 上のような表があります。 A列C列には番号(固定番号)が入っています。 列の間には空白のセルが入っています。(X・Y列は空白セルなし) B列D列には品名が入っています。 X列の数字がA列・C列にあっていたらYの文字をB列・D列に、 それぞれ、置き換えを行いたいです。 X列の数字とY列の文字は、その都度かわります。 上記のような処理をマクロで行うことは、可能でしょうか? 説明がうまくできていないかも知れませんが、よろしくお願いします。

  • EXELの大文字の数字を小文字に簡単に変換したい

    EXEL2000です。 数字が大文字ではいっているセルがたくさんあります。 これを簡単に小文字にする方法を教えてください。

このQ&Aのポイント
  • ゴーミキサープロXをアナログ接続してビデオ通話でDJミキサーの音を友人に送った際、音質が悪いと言われました。どうすれば音質を良くすることができるでしょうか。
  • GO MIXER PRO Xのアナログ接続でラインのアプリを使いビデオ通話し、友人にDJミキサーの音を送った際に音質が悪いと言われました。どのようにすれば音質を改善することができるのでしょうか。
  • ゴーミキサープロXをアナログ接続してビデオ通話し、友人にDJミキサーの音を送った際に音質が悪いと言われました。どのようにすれば音質を向上させることができるのでしょうか。
回答を見る

専門家に質問してみよう