この記事ではエクセルで0以外の最小値(0を除く:0より大きい:基準値以上の最小を算出:関数:マクロ)の算出方法について詳しく解説していきます。
ポイントは、以下の3つです。
・MINIFS関数の使い方と注意点
・MIN関数とIF関数を組み合わせる方法とその仕組み
・マクロを用いる方法と関数との違い
エクセル操作は1つ1つ追っていけば必ずうまくできるため、ぜひ本記事を参考にスキルアップにつなげてくださいませ♪
関数を使って0以外の最小値を求める方法【MINIFS関数】
それでは以下のサンプルを用いてMINIFS関数を使う方法を確認していきます。
B2セルに以下の数式を入力します。
=MINIFS(A2:A7,A2:A7,”<>0″)
ENTERで処理を確定させます。
必要に応じてオートフィルを行いましょう。
この時、数式を相対参照から絶対参照に変更してから行いましょう。
MINIFS関数は、指定された複数の条件に基づいて、範囲内の最小値を返します。
書式は以下の通りです。
=MINIFS(最小値の範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
最初の引数で最小値を求める範囲を指定し、2番目以降の引数で条件範囲と条件式を交互に指定していきます。
条件の数に制限はありません。
上記の例では、A2:A7の各セルが0ではない(”<>0″)という単一の条件を設定しています。
この場合、A2:A7の中で0以外の値を持つセルの最小値が算出されます。
MINIFS関数は非常に便利ですが、Excel 2019以降でしか使えないという制約があります。
それ以前のバージョンでは、次に説明するMIN関数とIF関数の組み合わせで代替する必要があります。
使用するExcelのバージョンを確認しておくことが大切ですね。あなたならできます(^^)/
関数を組み合わせて0以外の最小値を求める方法【MIN関数とIF関数】
MINIFS関数が使えない環境の場合は、MIN関数とIF関数を組み合わせる方法で同様の処理を実現できます。B2セルに以下の数式を入力します。
=MIN(IF(A2:A7<>0,A2:A7))
ENTERで処理を確定させます。
必要に応じてオートフィルを行いましょう。
この時、数式を相対参照から絶対参照に変更してから行いましょう。
IF関数は条件式の結果に応じて、指定した値を返す関数です。書式は以下の通りです。
=IF(条件式, 真の場合の値, 偽の場合の値)
上記の例では、条件式に「A2:A7の各セルが0ではない」を指定し、真の場合の値にはA2:A7の値をそのまま返すようにしています。
偽の場合の値は省略しているため空白になります。
IF関数の結果は、{5, (空白), 8, -3, (空白), 2}のような配列となります。
これをMIN関数に渡すことで、空白を無視して配列内の最小値が求められる仕組みです。
IF関数は他の関数と組み合わせて使うことが多いので、ぜひ仕組みを理解して活用していきましょう。1つずつ丁寧に理解することがポイント♪
マクロを使って0以外の最小値を求める
最後にマクロでの算出方法を見ていきます。マクロは以下のように記述します。
Sub NonZeroMin()
Dim i As Long
Dim minVal As Variant
minVal = Empty
For i = 2 To 7
If Cells(i, 1).Value <> 0 Then
If IsEmpty(minVal) Then
minVal = Cells(i, 1).Value
ElseIf Cells(i, 1).Value < minVal Then
minVal = Cells(i, 1).Value
End If
End If
Next i
If IsEmpty(minVal) Then
Cells(2, 2).Value = "0以外の値がありません"
Else
Cells(2, 2).Value = minVal
End If
End Sub
このマクロの処理の流れは以下の通りです。
セルA2:A7を1行ずつループで処理します。
値が0ではない場合に、minValと比較して小さければ更新していきます。
あらかじめminValは空白で初期化し、IsEmpty関数で最初の0以外の値を判定しています。
最終的な最小値をセルB2に出力します。0以外の値が1つもない場合は、メッセージを表示するようにしています。
マクロは関数に比べると自由度が高いのが特徴です。
複雑な処理や、Excelの関数だけでは実現が難しいケースでは、マクロを検討してみるのも良いでしょう。
ただし、セキュリティ上の制約から、マクロが無効化されている環境も多いので注意が必要です。
まとめ エクセルで0を除いた最小値(0より大きい:基準値以上の最小を算出:関数:マクロ)の算出方法
この記事では、【Excel】エクセルで0以外の最小値(0を除く:0より大きい:基準値以上の最小を算出:関数:マクロ)の算出方法について詳しく解説しました。
エクセルの扱いに慣れ、さらに快適な毎日を過ごしていきましょう!