• 締切済み

エクセルマクロ 列同一文字の個数をカウントして・・

sheet1 C1:見出し、C2以降にデーター(表示形式:文字列)が入っているのですが 処理データーは毎回違い、特定ではありません。C2以降の同じ文字をカウントして、 その数をメッセージボックスに表示させたいのですが・・・色々調べて試してみたのですが、 上手くいきません。 メッセージボックスの表示イメージ     1111 50件     2111 25件        3111 10件     C1 見出し C2 1111 C3 1111 C4 2111 C5 3111 C6 3111 |  | C* 1111  以上、ご教示よろしくお願いいたします。

みんなの回答

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

Sub test() Dim r As Long, mxr As Long, nc As Long, n As Long, retmes As String mxr = Range("C" & Rows.Count).End(xlUp).Row For r = 2 To mxr   nc = WorksheetFunction.CountIf(Range("C" & r & ":C" & mxr), Range("C" & r))   If nc = 1 Then     n = WorksheetFunction.CountIf(Range("C2" & ":C" & mxr), Range("C" & r))     retmes = retmes & Range("C" & r) & vbTab & n & "件" & vbCrLf   End If Next MsgBox retmes End Sub とか。

nikorasu_k
質問者

お礼

ありがとうございます。 色んな書き方があるのですね・・・ ホント、勉強になりました。

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

sub macro1()  dim d as object  dim h as range  dim x  dim res as string  on error goto errhandle  set d = createobject("Scripting.Dictionary")  for each h in range("C2:C" & range("C65536").end(xlup).row)  d(h.value) = d(h.value) + 1  next  for each x in d.keys  res = res & vblf & x & vbtab & d(x) & "件"  next  res = mid(res, 2, 9999)  msgbox res  exit sub errhandle:  d.add h.value, 1  resume next end sub みたいな。

nikorasu_k
質問者

お礼

ありがとうございます。 大変助かりました。 これで、今晩眠れそうです。 本当に貴重なお時間使っていただき 感謝いたします。

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

