3

2つのワークシートを含むワークブックがSheet1ありSheet2ます。

Sheet1検索する値(製品コード)と、入力する空のセルがあります。

A      B
A100
A200
B150
C3AB

Sheet2たくさんの製品コードとコストがあります:

A      B
A100   35
A100   14
A100    0
A200   10
A200   12
etc, etc, etc

Sheet1 B1で次の数式を使用して、Sheet2からMIN一致値を検索しています。

=MIN(IF(Sheet2!$A$1:$A$5=A1,Sheet2!$B$1:$B$5))

0の一致を返すことを除外するにはどうすればよいですか?製品A100の場合、ゼロ以外の最も低い一致である14を返したいと思います。

4

4 に答える 4

2

これを配列数式としてB1に送信してみてください

テストされていません

=MIN(IF(((Sheet2!$A$1:$A$5=A1)*(Sheet2!$B$1:$B$5>0))>0,Sheet2!$B$1:$B$5))

これでうまくいくと思います

于 2013-01-25T18:38:53.763 に答える
2

シート1に列Cを追加し、次のように入力すると、さらに速くなりますか。

=IF(B1=0," ",B1)

次に、行列として入力された元の数式は、代わりに列Cを参照して機能します。

=MIN(IF(Sheet2!$A$1:$A$5=A1,Sheet2!$C$1:$C$5))

別の列を追加する速度について誰かがコメントできますか?シートには最大20000行あるようです。

于 2013-01-25T23:54:35.453 に答える
1

配列数式:

{=SMALL(IF(Sheet2!$B$1:$B$5<>0;IF(A3=Sheet2!$A$1:$A$5;Sheet2!$B$1:$B$5;"");"");1)}

Shift-Ctrl-数式ウィンドウにEnterキーを押して挿入します。中かっこは、ユーザーではなくExcelによって挿入されます。

MIN奇妙な動作0をし、配列内の非数値に対しても発行しました。SMALL代わりにが使用され、#NUM!存在しない参照に対してエラーが発生しました。

スプレッドシートの例:http ://www.bumpclub.ee/~jyri_r/Excel/MInimal_value_except_0.xls

于 2013-01-25T18:38:55.357 に答える
0

AFAIK:VBAを使用して値をループするか、次のいずれかを実行します。

=IF(a1=0,"",A1)(列Aの値ごとにコピーされた)と同様の式を使用して別の列を作成します。次に、この列でmin関数を使用できます。

HTH

于 2013-01-25T18:24:01.283 に答える