• 締切済み

表の中でもっとも多く使用されている文字(数字)を抽出するには

imogasiの回答

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

ホンと長いプログラムが多いですね。#9さんに触発されて Sub test02() j = 1 Cells(1, "H") = Cells(1, "A") Dim c As Range For Each c In Range("a1:d5") For i = 1 To j If Cells(i, "H") = c Then Cells(i, "I") = Cells(i, "I") + 1 GoTo p01 End If Next i j = j + 1 Cells(j, "H") = c Cells(j, "I") = 1 p01: Next Range(Cells(1, "H"), Cells(j, "I")).Select Selection.Sort Key1:=Range("I1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False Cells(1, "E") = Cells(1, "H") Cells(1, "F") = Cells(1, "I") End Sub (テストデータ)A1:E5に a b c r s a s t a c a y w a f s s d g a (結果)H1:I11に a 6 s 4 c 2 b 1 r 1 t 1 y 1 w 1 f 1 d 1 g 1 (結果)E1:F1に a 6 行数列数が増えたときどこを変えれば良いか判るでしょう。

cuty_girl
質問者

お礼

御回答ありがとうございます。 これは私の要望にさらに機能を付けて頂いた処理になっていますね(^^) 実は多い順に表示できたらいいなー、とも思っていました。 実際に試してみたのですが、ちょっと上手くいきませんでした。 「(結果)E1:F1に a 6 」 ですが、E1:F1に結果を出力してしまうと、最初にデータを入力していた部分と重なってしまわないでしょうか? 実際表示されませんでした。 あと、このようなマクロの処理を数式のように常にアクティブな状態にさせることは可能でしょうか? データに変更がある度に、結果も変更されるようにできたらいいなと思います。 またこのマクロの処理を連続して行ってみると、もっとも多くある文字だけが加算されていってしまいます。 例の1部を使用して例えてみると、 <一回目> a 6 s 4 c 2 <二回目> a 12 s 4 c 2 <三回目> a 18 s 4 c 2 と言ったように、処理した回数のみ加算されていきます。 何とか関数のみで多い順に表示したり、カウントしたりしようと考えてみましたが、かなり面倒な処理になってしまいそうです。 他に何かアドバイスがありましたら、よろしく御願いします。

関連するQ&A

  • エクセルで数字が入ったセルの値を抽出

    任意1行中のある1列にFALSEと1列だけ数字が入っています(下図参照)。その数字を抽出する関数があれば教えて下さい。 下図の例では、Fの列にB2:E2の範囲の数字「10」を抽出したいのです。マクロを組めば可能なのですが、セルに入力する関数等で簡単に実現できればと思います。 アドバイス宜しくお願いします。

  • EXCELで、文字列の中から数字を抽出したいのですが。

    お世話になります。 EXCELにおいて、A1のセルに文字と数字が入力されています。この中から、最初の数字のみを、B1に抽出したのですが、ご教示お願いします。 文字の長さと数字の位置は、様々な文字列です。 宜しくお願い致します。

  • エクセルの表から条件にあった数字が入力されているセルの行数を抽出する

    A1からD100まで任意の数字が入力されている表があります。 E1にある数字を入力したとき、A1からD100までの表を1行目から順に、2行目、3行目と検索していき、E1の数字よりも小さな数字がはじめて出てきた行数をE2に自動的に入力するようにしたいのですが、関数を使ってそのようなことは可能でしょうか。

  • エクセルで指定した数字以下の数字を抽出して抜き出す

    エクセルで指定した数字以下の数字を抽出して抜き出したいです 例としては A列 B列 いぬ 1 ねこ 2 うし 3 とら 1 はと 2 この表から空いているセルに任意の数字を入力して それ以下の数字を別のセルに抽出したいです たとえば2を入力したら いぬ 1 ねこ 2 とら 1 はと 2 このような結果を別のセルに抽出したいです オートフィルターとマクロは使わない方向でお願いします 似たような質問としては下のURLでしたが http://okwave.jp/qa/q3200952.html?from=recommend これでは指定した数字と同じものしか抽出出来なかったので質問させていただきました

  • セル内からの数字の抽出

    複数のセルがあり、そのセルそれぞれに、 「(文字列A)(数字1) (文字列B)(数字2)」 と入力してあります。(文字列A)と(文字列B)は、定型文字列なので、複数のセルがありますが、同じ文字列が入っています。 一方で、(数字1)(数字2)は、それぞれのセルによって、異なった数字が入っています。 ただし、セルによっては、(文字列A)(数字1)は、入力していないものもあります。 このようなセルが複数ある中から、(数字1)だけを抽出して、セル内に「(数字1)」だけの列を作りたいのですが、何かよい方法はないでしょうか?よろしくお願いします。

  • エクセル 文字列から数字だけを抽出

    エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。

  • 表から列と行を指定してその中から値を抽出する式

    なかなか言葉で説明しにくいのですが、エクセルの関数で、ある表の列と行を指定してその中から値を抽出する関数はあるでしょうか? 具体的に言うと、行が地域(北海道、東北、関東、、、)で列が箱数(1箱、2箱、3箱、、、)となっている表があってどの地域に何ケース届けると何円になるという表があります。 別シートに表を作って、例えば任意のセルに「北海道」、次の列に「2箱」などと入力規則で入力するようなところを作りました。そして、それぞれ「北海道」、「2箱」というのを見て、そのまた次の列に何円かを抽出する関数を入れたいと思っています。。。それが難しくて分かりません。有用な関数があったら教えてください。具体例などがあればURLなど教えていただけると助かります。 VLOOKUPなどがそれに近いかと思いますが、どうもうまくいきません。複合的に使えばうまくいくでしょうか? よろしくお願いいたします。

  • 表の中に任意の数字または文字があるかないか

    Excel使用です。 例えばA1:B10の表の中に、任意の数字または文字が“ある”か“ない”かを判別したいんですが、いい方法があれば教えてください。

  • 広範囲から数字を抽出する場合

    エクセルで注文表を作っています。 B1から右方向に日付が(5/1,5/2,5/3,5/4・・・) A2から下方向には製品名、B2から右と下方向は空白のセルです。 この空白のセルには、製品が出荷された数量を入力します。 (1製品に付き、出荷されるのは月に1回、数字が入るのは1行毎に1つのセルのみです) このカレンダー式のリストを基に、別のシートに出荷日と出荷数量のみを、それぞれ表示したいと思っています。 広い範囲の中で数字の入力されているセルと、その該当日を抽出したい場合、どのようにしたら良いのでしょうか。 関数でできれば一番ありがたいのですが・・ 宜しくお願いいたします。

  • 特定の文字や数字だけを抽出

    14H010 14S001 14005 14H001B 14H010B 14005 14S004 1)左から2つだけの数字だけを取り出す方法 2)もし左から二つの数字の隣の文字だけ(HやS)を取り出す方法(2文字の可能性もある) 3)真ん中の3つの数字を取り出す方法(010,001,005) 4)右の文字(B)だけを取り出す方法(2文字の可能性もある) それぞれの方法をIF関数とLEN, RIGHT, LEFT, MID関数の組み合わせを使って抽出できるようなのですが、何時間かけても抽出ができません、、、。 たくさんの質問になりますがお答えいただけると幸いです。