別の列の同じ行の値との比較に基づいてセルをカウントします


0

条件に基づいてセルをカウントすることについて多くの質問がありますが、現在の行の別の列の値が現在のセルよりも小さい/大きい場合、セルをカウントする方法を見つけることができません。例:

列Aのセル(下)に空白以外の値があり、その値が列Bの同じ行の値よりも少ないか?

A     B
--    --
6     
2     1
3*    6
      2
4*    6
4     1

答えは2でなければなりません。これは、アスタリスクとして追加した2つです(通常、データにはアスタリスクは含まれていません)。

私が使いたいのは:

=COUNTIFS(A1:A6,"<>",A1:A6,"<"&cell in column B for whatever row Excel is currently looking at)

…しかし、それはできません。アイデアはありますか、できればVBAを避けますか?

注:解決策がある場合、理想的には、Excelテーブルの列名を参照するときに引き続き機能します。オフセットなどを使用すると、将来エラーが発生しやすくなります。

回答:


1

カウンター列を追加する必要がないように、SUMPRODUCT数式を使用できると思います。

=SUMPRODUCT((A1:A6<>"")*(A1:A6<B1:B6))


優れたありがとう!私は以前にSUMPRODUCTを試しましたが、まだそこに着きませんでした。
-user535673

1

比較記号を連結する複雑な数式を作成する代わりに、列Cで0または1になる数式を作成することをお勧めします。次にSUM、この列の上に配置します。

あなたの例では:

C1 = IF(AND($A1<>"",$A1<$B1),1,0) 

あなたの答えは SUM($C:$C)


おかげで、それは良い解決策です。現在特定の問題があるため、データはSharePointデータにリンクされたシートにあるため、データの横に列を追加することはできませんが、もちろん別のシートを使用できます。データの将来の拡張に対応するために、数式が完全に下がるようにする必要があります。次に、#VALUE!を避けるために、SUMIFを使用して1のセルのみをカウントします。行/列参照ではなく、Excelテーブルを参照するときに表示されるセル。
user535673

1
式を調べることは興味深いかもしれません=IFERROR(value,value_if_error)このリンクを参照してください。整理してくれてうれしいです。
スベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.