• ベストアンサー

IF関数にて

ある検定問題集の問題なんですが、県別人口データという表があって、その中から男の人口が1500000以上で、女の人口が2000000以上の県の数を関数を用いて求めなさい。ただし、countif関数、データベース関数を利用せず、配列数式を用いて求めなさい。という問題があります。 で、{=sum(if(男の人口>=1500000,if(女の人口>=2000000,1,0)))}というのが答えなんですが、 {=sum(if(and(男の人口>=1500000,女の人口>=2000000),1,0)))}とした場合、エラーを出します。 男の人口が●人以上、女の人口が●人以上という二つの条件をともに満たす場合、and関数で出せたと思ったのですが、なぜandを使うとエラーが出るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.3

こんばんは 配列数式の中では論理関数は使えませんので論理演算  AND は 乗算  OR  は 加算の符号値 SIGN(加算) とします。 お考えの式に近いものは  {=SUM((男の人口>=1500000)*(女の人口>=2000000))} となります。 ついでに OR の式 (どちらかもしくは両方の条件が成立する県の数)  {=SUM(SIGN((男の人口>=1500000)+(女の人口>=2000000)))}

noname#9485
質問者

お礼

回答ありがとうございます。 配列数式では、論理関数が使えないんですね。 知りませんでした。 勉強になりました。

その他の回答 (2)

回答No.2

この場合、and は不要でしょうし、余計になってますね 論理式ですので、判定結果が正の時の条件に、更に論理式で判定を行う事が可能ですので、2つに限らず、更に多数の判定を(矛盾しない場合に限りますが)行う事が可能です 和訳して考えると、判り易いかもしれないですね 括弧内の合計を行い、その条件として、最初の判定条件は、男の人口が500000以上で、その条件に当て嵌まる場合は、女の人口が、2000000以上である場合に、1として計算し、当て嵌まらない場合は全て0として計算を行う これが、正解の式の内容ですので、AND式の入る余地はありませんし、入れる必要もありません

noname#9485
質問者

お礼

回答ありがとうございます。

  • hinebot
  • ベストアンサー率37% (1123/2963)
回答No.1

よもやと思いますが。 >{=sum(if(and(男の人口>=1500000,女の人口>=2000000),1,0)))} これがタイプミスでないなら、閉じカッコが1つ多いように思いますが…。

noname#9485
質問者

補足

回答ありがとうございます。 このカッコはタイプミスです。

関連するQ&A

専門家に質問してみよう