[[20170130123836]] 『複数フィルタをかけ、一つの列のデータの重複を除』(betty) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数フィルタをかけ、一つの列のデータの重複を除外し個数を数える』(betty)

以下のようなリストについて質問します。

班 担当 作業列         顧客名 メーカー 種別
1班 山田 =COUNTIF($D$2:D2,D2) A産業 ○ 食品
2班 斉藤 =COUNTIF($D$2:D3,D3) Bフーズ ☓ 食品
3班 伊藤 =COUNTIF($D$2:D4,D4) C商社 ☓ 衣料
3班 伊藤 =COUNTIF($D$2:D5,D5) Bフーズ 〇 装飾品
1班 大久保 =COUNTIF($D$2:D6,D6) C商社 〇 衣料

                    =SUBTOTAL(3,D2:D6)

顧客名のデータを重複しているものを1つとしてカウントしたいです。他の列フィルタ(たとえば担当者等)をかけてもカウントしたくて、作業列を作り結果「1」をフィルタで選択しカウントできるようにしてみました。subtotal(3,D2:D6)のセルにほしい結果を出すようにしたいです。今のままではダメだとわかっています。どのデータをフィルタにかけても(1こでも複数でも)かならず顧客名の重複したものを削除した件数が結果として出るようにする方法が全く分かりません。
仕事でどうしても集計しなくてはいけないのですが、ここ数日悩み続けています。
どうかご教授願います。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 意味はわかりませんが、ネットに、こんなのが出ていました。

 =COUNT(INDEX(1/(MATCH(D2:D100,D2:D100,0)=(ROW(A2:A100)-1)),))

(β) 2017/01/30(月) 13:23


ありがとうございます。意味は分かりませんが、調べて試してみます。またお聞きすることが出てくるかもしれませんが、そのときはよろしくお願いします。
(betty) 2017/01/30(月) 16:12

 βさんの式はオートフィルタには対応していない。
 (オートフィルタをかけても全データを対象としてしまう)

[[20170119151755]] 『オートフィルタ 文字列 カウント』(yuu)

 を参考にしてみてくれ。
(ねむねむ) 2017/01/30(月) 16:18

 作業列を使ってもいいのなら、
 G列を作業列、顧客名はD列だとして、

 G2 =IF(SUBTOTAL(3,D2),D2,"") 下コピー

 カウントは
 =SUMPRODUCT((G2:G100<>"")/COUNTIF(G2:G100,G2:G100&""))

 とか?

 検証はお任せします。
(笑) 2017/01/30(月) 16:23

 >>βさんの式はオートフィルタには対応していない。

 えっ?
 アップ前に、別列をオートフィルターで絞り込んだうえで確認してアップしているんですが?

 念のため、もう一度、いろんな列の絞り込みをかえてフィルタリングしても、重複を削除した件数が表示されますけど?

(β) 2017/01/30(月) 16:30


 あぁ!

 フィルタリングされて表示されているもののなかだけで、一意の値を求めたいということでしたか。

 それでは、私の式は無視してください。

(β) 2017/01/30(月) 16:31


 作業列を使ってもいいのなら、その2

 G列を作業列、顧客名はD列だとして、

 G2 =IF(SUBTOTAL(3,D2)=0,"",IF(COUNTIF($G$1:G1,D2)=0,D2,""))  下コピー

 カウントは
 =COUNTIF(G2:G100,"?*")

 参考まで。
(笑) 2017/01/30(月) 17:27

皆さんありがとうございました!
検証してみましたが、(笑)さんのその2を試したところ、どのフィルタをかけても作業列Gの値が移動しました。
驚きました。式を眺めてもその理由が全く分かりません(これから考えようと思います)が
必要なフィルタをかけたあと、作業列Gのフィルタで「空白セル」を除けば求めたい結果になるのでしょうか。

 カウントは
 =COUNTIF(G2:G100,"?*") とあるのですが、これがうまくいかないように思います。
データは1万個(行)ほどあるのにフィルターをかけていない状態で「24」と小さい数字の結果が表示されてしまいます。
カウントの結果はうまくいけば最初(フィルターをかけていない状態で)は、
データの行の数と同じになるはずですか?正解が分からずすみません。

(1)カウントの計算の結果の正解と、(2)「空白セル」を除いた結果が求めたい数値として合っているか、教えていただけますでしょうか。よろしくお願いします。
(betty) 2017/02/02(木) 10:35


 状況がよくわからないんですけど、

 >カウントの結果はうまくいけば最初(フィルターをかけていない状態で)は、
 >データの行の数と同じになるはずですか?正解が分からずすみません。

 フィルタをかけていなくても、重複を除いた件数になります。

 フィルタをかけた状態で、その COUNTIF の式では求めたい結果にならないということですか?

 とりあえず確認だけ。
(笑) 2017/02/02(木) 15:12

もう一度やってみました。最初は式のコピーがうまくできていなかったようで、今回うまくいきました!

フィルタかけないときは重複を除いたデータの数、フィルタをかけたときは、
いくつかけても結果が重複を除いたデータの数になっていました。

大変助かりました。ありがとうございました。これからもエクセル勉強していきます。
(betty) 2017/02/02(木) 17:17


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.