私は列を「はい」、「NA」、「いいえ」で分析する関数を書こうとしています。すべての行に「はい」または「NA」がある場合、提出ステータスは「はい」になります (すべて「はい」で 1 つの NA がある場合、提出ステータスは「はい」になります)。ただし、いずれかの行に「いいえ」がある場合、提出ステータスは「いいえ」になります。これは私が持っているものです:
=IF(COUNTIFS(H4:H14,{"はい","NA"})=COUNTA(H4:H14),"はい","いいえ")
すべての行が「はい」のときのみ「はい」が表示されます。1 つの行が「NA」で、他のすべての行が「はい」の場合、送信ステータス領域に「いいえ」と表示されますが、これは誤りです。行内のすべての「いいえ」には、送信ステータスが「いいえ」と表示されますが、これは正しいです。このコードを理解するのを手伝ってくれる人はいませんか?
答え1
これを実現するには 3 つの方法があると思います。
cybernetic.nomad のコメントによると、「...いずれかの行に「No」がある場合...」という問題ステートメントに焦点を当てると、「No」が含まれるセルをカウントすることになります。
=IF(COUNTIF(H4:H14,"いいえ")=0,"はい","いいえ")
一方、逆の方向から焦点を当てたい場合は、「すべての行に「はい」または「NA」がある場合」、つまり「はい」のセルの数を数え、それを「NA」のセルの数に追加します。
=IF(COUNTIFS(H4:H14,"はい")+COUNTIFS(H4:H14,"NA")=COUNTA(H4:H14),"はい","いいえ")
また、最初の試みで使用したように、構文を使用する場合は、構造{...}
を使用する必要があります。このアプローチの関数は、2 つの値 (リストからの可能な一致ごとに 1 つ) の配列を返すため、それらを合計する必要があります。SUM(...)
COUNTIFS
{"Yes","NA"}
=IF(SUM(COUNTIFS(H4:H14,{"はい","NA"}))=COUNTA(H4:H14),"はい","いいえ")
(3 番目のアプローチは、2 番目のアプローチを言い換えただけです。)
注意
最初の 2 つのアプローチは、重要な点で異なります。どちらが最適かを判断するには、例の「はい」、「いいえ」、「NA」以外の値がある場合に、どのような結果にしたいかを決める必要があります。特に、いずれかの行にリストされていない値 (たとえば、「xxx」) がある場合、最初のアプローチでは になりYes
、2 番目と 3 番目のアプローチでは になりますNo
。
要件はあいまいです。この場合は問題になる可能性は低いですが、何も偶然に任せないようにするのが良い方法です。