• ベストアンサー

Excelでデータの各値とその個数を生成するには

HohoPapaの回答

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.6

VBAを使ってもいいのであれば、 後記のコードはいかがでしょうか? A列の1行目から開始して数百行のレコードがあり、 その集計結果をB,C列に書き出すコードです。 シート名:Sheet1 最大5万行を想定しています。 Option Explicit Sub RecCounter()    Dim SQL As String  Dim cn As Object  Dim rs As Object  'SQL全文を組み立て、実行  SQL = "SELECT F1,count(F1) as RecCnt" & vbCrLf  SQL = SQL & "FROM [" & "Sheet1" & "$A1:A50000]" & vbCrLf  SQL = SQL & "GROUP BY F1" & vbCrLf  SQL = SQL & "ORDER BY F1" & vbCrLf    Set cn = CreateObject("ADODB.Connection")  Set rs = CreateObject("ADODB.Recordset")  cn.Provider = "Microsoft.ACE.OLEDB.12.0"  cn.Properties("Extended Properties") = "Excel 12.0;HDR=No;IMEX=1"  cn.Open ThisWorkbook.Path & "\" & ThisWorkbook.Name  rs.Open SQL, cn    '結果セットを出力  Range("B1").CopyFromRecordset rs    '後処理  rs.Close  Set rs = Nothing  cn.Close  Set cn = Nothing End Sub

yam2012
質問者

お礼

教えていただきましたVBAコードを実行して正しく出力できました。 SQL式の部分を書き換えることによりいろいろ使えそうです。 ありがうございました。

関連するQ&A

  • エクセル 関数 各値ごとに連番を振りたい

    エクセル2010を使っています。 各値ごとに連番を振りたいです。 具体的に、添付画像で説明します。 A列には、元となる値がすでに入っています。 B列には、A列の各値ごとに、連番を振りたいです。 B列に入れる関数を教えてください。 よろしくお願いいたします。

  • エクセルで、桁数の異なるデータ(整数)を抜きたしたいのですが?

    初心者です! エクセルで、例えばA列にある桁数の異なるデータ(整数)を抜きたしたいのですが、アドバイスをお願いします。 桁数は、9桁~11桁の3種類のデータがあり、例えば9桁のデータを抜き出すには、どのようにすればよいのでしょうか? 【例】 A列↓ 123456789 2345678910 45874521223 235461789 4567896541 89756413578 以上、宜しくお願いします。

  • エクセルで個数の割合を求める、そしてそれをグラフ化する。

    エクセルで個数の割合を求める、そしてそれをグラフ化する。 すいませんが質問です。 エクセルで例えば、「長さ」というデータが順に、「48,48,48,48,52,52,52,56,56」という風にある場合、それぞれ48,52,56の割合(%表示)はどうすればできるのでしょうか? また、それらの割合を円グラフで表示(例えば、長さであれば「48,52,56」の各値が何%あるのか)させるにはどうすればいいのでしょうか? どうかよろしくお願いします。

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

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

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • 「エクセル」でデータの個数を数えたいのですが。

    「エクセル2002」を使用しています。 値の個数を数える方法を教えて下さい。 例えば、A1~A3に「い」、 A4に「あ」、A5~A8に「う」‥ というように入力されていたとします。 それで、A列に「あ」が何個、「い」が何個 入力されているか、といったことを 調べたいのですが‥。 ピボットテーブルはあまり使ったことが ないのですが、関数などでも出来ますか?

  • エクセル 個数が多い順に並び替え

    添付のエクセルのデータで。 B列に、a,b,c,d という文字が入っています。 これを並び替えして、 b b b b b b a a a c c d このようにして、しかも、上から多い順に並び替えるには どうすればいいでしょうか? 目的は、a,b,c,d それそれの中で、多い順番と、どのくらい個数があるかを知ることです。 よろしくお願いします。

  • どんどん増えるデータの重複しないデータの個数

       A列    B列 1 2    3      6 3  4    a     a-1 5    a      a-2 6    b      b-1 7    b      b-2 8    b      b-3 9    c      c-1 たとえば上記のような表を作りたいと思っています。、 10行目以降もデータは増えていきます。 作業列を作らずにA2セルにA4以降のA列の重複しないデータの個数を 表示させる方法を教えてください。

  • Excel VBA 固定長のテキストの作成方法

    Excel2003のデータを固定長のテキストに書き出す方法について 質問させてください。 ■仕様: A列・・・文字列データ(1バイト文字 最大4桁、それ未満のデータあり) B列・・・数字データ(1バイト文字 最大6桁、それ未満のデータあり) A列の値が最大桁数に満たない場合、右側に空白を挿入し4桁とする B列の値が最大桁数に満たない場合、左側にゼロを挿入し6桁とする A・B列合わせて、1件10バイトで改行するテキストデータを作成したい と考えています。 ■補足: B列の下2桁は小数点以下であり、Excelの書式設定で"ユーザー定義" の"種類"に"0000.00"と設定されている。テキスト生成時には、この小数 点を消したい(123.45 → 012345) ■その他仕様 ・Excelのデータ件数は毎回変化 ・上記の内容をCドライブ中の特定のフォルダに書き込み ・テキストデータのファイル名は固定 3冊ほど本を見てみたのですが、固定長出力の記述が無く、また ネット上のお手本を元に作成したものは、A・B間に無用のブラ ンクが挿入されたり、桁数がバラつき、10バイト固定長になら ずに困っております。 ■追記 上記、”補足”の箇所は、計算用の列を挿入して、そこで100倍した 値を使ってはどうかと思うのですが、より洗練された方法があれば知 りたいと思いました。

  • Excel 2003 データの個数の数え方

    エクセルでデータの個数を数えたいのですが COUNTAなどの数式じゃ当てはまらないようなので 別に何かいい方法はないでしょうか? A列にIDが入ります このIDは、同じ人でも複数のIDを持っています。 B列には、名前が入りますが 同じ名前が複数回出てきます。 このような表で 例えば「本田 圭祐」に対し いくつIDが割り振られているかを 知りたいときはどうすればいいのでしょう? 詳しい方、よろしくお願いします。