[[20051001200447]] 『重複データ』(秋埜夕日) ページの最後に飛ぶ

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

 

『重複データ』(秋埜夕日)

 はじめまして。いつも勉強させていただいています。
[[20040806114257]] 「重複データを除いてカウントする」に

 ={SUM(IF(LEN(B1:D12),1/COUNTIF(B1:D12,B1:D12)))}

 という関数がありますが、
 ・文字列の長さ
 ・1/COUNTIF
 ↑のつながりや意味合いが、どうしても分かりません。
 なぜこのシンプルな数式で答えが求められるのか、今後の勉強のためにも
 この関数の意味を教えていただけないでしょうか?
 よろしくお願いいたします。m(._.)m ペコッ
 Windows2000 Excel2002 です。


 B1セル1つだけに上記数式をあてはめると、
 =SUM(IF(LEN(B1),1/COUNTIF(B1:D12,B1))) となります。
 この時、B1セルが空白でなければ LEN(B1) は 0 ではないので、
 1/COUNTIF(B1:D12,B1)) で出た答えが返ります。B1セルの内容が
 B1:D12 の範囲に 3つあるとすれば、答えは 1/3 です。
 最初の式は、配列数式として B1:D12のすべてのセルについて1度に
 上の数式の答えを出し、それを合計(SUM)するようになっています。
 範囲の中に、3つあるものは すべて 1/3 と計算され、それが
 SUMで合計(1/3 + 1/3 + 1/3)されるので 1 となります。
 2つあるものは 1/2 が2つでやはり 1 となります。従って、
 1つのデ−タに付き 1 となるので、全体を合計すると、
 データの重複しない数が算出されるのです。
 うまく伝わらなかったらすみません。(一生懸命書きました)
(純丸)(o^-')b 


 とても丁寧な説明、どうもありがとうございます。
 お返事が遅くなってしまい、申し訳ありません。

 LEN・・・セルが空白かどうか
 1/COUNTIF(B1:B12,B1)・・・1を重複した個数で割る
 例えば、範囲の中に1個しかなければ1/1となり、
 5個あれば1/5となり、そしてその合計をSUMで出す、
 結果、何種類のデータがあるか、が分かるんですね。
 どうもありがとうございました。

 関数一つ一つがちゃんとした意味を持っているんですね。
 もやもやしていたものがスッキリしました。
 嬉しかったので、色々試してきましたら、おかしな答えが・・!
 あれ?と思い、よく見直したら、範囲の指定が間違えていました。
 間違えるとさらによく理解できますね。

 また何か分からないことがありましたら質問させていただきますので、
 よろしくお願いします。m(._.)m 
 (秋埜夕日) ますます学校のファンです♪


コメント返信:

[ 一覧(最新更新順) ]


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