- ベストアンサー
Excel配列計算についての疑問と解決方法
- Excelの配列計算について疑問があります。求めたい人数を計算する際に、なぜ「<>0」をつけると正しい結果が得られるのか疑問です。
- 配列計算で求めたい人数を計算する際に、「<>0(0以外の条件)」をつけることで、重複カウントを回避することができます。
- 「<>0」をつけることで、男性かつ東京在住の人を一度だけカウントすることができます。これにより、正しい結果が得られます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
>求めたい人数は「男、または東京に住んでいる人」なのに、「男かつ東京在住」の人を、 の部分が理解できていないのかなぁと感じました =(B2="男")+(C2="東京") で「または」の条件が出来上がります。 ただし、そのまま計算したのでは結果が2となります。 結果としては1が欲しいのです。 よって =((B2="男")+(C2="東京"))<>0 としTRUEを返すことにより、結果の1を導き出します。 >その2を避けるというのであれば、 ><>2(2以外) では0も含みますので、「男かつ東京」でない人の数になります ◆“達人”芳坂和行氏に学ぶ、エクセル(Excel)「配列数式」講座 http://pc.nikkeibp.co.jp/pc21/special/hr/ を先に理解したほうがいいかも。 ちなみに、計算速度は作業列を使ったほうが速いです。
お礼
再度ご回答いただき本当にありがとうございます(>_<) リンク先とCoalTarさんの回答を読ませていただき、少し理解できました。「男または東京在住」という結果は、論理演算の「1」に相当するんですね。 OR条件(論理値の和) TRUE TRUE 2 TRUE FALSE 1 FALSE TRUE 1 FALSE FALSE 0 という条件に当てはめると、上から「男かつ東京在住」「男または東京在住」「男または東京在住」「男でも東京在住でもない」と解釈できました。 しかし、「<>0(0以外)」であるならば、 TRUE TRUE 2 TRUE FALSE 1 FALSE TRUE 1 の3つが残ることになり、除かれるべき「男かつ東京在住」の値「2」が、残ってしまうと思うのですが・・・ CoalTarさんが最初に回答したくださったように、1+1=1 (論理演算)であるならば、「男かつ東京在住(TRUE+TRUE)」も、1として扱えるような気がします・・・もしかすると、「<>0」という記号を付ければ、何でも0と1の論理演算のデータとして、扱えることができるものなのでしょうか? 本当に理解力が乏しくてすいません。 お暇な時で構いませんので、ご回答いただければ幸いです(>_<)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
簡単に言うと =(B2="男")+(C2="東京") の計算結果が2になってしまうから です 1+1=1 (論理演算)で会って欲しいので =((B2="男")+(C2="東京"))<>0 が True となり =(((B2="男")+(C2="東京"))<>0)*1 が 1 となるのです もう少し先を読めば解説がありますね
お礼
返信遅くなってすいません(>_<) もう1度じっくり読んでみると、「0以外=FALSE+FALSE以外」という記述を見つけました。しかし「TRUE+TRUEで2を返してしまう」という記述もあり、その2を避けるというのであれば、 <>2(2以外) とするべきではないでしょうか?
お礼
何度もご回答いただきすいません(>_<) なんとなくわかりました。 「<>」が比較演算子↓ http://www.kentei.ne.jp/quali/column/knowhow/030815/030815.html と呼ばれるものだということ、そしてこの「<>(等しくない)」という比較演算子を用いることで、複数のデータを比較してTRUEとFALSEに収斂させることができるということ、さらにこれらに算術演算子を加える =TRUE*1 → 1 =TRUE+1 → 2 =FALSE*1 → 0 =FALSE+1 → 1 と、数値を導き出せるということ等、CoalTarさんのおかげで大分理解できました。 本当にありがとうございます<m(__)m>