- ベストアンサー
一定の範囲で特定の属性を重複と見て1個と数えさせる方法は?
お手数ですが、次の点をご教示ください。 MS-Excelに付属する関数をどうにか利用し、 特定のセルの範囲(ここではA1~An(n=2以上の任意の整数)とします)で、互いに排他的な複数の属性(例えば a,b,c...)をそれぞれ1個または複数個、セルごとに割り当てた場合、A1~Anの範囲には特定の属性(例えばa)が複数のセルに存在しうるわけですが、特定の属性が複数個存在するときには自動的にこれを重複していると認識して1個とみなすという方式で、A1~Anの範囲に存在する属性の個数(<n)を数えさせることができるしょうか? もし可能ならば、その方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 いろいろ方法はあると思いますが、とりあえず2つ。 1. 作業列を使用します。 仮にデータがA1~A20として、作業列をB列とすると、B1に、 =COUNTIF($A$1:A1,A1) と入力して、下の行(B20まで)へコピーします。 そうしたら、個数を表示するセルに、 =COUNTIF(B1:B20,1) と入力すると、重複なしの個数が表示されます。 2. オートフィルタを使用する方法です。 オートフィルタを使用するので、データの先頭に項目行を挿入します。 つまり1行目に行を挿入して、A1に項目名(例えば「属性」)を入力します。 これでデータはA2~A21になります。 個数を表示するセル(オートフィルタを使用するので、1行目か22行目以降にします。)に、 =SUBTOTAL(3,$A$2:$A$21) と入力しておきます。 現時点では20(データ総数)になっています。 項目行を含んだA1~A21を選択します。 メニューの[データ]→[フィルタオプションの設定]でフィルタオプションの設定ダイアログを表示させます。 (途中で別のメッセージダイアログが表示されたら、[OK]します。) [抽出先]は[選択範囲内]のままにします。 [重複したレコードは無視する]にチェックを入れて[OK]します。 すると、重複なしでフィルタリングされ、数式を入れたセルには、フィルタリングされた後のデータ数(つまり重複なし)が表示されます。
お礼
すばらしい(!)お答えを早速いただき大変ありがとうございました。いただいた2つのお答えのうち、作業としては1.の方が簡単そうですね。