web-dev-qa-db-ja.com

MIN数式Excelから0を除外する方法

行から0を除外してMIN値を取得する方法を知る必要があります。

しかし、F1 Cellを除外する必要もあります。

例:

A  B  C    D  E   F
1  0  18  20  0  150  = 18

しかし、= MIN(A1、B1、C1、D1、E1)でExcelでこれを行うと、0が返されます。

どんな助けも大歓迎です。

9
Dario

この式を試してください

=SMALL((A1,C1,E1),INDEX(FREQUENCY((A1,C1,E1),0),1)+1)

SMALL関数とFREQUENCY関数はどちらも、引数として「共用体」を受け入れます。つまり、コンマで区切られ、(A1、C1、E1)のような括弧で囲まれた単一セル参照です。

したがって、式はFREQUENCYとINDEXを使用して範囲内のゼロの数を見つけ、それに1を追加すると、k番目の最小値が常にゼロを除く最小値になるようにk値を取得します。

私はあなたが負の数を持っていないと仮定しています.....

8
barry houdini

結果セルに以下を入力し、Enterを押しながらCtrl&Shiftを押します。

=MIN(If(A1:E1>0,A1:E1))
8
Chief Wiggum

最も効率的な方法は、以下に示すようにSMALLおよびCOUNTIF数式を使用することです。

SMALLデータセットのk番目に小さい値を返します。

= SMALL(A1:A100、COUNTIF($ A $ 1:$ A $ 100,0)+1)

ここで、countifは範囲(+1)のゼロをカウントしており、SMALLにk番目の最小値を返すように指示するために使用されます。

クレジット: link

7
Rahul Shah

ここで何が欲しいのか完全にはわかりませんが、範囲内の空白セルを割り引いてゼロを渡す場合は、これを実行します。少し不自然な場合:

=MIN(IF(A1:E1=0,MAX(A1:E1),A1:E1))

配列としてCtrl + Shift + Enterを使用します。

ここで行っているのは、リストの最大値でゼロを置き換えることです。

2
Bathsheba

リングに帽子を投げる:

1)最初に、0以外のゼロと1のゼロを評価して、整数のセットでNOT関数を実行します

2)次に、元の整数セットでMAXを検索します

3)次に、ステップ1で生成されたセットの各数値にステップ2で見つかったMAXを乗算し、1を0に、ゼロをMAXに設定します

4)次に、ステップ3で生成されたセットを元のセットに追加します

5)最後に、ステップ4で生成されたセットでMINを探します

{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}

数値の大まかな範囲がわかっている場合は、MAX(RANGE)を定数に置き換えることができます。これは物事をわずかに高速化しますが、それでも高速機能と競合するには十分ではありません。


また、5000回の整数のデータセットに対して、5000回実行される式を使用したクイックテストを実行しました。

{=SMALL(A1:A5000,COUNTIF(A1:A5000,0)+1)}

1.700859秒経過| 5,301,902ティック経過

{=SMALL(A1:A5000,INDEX(FREQUENCY(A1:A5000,0),1)+1)}

1.935807秒経過| 6,034,279ティック経過

{=MIN((NOT(A1:A5000)* MAX(A1:A5000))+ A1:A5000)}

.127774秒経過| 9,749,865ティック経過

{=MIN(If(A1:A5000>0,A1:A5000))}

.287850秒経過| 10,248,852ティック経過

{"=MIN(((A1:A5000=0)* MAX(A1:A5000))+ A1:A5000)"}

.328824秒経過| 10,376,576ティック経過

{=MIN(IF(A1:A5000=0,MAX(A1:A5000),A1:A5000))}

.394730秒経過| 10,582,017ティック経過

1
learnAsWeGo

すべての値が正の場合、-max(-n)を実行できます

1
Kitanski

リストされているソリューションは、私にとってはうまくいきませんでした。最も近いのはチーフ・ウィッガムでした-彼の答えにコメントを付けたかったのですが、そうする評判がありません。だから私は別の答えとして投稿します:

=MIN(IF(A1:E1>0;A1:E1))

次に、Enterキーを押す代わりに、Ctrl + Shift + Enterキーを押して、Excelが{および}をそれぞれ数式の先頭と末尾に追加します(配列の数式を有効にします)。

Chief Wiggumが提案したカンマ「、」および「If」ステートメントは、Excel Home and Student 2013では機能しませんでした。セミコロン「;」が必要フルキャップ「IF」がトリックを行いました。わずかな構文の違いがありますが、エラーと#VALUEが発生する理由を理解するのに1.5時間かかりました。

1
Alex Jean

min()関数は、ブール値とストリング値を除外します。ゼロを ""(空の文字列)に置き換えた場合-min()関数は希望どおりに機能します!

0
Orbay Chakar