Ronaldは、いくつかの信号レベルの測定値を一連の値としてExcelにインポートします。彼は、特定のしきい値を下回る、このシリーズに存在する値の連続グループの数を数える必要があります。たとえば、彼は次の測定値を持っている可能性があります:

27, 22, 22, 30, 32, 18, 22, 23, 28, 39, 24, 27, 35, 25, 21

それらのグループのメンバーが26未満であったグループの数を知りたい場合、答えは4になります。これは26未満の連続する値のグループであり、26未満の個々の値の数ではないことに注意してください。この場合、4つのグループは次の括弧で示されます。

27, [22, 22], 30, 32, [18, 22, 23], 28, 39, [24], 27, 35, [25, 21]

ロナルドは、指定した任意のしきい値を下回るグループの数を計算するために、どのような式を使用できるのか疑問に思っています。

実際には、これにアプローチできるいくつかの異なる方法があります。 1つ目は、しきい値とシーケンスのグループ化の変更を本質的に記録する「結果列」を使用することです。たとえば、ワークシートの列A(セルA2から開始)に上記の値があり、セルE1にしきい値がある場合、列Aの値の右側のすべてのセルで次の数式を使用できます。

=IF(A2>=$E$1,B1,IF(A1<$E$1,B1,B1+1))

||||この式は、グループの現在の合計をしきい値未満に保ちます。列Bの最大(または最後の値)は、しきい値を下回るグループの総数を示します。数式は、列Aのすぐ左の値がしきい値を上回っているか下回っているかを確認します。

上にある場合、または上になく、列Aの前の値も下にある場合、現在の合計は増分されません。それ以外の場合は、新しいグループ化が開始されているため、インクリメントされます。

カウントを行う関連する方法は、代わりに列Bでこの式を使用することです。

=IF(A2>=$E$1,0,IF(A1<$E$1,0,1))

これにより、列Bに一連の0または1の値が含まれます。 1の値が発生するのは、しきい値を下回るシリーズの開始時のみです。これにより、グループ化の数を提供する列Bのすべての値を簡単に合計できます。

結果列を使用したくない場合は、配列数式を使用してカウントを計算できます。次の数式は、分析する値がA2から始まる列Aにあり、しきい値がセルE1にあることを前提としています。 Ctrl + Shift + Enterを押して配列数式を入力することも忘れないでください。

=SUM(IF((A2:A16<$E$1)((A2:A16((A1:A15<$E$1)ISNUMBER(A1:A15))),1))

この式は基本的に、前の結果列の式が行ったことを実行し(しきい値未満のグループ化が開始されているかどうかに基づいて、0または1を決定します)、それらの値を合計します。

もちろん、これらのタイプの比較を頻繁に行う場合は、独自のユーザー定義関数(マクロ)を開発して、グループ化の数を計算することをお勧めします。以下はそのような関数の例です。

Function CountGroups(ByVal MyRange As Range, Threshold As Single)

Dim Cell As Range     Dim bInGroup As Boolean     Dim iCount As Integer

Application.Volatile     iCount = 0     bInGroup = False     For Each Cell In MyRange         If Application.IsNumber(Cell) Then             If Cell < Threshold Then 'Less than the threshold?

If Not bInGroup Then  'Only count if starting new group                     iCount = iCount + 1                     bInGroup = True     'Mark as being in group                 End If             Else                 bInGroup = False        'No longer in a group             End If         End If     Next     CountGroups = iCount End Function

この関数は、範囲内の各セルを調べて、それが新しいしきい値未満のグループの開始であるかどうかを計算します。ワークシートで次のような式を使用して関数を使用します。

=CountGroups(A2:A16,E1)

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8888)は、Microsoft Excel 2007、2010、および2013に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Counting_Groupings_Below_a_Threshold [しきい値を下回るグループのカウント]