最小(または最大)を導出する必要がある場合があります

最小(または最大)値がゼロでない限り、範囲からの値。たとえば、\ {0、3、1、4、2}などの値の範囲があるとします。この場合、最小値はゼロですが、実際に返したい値は1です。

ここで規定されている値を返すExcel内の組み込み関数はありません。ただし、そのトリックを実行する数式を作成することはできます。分析する値の範囲がC4:C8にあるとすると、次の数式はゼロ以外の最小値を返します。

=IF(MIN(C4:C8)=0,SMALL(C4:C8,COUNTIF(C4:C8,"=0")+1),MIN(C4:C8))

この式は、MIN関数を使用して、範囲の最小値がゼロかどうかを判別します。そうである場合、SMALL関数を使用して、ゼロを除く最小値を導き出します。 (COUNTIF関数は、範囲内のゼロの数を返すため、範囲内のどの項目を選択するかをSMALLに指示します。)

数式を少し変更すると、次の範囲でゼロ以外の最大の数値を返すために使用できます。

=IF(MAX(C4:C8)=0,LARGE(C4:C8,COUNTIF(C4:C8,"=0")+1),MAX(C4:C8))

これらの数式は、範囲が完全にゼロで構成されていない限り、どの範囲でも機能します。その場合、#NUM!エラーが返されます。

Excel2019またはOffice365でExcelを使用している場合は、新しいMINIFS機能を使用できます。この例では、次のように使用されます。

=MINIFS(C4:C8,C4:C8,"<>"&0)

MINIFS機能の詳細については、次のMicrosoftOfficeサポートページを参照してください。

https://support.office.com/en-gb/article/minifs-function-6ca1ddaa-079b-4e74-80cc-72eef32e6599

配列数式を使用する場合は、数式をはるかに短くすることができます。このバージョンは、ゼロ以外の最小値を返します:

=MIN(IF(C4:C8=0,9^9,C4:C8))

Ctrl + Shift + Enterを使用して入力することを忘れないでください。範囲内のすべての値が0の場合も、問題が発生します。その場合、9 ^ 9である387420489を返します。 (範囲内のすべての値が387420489より大きい場合も、その値を返します。)

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

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

link:/ excel-Deriving_High_and_Low_Non-Zero_Values [Deriving High and Low Non-ZeroValues]