下の表のようなエクセルのデータについてお聞きします。
番号 区分
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)と条件が変わる場合がある。
このようなことできますか?どなたか教えてください。
No.1
- 回答日時:
複数の条件に合致するデータの個数を探す関数としてDCOUNTAを使用してください。
以下のURLが最も使い方としてわかりやすいようです。
参考URL:http://dreamy.boy.jp/kan13.htm
ありがとうございます。DCOUNTA関数で「同一の番号を持つ複数のデータ行を1つと見て、条件に当てはまる数を数える」ことをどのようにするのか分からなかったので、ピボットテーブルを使いました。
No.3
- 回答日時:
簡単そうに見えて、重複行の処理が案外難しいですよね。
私の考えた方法は、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式を入れたところに求める数値が出ているはずです。
ちなみに、上記フィルタのところで、検索範囲の設定を使いこなすことができるのなら、補助列は使わなくてもやる方法はあります。これは考えてみてください。
No.4
- 回答日時:
例データ
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方式の応用です。
ありがとうございます。今回は結果を出す時間に制限がありましたので、ピボットテーブルを使いました。後から試してみてなるほどと感心しました。
No.5ベストアンサー
- 回答日時:
「条件が変わる場合がある」とすると、私もピボットテーブルを使用することをオススメしますが、ちょっと補足しておきますね。
エクセルのバージョンが不明ですが、元データが入力された範囲にセルポインタを置いて、[データ]-[ピボットテーブルとピボットグラフ レポート]コマンドを実行し、即座に[完了]ボタンをクリックすると、即座に新シートに空のピボットテーブルが作成されるはずです。
で、元の表にあった「番号」と「区分」のフィールド名が表示されていると思うので、そこから「番号」を表の左の「行のフィールド」までドラッグ&ドロップし、「区分」を表の上の「列のフィールド」までドラッグします。すると、全「番号」と全「区分」のクロス集計表ができあがります(表の右下の「データアイテム」部分はなくても大丈夫です)。
そして、表の上のほうに[区分|▼]のようなボタンが表示されていると思うので、この[▼]ボタンをクリックして、条件に指定しないチェックボックスをオフにしましょう。たとえば「区分」が「2」の条件にしたいならば、「2」のチェックボックスがオンになった状態にします。そうすると、区分が「2」だけのグループが一度だけ表示されるようになります。
この状態のグループ数を数えればいいのですが、グループ数が多い場合は、A2セルに「=COUNT(A3:A65536)」とでも入力すれば、グループ数を数えることができます。これは、「番号」が数値になっていることを想定しているので、数値のみを数えるCOUNTで件数を数えています。
もし、「番号」が文字列の場合は、「COUNTA」関数を利用することになりますが、その場合はピボットテーブルに含まれる項目名も数えられることになるので、参照範囲内に含まれる項目名を差し引くように「=COUNTA(A3:A65536)-2」のような数式にします。
条件を変更したいときは、[区分|▼]ボタンから条件を変更すればいいので、柔軟に運用できるのではないでしょうか。「1または2」ならば、両方ともチェックボックスをオンにすれば大丈夫です。
お試しください。
ありがとうございます。データの行数が1万行を超えていたので処理に困っていました。短時間で結果が分かり助かりました。
ピボットテーブルは難しいものと決めつけ避けていましたが、もう少し勉強し使いこなしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 指定した条件でTRANSPOSE関数を使う 5 2023/08/18 19:45
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) 指定した数字まで累計する方法や文字例の抽出について教えてください 4 2022/10/05 21:19
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Java Java 南京錠 2 2023/02/04 11:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのデーターが2か月前の...
-
エクセルVBA、別ブックへ転記す...
-
【マクロ】顧客番号にて一致さ...
-
エクセル共有したが、アクセス...
-
エクセル②
-
(マクロ)データをAブックからB...
-
Excelでセルの値が同じか...
-
エクセルを使っていて2024/5/15...
-
指定文字の間に
-
Microsoft 365の Excel を使用...
-
エクセルの計算
-
エクセルでの作業計算方法について
-
Excelで全角を半角にしたいので...
-
エクセル関数に詳しい方教えて...
-
Googleスプレッドシートでファ...
-
エクセル 文字を増やしたい。
-
はがきについて。
-
エクセルの暗号化なしのバーの...
-
【マクロ】必要な項目(列)の...
-
Excel
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報