質問: if関数とcountif関数の混在した式なんですが・・・ a1からa10までaかbの文字が入力されています。 この10個のセルのなかで aが入力されているセルの数が7個以上の場合、b10にcと入力、 bが入力されているセルの数が7個以上の場合、b10にdと入力、 それ以外の場合、b10にeと入力したいのです。 そこでb10に =if(countif(a1:a10,"a")>=7,"c",countif(a1:a10,"b")>=7,"d","e") と入力しましたがエラーになってしまいます。 エラー表示の際、"d"の部分が黒く反転しています。 どこが間違っているでしょうか。
回答: #1の方に補足します。 関数は =命令文(パラメータ) の構成を取り、パラメータがないもの(その時間を呼び出す=now()など)、一定個数のパラメータを必要とするもの(命令に対し、何個のパラメータと決まっているタイプです。if関数も、このタイプです)、複数のパラメータを並べるもの(個数が決まっていないが、複数指定するものです。良い例がsum関数です)があります。 if関数の場合、 =if(条件指定、条件に適合した場合、条件に適合しない場合) と3個のパラメータを使用します。 =if(countif(a1:a10,"a")>=7,"c",countif(a1:a10,"b")>=7,"d","e") とすると、 countif(a1:a10,"a")>7が条件指定で、”c"が適合するときとなりますが、countif(a1:a10,"b")>=7が適合しない場合となってしまい、そのあとの”d"と”e"の二つがパラメータとして多いことになります。黒く反転しているのは、そのあたりがおかしいという指摘です。 #1さんが記したように、 =if(countif(a1:a10,"a")>=7,"c",if(countif(a1:a10,"b")>=7,"d","e")) とすることで、最初のcountif関数で指定している条件に適合しないときは、3つめの適合しない場合に記しているif関数内の判定となり、それぞれのパラメータの数が正当な数になります。 複雑な条件を指定するときは、if関数を7回組み込む(ネストすると言います)ことが可能で、2種のうち1種を満たすときはor(条件1,条件2)という書き方を、共に満たすときはとするならand(条件1,条件2)という書き方の関数を、if関数内に組み込むことで複雑な判定をさせます。