アプリ版:「スタンプのみでお礼する」機能のリリースについて

下の表のようなエクセルのデータについてお聞きします。

番号 区分  
1001 1
1001 2     
1002 1
1003 2
1004 1
1004 2
1004 2

(1)同じ「番号」を一つのグループと見る。
(上の表の場合、4グループとみる。)
(2)同じグループに「区分」2があるかどうかを調べ、
2があるグループの数を調べる。
(上の表の場合、3つと数える。)
(3)番号の数はたくさんある。「区分」は5個程度です。グループの数を数える場合、「区分」が条件となり、(2のみ・1または2)と条件が変わる場合がある。

このようなことできますか?どなたか教えてください。

A 回答 (5件)

複数の条件に合致するデータの個数を探す関数としてDCOUNTAを使用してください。



以下のURLが最も使い方としてわかりやすいようです。

参考URL:http://dreamy.boy.jp/kan13.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。DCOUNTA関数で「同一の番号を持つ複数のデータ行を1つと見て、条件に当てはまる数を数える」ことをどのようにするのか分からなかったので、ピボットテーブルを使いました。

お礼日時:2005/11/13 10:10

グループの数を調べるに直接は応えていませんが、簡単にやるとしたら、ピボットテーブルを使うのも手です。



Count    
of 番号 区分 Grand Total
番号 1 2
1001 1 1 2
1002 1 - 1
1003 - 1 1
1004 1 2 3
Grand Total347

グループは左端でわかります。区分1に属する数、
区分2に属する数が簡単にわかります。
参考にして下さい。
    • good
    • 0
この回答へのお礼

ありがとうございます。ピボットテーブルを使いうまく処理ができました。

お礼日時:2005/11/13 10:03

簡単そうに見えて、重複行の処理が案外難しいですよね。


私の考えた方法は、2つ。

1つ目:
 No2さんの方法に補足して、出来上がったピボットテーブルをさらに縦にカウントする。意味わかるかなあ?

2つ目:
 補助列に条件判定式を入れておきます。
 例えば、 =IF(B2=2,1,0) とか =IF(OR(B2=1,B2=2),1,0)
 補助列末尾に =SUBTOTAL(9,C2:C100) (100は適当に換える)
 カーソルをメニューからデータ-フィルタ-フィルタオプションの設定を選択
 抽出先は選択範囲内、リスト範囲はA,B列、重複するレコードは無視するにチェックを入れて、OK
 これで、SUBTOTAL式を入れたところに求める数値が出ているはずです。
 ちなみに、上記フィルタのところで、検索範囲の設定を使いこなすことができるのなら、補助列は使わなくてもやる方法はあります。これは考えてみてください。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。ピボットテーブルは便利な機能ですね。

お礼日時:2005/11/13 10:01

例データ


A1:B15
番号区分
A列  B列  C列  D列  E列
1001110011
10012110031
1002110051
10032210041
1004110010
10052310030
10042410010
10012510061
10032610050
10071
100127
10073
100628
100529
5
C列C2に
=IF(B2=2,MAX($C$1:C1)+1,"") といれC15まで式複写
結果上記C列の通り。
D列D2に
=INDEX($A$2:$B$15,MATCH(ROW()-1,$C$2:$C$15,0),1)
と入れてD10まで式複写。
結果上記D列の通り。
E列E2に
=IF(COUNTIF($D$2:D2,D2)=1,1,0) といれE10まで式を複写
結果上記E列の通り
E16に=SUM(E2:E15)と入れる。
結果は5.
imogasi方式の応用です。
    • good
    • 0
この回答へのお礼

ありがとうございます。今回は結果を出す時間に制限がありましたので、ピボットテーブルを使いました。後から試してみてなるほどと感心しました。

お礼日時:2005/11/13 09:58

「条件が変わる場合がある」とすると、私もピボットテーブルを使用することをオススメしますが、ちょっと補足しておきますね。



エクセルのバージョンが不明ですが、元データが入力された範囲にセルポインタを置いて、[データ]-[ピボットテーブルとピボットグラフ レポート]コマンドを実行し、即座に[完了]ボタンをクリックすると、即座に新シートに空のピボットテーブルが作成されるはずです。

で、元の表にあった「番号」と「区分」のフィールド名が表示されていると思うので、そこから「番号」を表の左の「行のフィールド」までドラッグ&ドロップし、「区分」を表の上の「列のフィールド」までドラッグします。すると、全「番号」と全「区分」のクロス集計表ができあがります(表の右下の「データアイテム」部分はなくても大丈夫です)。

そして、表の上のほうに[区分|▼]のようなボタンが表示されていると思うので、この[▼]ボタンをクリックして、条件に指定しないチェックボックスをオフにしましょう。たとえば「区分」が「2」の条件にしたいならば、「2」のチェックボックスがオンになった状態にします。そうすると、区分が「2」だけのグループが一度だけ表示されるようになります。

この状態のグループ数を数えればいいのですが、グループ数が多い場合は、A2セルに「=COUNT(A3:A65536)」とでも入力すれば、グループ数を数えることができます。これは、「番号」が数値になっていることを想定しているので、数値のみを数えるCOUNTで件数を数えています。
もし、「番号」が文字列の場合は、「COUNTA」関数を利用することになりますが、その場合はピボットテーブルに含まれる項目名も数えられることになるので、参照範囲内に含まれる項目名を差し引くように「=COUNTA(A3:A65536)-2」のような数式にします。

条件を変更したいときは、[区分|▼]ボタンから条件を変更すればいいので、柔軟に運用できるのではないでしょうか。「1または2」ならば、両方ともチェックボックスをオンにすれば大丈夫です。
お試しください。
    • good
    • 0
この回答へのお礼

ありがとうございます。データの行数が1万行を超えていたので処理に困っていました。短時間で結果が分かり助かりました。
ピボットテーブルは難しいものと決めつけ避けていましたが、もう少し勉強し使いこなしたいと思います。

お礼日時:2005/11/13 09:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!