Excel

【Excel】エクセルで0以外の最小値(0を除く:0より大きい:基準値以上の最小を算出:関数:マクロ)の算出方法

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

この記事ではエクセルで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より大きい:基準値以上の最小を算出:関数:マクロ)の算出方法について詳しく解説しました。

エクセルの扱いに慣れ、さらに快適な毎日を過ごしていきましょう!