• ベストアンサー

excelかaccessで、同じ種類のものを一つとして総数をカウントする方法

只今excel勉強中です。 会社のPCが持つofficeソフトで、ライセンスが重複しているものがかなりあるので、データを抽出してexcelに落とし、目で必要なライセンス数を確認しているのですが、何せ膨大な数があるので、時間がかかっています。 A列    B列 PC-a   ソフト1 PC-a   ソフト1' PC-b   ソフト2 PC-c   ソフト3 PC-c   ソフト3' PC-c   ソフト3'' 上記のような場合、 PC-cのソフト1と1'や、PC-Cのソフト3,3',3''は重複しているものとして、まとめて一つとカウントするので、ソフトのライセンスは3つ必要、ということになります。 このプロセスをどうにか簡略化する方法はないでしょうか? ちなみにPCの名前が重なるものだけを横の列に =IF(OR(A2=A3,A2=A1),1,"") で数字をつけ、オートフィルタをかけて目視で確認、という手順でやっています。 複雑なので、具体的なやり方でなくどのような方法があるかだけでも、教えて頂けたら嬉しいです。 【環境】 OS: Windows XP Excel2003 Access2003は必要な場合、入手可能。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

「データ」「ピボットテーブル・・・」を選択して 行見出しにA列とB列の項目、データにB列の項目をデータの個数で集計すればいいと思います。 B列のソフト名が微妙に違う場合は、グループ化してまとめれば集計できます。

wiswis
質問者

お礼

回答ありがとうございます。 ピボットテーブルを少しいじってみました。 これで出来そうな感じです。 ただグループ化が少し上手く出来ないので、そこはちょっと勉強して、出来たら又報告しますね。

wiswis
質問者

補足

グループ化の集計方法は出切るようになりました。 が、目的のライセンスのカウントは優先順位が関係してくるため、私が質問した"一纏め"でカウント、というのではどうやらだめなようです。(泣) でもこれはこれで使えそうな感じです。勉強になりました。 ありがとうございました!

その他の回答 (2)

回答No.2

重複データを削除することは以前答えたのですが、いつか覚えていませんので再掲します。VBAを使います。 このコードは1列目の重複データ削除で動くようにしてありますが、質問の場合は2列目で実行すればいいようですので、コードのなかのRetu=2にすればできます。このコードは、シートタブ右クリック、コードの表示ででてくるシートにコピペ。動かすときは、「ツール」「マクロ」「マクロ」「実行」です。 Sub GyouDelete() Dim myLastLow As Long Dim i, r As Long dim Retu as integer '比較列セット Retu=1 '画面のちらつきをなくす Application.ScreenUpdating = False 'シートの行数カウント r = ActiveSheet.Rows.Count '1列目の最下行の数字を見つける myLastLow = Cells(r, Retu).End(xlUp).Row '最下行から上へ重複データ削除 For i = myLastLow To 3 Step -1 If Cells(i, Retu).Value = Cells(i - 1, Retu).Value Then Cells(i, Retu).EntireRow.Delete End If Next i End Sub

wiswis
質問者

お礼

回答ありがとうございます。 下のお礼にも書いたのですが、質問の書き方が悪かったです…。 それぞれ PC-a Microsoft Office Professional Edition 2003 PC-a Microsoft Office Professional 2007 PC-b Microsoft Office XP Standard PC-c Microsoft Office Outlook 2000 PC-c Microsoft Office Access 2003 PC-c Microsoft Office Excel 2003 という感じになっていて、 PC-aの場合、office2003は2007のライセンスを持っていればいいので、纏めて一つとして数えたい、ということです。(つまり上記の場合ライセンスは4つ必要) お答え頂いたコードは、他でとても役に立ちました。 ありがとうございます。

wiswis
質問者

補足

訂正:ライセンスは4つ必要→5つ必要でした。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

