Excel の配列数式で、if ステートメントを含む and() 数式を使用する

Excel の配列数式で、if ステートメントを含む and() 数式を使用する

スプレッドシートにクライアントのリターンのリストがあります。各クライアントには、リスク カテゴリ (riskyまたはsafe) とパートナー (P1またはP2) が割り当てられています。

レイアウトの例は次のとおりです

  A           B          C            D
Client  |  Return  |  RiskCat  |  Partner
_________________________________________
John       1.5%       risky       P2
Bill       1.8%       risky       P1
Tim        1.2%       safe        P2
Bob        1.4%       risky       P1
Kate       2.1%       risky       P2
Fred       0.8%       safe        P1
...etc

私は、特定の基準 (リスク カテゴリなど) における収益の中央値を計算する " " 関数を作成しました。medianif()たとえば、リスク カテゴリにおける収益の中央値を見つけたい場合は、次のようにします。

=median(if(C:C="risky",B:B,""))

そして、Ctrl + Shift + Enter キーを押して、セルに配列数式として入力します。

同様に、P1 をパートナーとして持つ人の収益の中央値を見つけるには、次のようにします。

=median(if(D:D="P1",B:B,""))

上記の両方の式は私にとっては有効ですが、リスクの高いカテゴリと P1 パートナーの収益の中央値を見つけたいと考えています。それでは、次のように試してみます。

=median(if(and(C:C="risky",D:D="P1"),B:B,""))

残念ながら、これは機能せず、#value エラーが発生します。この方法で AND() を使用することは可能ですか? また、できない場合は、目的を達成するにはどうすればよいでしょうか?

答え1

いいえ、ANDやORをこのように使用することはできません。これらの関数は配列ではなく単一の結果を返すためです。ANDの代わりに*を使用するか、複数のIFを使用する必要があります。

=MEDIAN(IF((C:C="risky")*(D:D="P1"),B:B))

または

=MEDIAN(IF(C:C="risky",IF(D:D="P1",B:B)))

後者はおそらくわずかに効率的である

関連情報