MS Excel/LibreOffice Calc/Googleスプレッドシートに数字の付いた2つの列があります。両方の列で同じ値を持つ行の数を数えたいと思います。
次の例では:
_Column A | Column B
1 | 4
2 | 2
3 | 5
3 | 3
5 | 3
_
同じ数の2つの行があります:行2(2 = 2)と4(3 = 3)。 =SUM(A1:A5=B1:B5)
のようなソリューションが機能することを望んでいました。残念ながら、そうではありません。
[〜#〜] update [〜#〜]
値の各ペアを行ごとに比較する3番目の列を作成すると、解決策が簡単になることはわかっています(DaveとJoeが提案したように、たとえば=IF(A1=B1, 1, 0)
を使用)。ただし、スプレッドシートを中間結果で乱雑にしたくないので、ワンライナーを探しています。
あなたはほぼ正しいです。次のように数式を少し調整できます。
{=SUM(IF(A1:A5=B1:B5,1,0))}
カーリーなしでこれを入力してください{}
角かっこ、を押します Ctrl+Shift+Enter Excelがそれが配列数式であることを認識できるようにします。中括弧は、それが配列数式であるという事実を表しています。
Excelでは、Andiのソリューションと同様の方法でSUMPRODUCT
関数を使用できますが、「配列エントリ」を回避します。
=SUMPRODUCT(0+(A1:A5=B1:B5))
これは(Andiのように)空白行もカウントするので、このバージョンへの変更を避けたい場合は、次のようにします。
=SUMPRODUCT((A1:A5<>"")*(A1:A5=B1:B5))
数字や文字に適用できるように、IFElseステートメントを使用して簡単にします
C1で、以下を追加します
=IF(A1=B1, 1, 0)
次に、数式をテーブルの長さ方向にドラッグし、その下にセル全体を合計します。
=SUM(C1:C10) // enter correct row numbers!
別の列を使用して部分的な結果を格納できる場合は、次の方法で実行できます。
_Column A | Column B | Column C (equal condition)
1 | 4 | =IF(A1=B1;1;0)
2 | 2 | =IF(A2=B2;1;0)
3 | 5 | =IF(A3=B3;1;0)
3 | 3 | =IF(A4=B4;1;0)
5 | 3 | =IF(A5=B5;1;0)
_
セルC6に、次の数式を記述します=SUM(C1:C5)