2

連続しない範囲で同じ数値をカウントする最もエレガントな方法を探しています (単に「範囲」と呼びます)。範囲は次のとおりです。

=$C$2:$C$31,$E$2:$E$31,$G$2:$G$31,$I$2:$I$31,$K$2:$K$31,$M$2:$M$31,$O$2:$O$31,$Q$2:$Q$31,$S$2:$S$7

パラメータは次のとおりです。

  • 範囲に隣接していない列が含まれています。
  • 柱の高さが異なります。
  • 範囲内のセルは空であるか、整数を含んでいます。
  • 範囲内で「1」に等しいセルの数、「2」に等しいセルの数などを確認しています。(一度にではなく、別々の式で)。
  • 名前付き範囲を使用して範囲を参照しました。この名前付き範囲を何らかの形で数式で使用したいと思っています。

十分な情報を提供できたと思います...よろしくお願いします!

4

4 に答える 4

4

VBA ソリューションが必要であるという Kartik に同意します。ただし、提供されるソリューションは、関数に渡された範囲内のすべてのセルをループするという点で少し非効率的です。また、keyパラメーターを範囲参照に制限し、最大 32767 の一致しかカウントできません。これらの欠点に対処する代替手段は次のとおりです

Function CountIf_N(rng As Range, key As Variant) As Variant
    Dim r As Range
    Dim count As Long
    count = 0
    For Each r In rng.Areas
        count = count + WorksheetFunction.CountIfs(r, key)
    Next
    CountIf_N = count
End Function

注: Excel 07 以降を想定しています。以前のバージョンで使用している場合はCountIfsCountIf

于 2012-06-16T23:01:06.483 に答える
1

COUNTIF は連続していない範囲を処理できませんが、RANK や COUNT などの一部の関数は処理できます。したがって、Rangeという範囲の場合、この式は、 Range内の Z2 内の数値のインスタンスの数を示します。

=IFERROR(COUNT(Range)-SUM(RANK(Z2,Range,{1,0}))+2,0)

Excel 2007 以降を前提としていますが、以前のバージョンで動作するように修正できます

于 2012-06-17T13:42:14.523 に答える
1

1 つの方法として、Excel の組み込み関数 Countif を使用する方法がありますが、連続していない範囲では機能しません。もう 1 つの方法 (簡単な方法) は、VBA を使用して独自のカスタム関数を作成し、それを Excel で使用することです。
そのテクニックを紹介しました。

Alt+F11 を押して Excel のビジュアル ベーシック エディターに移動し、プロジェクト ウィンドウで新しいモジュールを挿入して、以下のコードを貼り付けます。

Function countif_n(rng As Range, key As Range) As Integer

Dim count As Integer
count = 0

For Each cell In rng
    If cell.Value = key.Value Then
        count = count + 1
    End If
Next cell

countif_n = count

End Function  

ここで、rng は連続していない範囲であり、key は、カウントする値を含む「範囲」(セル) を表します。たとえば、1 をチェックするには、任意のセルに 1 を入力します。「F2」と仮定すると、連続していない範囲は「testrange」になります。

次に、空白のセルに次のように入力して、上記の関数を使用します。

=countif_n(testrange, F2)
于 2012-06-16T16:53:23.773 に答える
0

これは、カウントできない S7 の下にある場合はうまく機能しませんが、変更できる場合があります。また、名前付き範囲も組み込まれません。

=SUM(IF(MOD(COLUMN(A2:S31),2)=0,IF(A2:S31=2,1,0)))

この例では、2 の数をカウントします。

これは で配列入力する必要がありますctrl-shift-enter。少なくともあなたの例では、他のすべての列で数えているという事実に基づいています。また、柱の高さが違うとおっしゃっていますが、S以外は同じ高さのようです。だから、それを回避する方法があるかもしれません。

于 2012-06-16T18:35:38.327 に答える