- ベストアンサー
IF関数にて
ある検定問題集の問題なんですが、県別人口データという表があって、その中から男の人口が1500000以上で、女の人口が2000000以上の県の数を関数を用いて求めなさい。ただし、countif関数、データベース関数を利用せず、配列数式を用いて求めなさい。という問題があります。 で、{=sum(if(男の人口>=1500000,if(女の人口>=2000000,1,0)))}というのが答えなんですが、 {=sum(if(and(男の人口>=1500000,女の人口>=2000000),1,0)))}とした場合、エラーを出します。 男の人口が●人以上、女の人口が●人以上という二つの条件をともに満たす場合、and関数で出せたと思ったのですが、なぜandを使うとエラーが出るのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは 配列数式の中では論理関数は使えませんので論理演算 AND は 乗算 OR は 加算の符号値 SIGN(加算) とします。 お考えの式に近いものは {=SUM((男の人口>=1500000)*(女の人口>=2000000))} となります。 ついでに OR の式 (どちらかもしくは両方の条件が成立する県の数) {=SUM(SIGN((男の人口>=1500000)+(女の人口>=2000000)))}
その他の回答 (2)
- cafedemocha
- ベストアンサー率29% (232/789)
この場合、and は不要でしょうし、余計になってますね 論理式ですので、判定結果が正の時の条件に、更に論理式で判定を行う事が可能ですので、2つに限らず、更に多数の判定を(矛盾しない場合に限りますが)行う事が可能です 和訳して考えると、判り易いかもしれないですね 括弧内の合計を行い、その条件として、最初の判定条件は、男の人口が500000以上で、その条件に当て嵌まる場合は、女の人口が、2000000以上である場合に、1として計算し、当て嵌まらない場合は全て0として計算を行う これが、正解の式の内容ですので、AND式の入る余地はありませんし、入れる必要もありません
お礼
回答ありがとうございます。
- hinebot
- ベストアンサー率37% (1123/2963)
よもやと思いますが。 >{=sum(if(and(男の人口>=1500000,女の人口>=2000000),1,0)))} これがタイプミスでないなら、閉じカッコが1つ多いように思いますが…。
補足
回答ありがとうございます。 このカッコはタイプミスです。
お礼
回答ありがとうございます。 配列数式では、論理関数が使えないんですね。 知りませんでした。 勉強になりました。