B列を選択して、編集>置換 検索する文字列:' 置換後の文字列:(何も入力しない) で、すべて置換をクリック。 そうすれば"'"は外れるでしょう。 あとは、データ>フィルタ>フィルタオプションで重複を省くとか。

wiswis
質問者

お礼

すいません、説明が足りなかったようです。 ソフト1,ソフト1'というのはあくまで例なので、実際は Microsoft Office Professional 2007 Microsoft Office Professional Edition 2003 等といったソフトで、 office 2007のライセンスがあれば2003のライセンスは要らないので、二つ纏めて1つとして数えたい、ということです。

wiswis
質問者

補足

回答ありがとうございます。

関連するQ&A

  • エクセルのカウント方法

    エクセルのカウント方法で悩んでいます。どなたかお願いします。   A列  B列  1  abc  ○ 2      ○ 3  abc  ○ 4  def  ○ 5  ghi 6  jkl  ○ A列、B列ともに文字列が入力されている個数を求めたい。 ただし、A列で重複した場合はカウントしない。 上記の場合は 3 となる。

  • 同一数字の重複を”1”としてカウントする方法。

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  エクセルのA列~E列に0~9迄の任意の数字が1つだけ入っています。  これをF列で「同一数字はいくつ重複しても”1”として数字の数をカウントする方法」  が知りたいです。具体的に下記のエクセルシートのとおりです。 ●エクセルシート   A B C D E F   3 3 1 7  8 4 ←"3"は同一数字で2個重複するが"1個"とみなして、3178の4となる。   7 7 7 7  7 1 ←"7"は同一数字で5個重複するが "1個"とみなして、7の1となる。   4 4 4 4  2 2 ←"4"は同一数字で4個重複するが "1個"とみなして、42の2となる。   6 6 6 3  1 3 ←"6"は同一数字で3個重複するが "1個"とみなして、631の2となる。   1 1 8 8  8 2 ←"1"は同一数字で2個重複、"8"は同一数字で3個重複するがそれぞれ               "1個"とみなして、18の2となる。   3 3 2 2  5 3 ←"3"と"2"は同一数字で2個ずつ重複するがそれぞれ"1個”とみなして                325の3となる。   3 4 5 6  7 5 ← 同一数字の重複は存在しないため、34567の5となる。 ●注意事項   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • エクセル 重複データのカウント

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、A列に7ケタの数字13万件         B列に同じく7ケタの数字100~2000件         C列にB列にデータがある行まで=COUNTIF($A$2:$A$130000,B2) 上記の状況で、C列の値は1か0しか出ない状態なので、 セルD1に=COUNTIF(B2:B2000,0)と入れてB列にあるけどA列にないデータの 数(重複していないデータ)をカウントしています。 しかしながら、ベースとなっているA列のデータが13万件と多いので、 再計算などに結構時間がかかっているので、どうにかならないかと思いまして 質問させていただきました。 ちなみに、A列のデータは少しずつ増えていきます。 1度B列にあってA列にないデータは、次にB列に違うデータを入れてカウントする際に 新規データとしてA列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

  • Excelのカウント

    セルA列に入力されている数値を参照し、セルB列のように出力したいです。 セルA2に0と入力されていれば、BセルB2、B3、B4、B5に0になるようコピーしたいのですが、数が膨大なためどなたかよい対処法をどなたか教えて頂けないでしょうか。 ちなみに、A列に入力されている数値は0と1のみになり、A列の数値はランダムに入力されています。

  • エクセル関数の質問です。

    エクセルの関数について質問させてください。 A列   B列 コーラ  A ポカリ  A 珈琲   A 石鹸   B 洗剤   B ポカリ  A 食パン  C 菓子パン C 洗剤   B というデータがエクセル上にあるとき、 Aの数  4 Bの数  3 Cの数  2 になりますが、この数を数える関数はSUMIFなどを使ってかぞえれるかとおもいます。実はエクセルで調べたいことは、この場合だとAのポカリとBの洗剤が二つあることを排除したいのです。 具体的には Aの数 3 (ポカリが二つあるので) Bの数 2 (洗剤は二つあるので) Cの数 2 という結果を関数でだしたいのです。(本当のデータは非常に多いので手作業で数えることはできません。) A列の数(重複しないように)を数えたり、B列の数(重複しないように)を数える方法はこのサイトにも何件かあったようなのですが、ケースが少し違うようでどうしても解決しませんでした。 みなさんのお知恵を貸して下さい。よろしくお願いします。

  • エクセルの文字数カウントに関して

    エクセル初心者なのでお恥ずかしい質問かもしれませんが、ご協力よろしくお願いいたします。 A列   B列   C列 123   124   1 122   122   0 124   12    1 上記のようにA列・B列を比較して、違う文字の文字数をC列に 出したいのですが、どうもうまくいきません。 よろしくお願いいたします。

  • エクセルで対象のものを重複しているのもを省いて1つだけ取り出す方法

    エクセルの表で次のようなことをしたいのですが どのようにしたらいいのか教えて下さい。 Aの列に大きな項目、Bの列に小さな項目があるとします。 大きな項目の1種類を選んでそれに該当するB列のものを抜き出したいのですが 重複しているものは1つだけを取り出したいのです。 例えば   A      B  野菜     にんじん くだもの    バナナ くだもの    りんご  野菜     じゃがいも くだもの    バナナ と、いう表があったとして Aで「くだもの」となっている行のB列に書かれているものをC列に抜き出すとします。 その際、重複しているものは、いくつも抜き出さず1つだけ抜き出したいんです。 つまり   C  バナナ  りんご とする方法です。 重複がない時は オートフィルタでA列でくだものを選びBをコピーし貼り付けを行っていたのですが 重複がある時はそれだけではとても面倒ですし しょっちゅうすることなので、重複がなかったとしてももっと作業を簡素化したいと思っているのですが 簡単に行う方法はありますか? 知っている方がいらっしゃいましたらぜひ教えて下さい。

  • エクセル 重複調べる

    エクセルの重複を調べる方法について何ですが、 a1,b1,c1に文字列が入っているのですが、 a1~c1の中に重複しているものが一つあったら(a1とc1が同じ、もしくはa1とb1が同じ、b1とc1が同じ)d1に1と表示して、重複無しだったら0と表示する関数はありますか?

  • SUMPRODUCTでのブランクカウント方法

    検索しきれず、重複した質問でしたらご容赦ください。 Excelでの関数SUMPRODUCTに関する質問です。 A列        B列          C列 みかん      2011/11/30     2011/11/30 みかん      2011/11/30 みかん      2012/11/30     2011/11/30 みかん      2012/11/30     2012/11/30 上記のような表(10行あるとします)で、A列がみかん、且つ、B列が2011/11/30、且つ、C列が2011/11/30もしくはブランクのものをカウントしたいです。この例だと結果が2となるのを望みます。 =SUMPRODUCT((A1:A10="みかん")*(B1:B10="2011/11/30")*(C1:C10="2011/11/30"))+SUMPRODUCT((A1:A10="みかん")*(B1:B10="2011/11/30")*(ISBLANK(C1:C10))) 色々試したのですが、この式考えるまでで断念してしまいました。何卒ご教示下さい。

  • Excel>複数の列を比較して、重複セルの個数を得る方法

    Excelにて A列:aabb,bbcc,aacc B列:aacc,bbdd,ccdd C列:aacc,eehh,ccdd A,B列間で、重複セル「aacc」の1コ、 B,C列間で、重複セル「aacc」「ccdd」の2コ、 A,C列間で、重複セル「aacc」の1コ、 A,B,C列間で、重複セル「aacc」の1コ というように、複数の列を比較して、重複セルの個数を得る方法を教えてくださ い。複数の列では難解なら、2つの列を比較した場合でも結構です。 なお、重複セルの値、例えば「aacc」など得る必要はありません。個数のみで結 構です。宜しくお願い致します。

専門家に質問してみよう