日付範囲内であれば、trueの場合に値カウントを生成しようとしています

日付範囲内であれば、trueの場合に値カウントを生成しようとしています

この数式を入力しましたが、エラーが発生します... 誰か助けてくれませんか?

=COUNTIFS(West!N6:N26,true,[West!C6:C26,>=1/1/21,date range,<=1/31/21])

答え1

:を使用する必要はありませんIF()。実際、COUNTIFS()は の優れた代替手段でありIF()、条件リストが長い場合 (たとえ 5 個や 6 個であっても) にははるかに優れています。各条件の後に Alt + Enter を使用して条件を数式編集バーにきちんと積み重ねることができるため、 と呼ばれる下劣で不快な実行文よりも設定と後の管理がはるかに簡単になりますIF()

前述のようにFlexYourData、不可解な角括弧を削除し、日付部分を二重引用符で囲めば (以下に示すように)、「日付範囲」が何らかの有効な参照になっている限り、問題ありません。

=COUNTIFS(West!N6:N26,true,West!C6:C26,">=1/1/21",date range,"<=1/31/21")

まず日付の部分です。条件は、そのまま記述することはできません。最初の条件 については問題ありませんでしtrueたが、Excel はそういうものだからです。ただし、論理的な TRUE/FALSE ではない条件については、条件全体を二重引用符で囲む必要があります。または、">=" などの演算子と、TODAY()おそらく のような関数または数式の場合は、関数ではなく演算子を二重引用符で囲む必要があります。したがって、日付自体だけでなく、上記のように条件全体を囲む必要があります。

さて、「日付範囲」は名前付き範囲にすることはできません。NR にはスペースを入れることができないからです。したがって、一般化された概念的な数式から、West!C6:C26 のような実際の範囲などを含む数式に移行し、3 つ目の数式を見逃して「日付範囲」を残したと考えられます... この場合、そこに実際の何か、名前付き範囲でも入れれば、その問題は解決します。私が間違っていて、本当にそこに「日付範囲」を入れたいのであれば、うまく機能することは決してないでしょう。

最後に、二重引用符について。これは Excel 用であり、二重引用符内のリテラル値を意味していることを Excel が認識できるようにします。Excel は、ペアの最初の部分である「条件」をこの値と比較します。上記のように、引用符内のリテラル値が使用されるため、Excel は列 N セルで見つかったものを取得してリテラル式を追加し、その後に比較演算子 AND 値を追加します。これにより、あるセルで見つかった数式のように処理できる式が作成され、TRUE または FALSE が返され、それを使用して、使用している xxxxxIF または xxxxxIFS 関数の回答に含めるかどうかを決定します。

二重引用符を含めないと、Excel は関数が入力されたと認識し、その関数が見つからない場合は名前付き範囲として検索し、見つからない場合はエラーを返して問題が発生します (通常は... 常にそうとは限りません)。奇妙ですね。ただし、問題が発生しない方法は実際には役に立たず、別の方法でより良く実行できます。したがって、関数や名前付き範囲を使用していない場合は二重引用符を使用し、関数を使用する場合でも、比較演算子 (=、> など) を引用符で囲む必要があります。実際には、これよりもはるかに複雑に聞こえることもあります。ただし、これらのアイデアに従い、条件で比較演算子を使用しないと Excel が を使用するように指示されることを念頭に置いておけば=、発生する可能性のあるほとんどの状況を把握できます。

ただし、状況は単純です。上記のように、全体を二重引用符で囲みます。

関連情報