関連するQ&A

  • 文字列カウントと並び替え

    初めての質問です。PC初心者です。宜しくお願い致します。 エクセルの関数で、 A列の文字列をカウントして小さい順にB・C列に表示したいです。 A列 :B列 :C列 200 :100 :2件 100 :200 :1件 100 :500 :1件 500 : こんな感じです。 色々調べてB列に並べかえましたが、カウントできず。。。 カウントできたら、並べ替えできず。。。 知識不足で申し訳ありませんが、お力添え下さい。

  • エクセルである文字列をカウントしたい

    例えば、シート1のA列のセルごとに下記のいずれかの文字列が入っているとします。(文字列の1部ではなく、完全一致の文字列です。) おはよう こんにちは こんばんは そこで、シート2で上記の各文字列が記入されているセルがいくつあるか集計したいのですが、どうしたらよいでしょうか。 シート2は、A列に上記3つの文字列、B列にはそれぞれのカウント数を入れようと思っています。

  • 【エクセル】文字のカウントについて

    エクセルでシフト表を作りました。 1日~25日までのCさん、Yさんの出勤日数をX2のセルに表示させたいです。 ◆現状◆ F2セルには =DATE(B2,D2,1) G2セルには =WEEKDAY(F2,1) C4セルには =F2-(G2-1) を入力し、自動で日付と曜日が表示されるようになっています。 1日~25日までの「C」(またはY)の文字数をカウントしようとCOUNTIFS関数で X2セルに =COUNTIFS(C5:AD5,"C",C4:AD4,"<=25") と入力したのですが 日付の1,2,3は文字列ではなく、数式?なので うまく「C」をカウントすることができませんでした。。。。 ◆あわよくば◆ 前の月の26日から今月の25日までの「C」さんの出勤日数をX2に表示させたいですが、あまりにも複雑になりそうでしたら諦めます。 ちなみ前月のシフトは各月ごとに同じブック内のシートで分けています。 どなたかご教授お願い致します。

  • エクセルで文字の個数をカウントする

    下図のように、等間隔のセルから、文字列の数をカウントしたいと思います。 実は午前中にも同様の質問をしました。その時は、回答を見てできたと思ったのですが、できたのは1列目だけで、2列目以降はうまくいきませんでした。 どなたか、ご回答をよろしくおねがいします。

  • エクセルで文字列の個数を数える

    ある範囲のエクセルデータから決まった文字列の個数をカウントする関数の使い方が判れば教えてください。 例えば、A1からH200までのデータより、”リンゴ”という文字列が何個あるかカウントしたいのですが。 COUNTIF(A1:H200,"*リンゴ*")とすると”リンゴ”という文字列が含まれるセルの個数は出たのですが、”リンゴ”という文字列が複数含まれるセルもあるので、”リンゴ”という文字列の個数とは 一致しないようなのです。 どなたか、よろしくお願いします。

  • エクセルで日付データの比較/判定でカウント

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またc1~c4に c1:2006/2/24+時間  (例2006/2/24 07:18) c2:2006/2/23+時間 c3:2006/2/23+時間 c4:2006/2/22+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とC列のデータの日付けが同じものは1つc4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式はどのようにすればよいか。よろしくお願いします。

  • 縦に不規則に並ぶ表から特定文字列をカウントしたい。

    縦に不規則に並ぶ表から特定文字列をカウントしたい。 Sheet1の縦に日付ごとに並んだ表から、 Sheet2へ特定文字列のカウント結果を表に起こしたいです。 日付ごとグループごとに項目数が異なるので、 どのようにセルを選択し、カウントすればいいのかわからず、 困っております。。 質問内容を分かりやすく画像に纏めましたので、 お手数ですがどうか見て下さい!! どうかよろしくお願いいたします。><!

  • 文字列が入っているセル数をカウントしたいのですが

    Excell2000です。初心者です。よろしくお願いします。 シート1にざっと1万件ぐらいデータがあるのですが、 A列に取引先のID B列に取引先名 C列に日付 D列に評価(数値) E列にコメント欄、が設けてあります。 日ごと更新のためAB列のデータの重複はあります。 E列のコメントは20件に1件ぐらい書かれている程度で、 記入がない場合は空欄です。 やりたいことは、シート2に取引先IDごとにコメントが何件あるのか出したいのです。 例えば A列のIDが1の場合でコメントが入力されているのは何件あるか。 そしてできれば、その数を出した隣にリストでコメントが出るようになるとうれしいです。 コメント数が5なら、そのコメントがリストに5行出るようにしたいです。 「特定でない文字列が入っている場合」というのはやはりマクロをかかないとだめなのでしょうか。(やったことがないので) いや、マクロでもがんばりますのでどなたか教えていただけませんか?

  • 特定の文字列を含むセルの個数をカウントしたい

    こんにちは。 現在、シフト表作りを任されているのですが、特定の文字列(個人名)を含むセルの個数をカウントして、表内のコマ数をカウントしたいと考えています。 表の名前は、セルの名前登録をしてありますので、ここでは仮に"表"とします。 特定個人の名前は、"名前"とします。 この条件下で、上記を行うにはどのようにすればよいでしょうか? ご助言お願いします。

  • エクセルで連続するデータの個数だけカウントする

    エクセルは2013を使用しています。 シートには各セルに「○」 「×」 「□」 「空白」が入力されています。    A   B  C 1  ○   ○ 2  × ○   3  × ○ □ 4     ○ □ 5  ○ × □ 6  × □ ○ 7  ○ □   8       ○ 計  2 5 3 ※A列の計・・・×が連続している ※B列の計・・・○と□が連続している ※C列の計・・・□が連続している このように連続するデータの個数だけをカウントする方法を教えて下さい。 よろしくお願い致します。

このQ&Aのポイント
  • Windows.7を使用中の方にお知らせです。2021年10月28日にリリースされたScanSnapHomeの最新バージョン2.3.0にアップグレードした直後から、起動しないという報告が相次いでいます。
  • ScanSnapHomeの再インストールによって問題が解決する可能性がありますが、スキャンデータがアプリ内に入っている場合は注意が必要です。
  • ScanSnapHomeが起動しない場合は、まずは再インストールを試してみてください。ただし、スキャンデータが消えてしまう可能性があるため、事前にバックアップを取るか、データを外部ストレージに移動させることをおすすめします。
回答を見る

専門家に質問してみよう