データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
こんにちは。横合いから失礼します。
セルに表示される値は、「文字列」(空白の文字列を含む)か「数値」に大別されますので、規則性のない飛び飛びのセル範囲と考えずに、連続したセル範囲の中で「数値」の入っているセルを比較対象とする、というように考えてみてはいかがでしょう?。
下記は、この考え方を基に作成した数式の一例です。MINIFS 関数は使っていませんので、ご了解のほど。
仮に、A1:J1 のセル範囲を比較対象としています。
=IF(SUM(ISNUMBER(A1:J1)*(A1:J1>K1))=0,"範囲外",MIN(IF(ISNUMBER(A1:J1)*(A1:J1>K1),A1:J1)))
※この数式は入力後(あるいはコピー・貼り付け後)に Ctrl+Shift+Enter で確定して配列数式にする必要があります。
※配列数式になると、自動的に数式全体が { } で囲われますので、必ずそうなっていることを確認してください。
<数式の動作概要>
A1:J1 のセル範囲内で、「数値」が入っているセルの配列( TRUE / FALSE )と、K1セルの値より大きな値のセルの配列( TRUE / FALSE )との積を取った配列( 1 / 0 )を作り、これを IF 関数で実際の値の配列( セルの値 / FALSE )に変更し、その中の最小値を表示させています。
尚、セル範囲内に K1セルの値より大きな値のセルが一つも無い場合には "範囲外" と表示させるようにしています。
図1は、色々なデータを入れた表を作成し、上記の数式を L1セルに入れた結果です。
※ B1セルには空白の文字列「 ="" 」を入れ、D1セルには何も入力していない状態にしています。
・図1:K1セルを区別するため背景色を黄色にしています。
Excel2019 は持ち合わせていないため、Windows10 と Excel2016 の組み合わせ、及び、Web 版の Excel(最新版の Excel )で動作確認しています。
こういった関数を組み合わせた数式を使う方法もご希望ではないのかもしれませんが、よろしければ、お試しになってみてください。
ご参考になれば幸いです。
<文章の修正>
<数式の動作概要>の文章について、省略しすぎて意味不明な説明になってしまっている箇所がありましたので、修正いたしました。大変失礼いたしました。
<追記>
もしも、指定したセル範囲内の「数値」の全てを比較対象としたくはない、といった場合には、マスク用の配列( 1 / 0 )を作り、この配列と上記数式の ISNUMBER(A1:J1) の箇所を入れ替えれば可能です。(マスクという言葉は、意味が分かりやすいように便宜的に使っています。以下同様。)
例えば図1で、C1セルと H1セルの値のみを比較対象としたい場合、マスク用の配列は {0,0,1,0,0,0,0,1,0,0} となります。
=IF(SUM({0,0,1,0,0,0,0,1,0,0}*(A1:J1>K1))=0,"範囲外",MIN(IF({0,0,1,0,0,0,0,1,0,0}*(A1:J1>K1),A1:J1)))
※この数式も入力後(あるいはコピー・貼り付け後)に Ctrl+Shift+Enter で確定して配列数式にする必要があります。
※配列数式になると、自動的に数式全体が { } で囲われますので、必ずそうなっていることを確認してください。
マスク用の配列の数字の意味は、「 0 」比較対象としない(マスクする)、「 1 」比較対象とする(マスクしない)、ということを意味しています。
また、この場合の数字の並んでいる順番は、左端から A1セル,B1セル,・・・,J1セルに対応しています。
尚、マスク用の配列の要素数は、指定したセル範囲( A1:J1 )のセルの個数に合わせ、この場合ならば 10個にします。
ただし、こういった方法は、マスク用の配列の要素数が多くなってくると、マスク位置の指定を間違えやすくなるので実用的ではなくなってきます。
ご参考まで。