1

不可能と思われるプロジェクトを手伝ってくれたstackoverflowのExcelの達人に感謝します。別の質問があります:

Sheet1とSheet2の2つのワークシートがあります。

Sheet1の製品コードのリストAと、から最​​低価格を取得するための式がありSheet2ますB

A      B      C
A100   $10
A200   $12
A300   $45

Sheet2製品コード、価格、および説明のリストがあります。

A      B      C
A100   $20    Product One
A100   $10    Product Two
A100   $12    Product Three
A100   $0     Not Found
A200   $25    Product A
A200   $12    Product B
etc, etc, etc

Sheet1、列ではB、次の式を使用して、ゼロ以外の最低価格を見つけています。

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

これを変更して、列の説明を取得して列Cに配置するにはどうすればよいですか?Sheet1C

いつものように、あなたの時間と努力に感謝します!

4

3 に答える 3

1

私は答えを得たと思います)C1に次のように入れてください。

=IFERROR(INDIRECT("Sheet2!C"&MATCH(A1&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000))),Sheet2!$A$1:$A$20000&Sheet2!$B$1:$B$20000,0)),"No price / description found")

また、通常の代わりにCTRL+ SHIFT+を押すことを忘れないでください。これにより、ARRAY数式が定義され、括弧で囲まれます(ただし、手動で入力しないでください)。エラー処理も含まれています。ENTERENTER{}

価格と説明を組み合わせた1セルソリューションが必要な場合-このモンスターを使用してください:

=IFERROR("$"&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000)))&": "&INDIRECT("Sheet2!C"&MATCH(A1&MIN(IF(Sheet2!$A$1:$A$20000=A1,IF(Sheet2!$B$1:$B$20000>0,Sheet2!$B$1:$B$20000))),Sheet2!$A$1:$A$20000&Sheet2!$B$1:$B$20000,0)),"No price / description found")

サンプルファイルも利用できます:https ://www.dropbox.com/s/tnb3ov7o1s2sper/PriceWithDescr.xlsx

于 2013-01-28T18:48:39.523 に答える
1

INDEX/MATCHたとえばC1のソリューションを使用できます

=INDEX(Sheet2!C$1:C$20000,MATCH(1,(Sheet2!A$1:A$20000=A1)*(Sheet2!B$1:B$20000=B1),0))

で確認するCTRL+SHIFT+ENTER

于 2013-01-28T20:55:13.777 に答える
0

Sheet2内の製品コード列と価格列の両方で値が重複している可能性があるため、異なる価格/製品コードの組み合わせを区別するために使用できる一意の値をSheet2に作成することをお勧めします。これが私がこれに対処した方法です:

ステップ1-Sheet2に新しい列を挿入する

次の式を使用して、現在の列Aの前に新しい列を追加しました。

=CONCATENATE(B2,"-",C2)

このリビジョンでは、Sheet2に対して次の値が生成されます。

A          B          C          D
A100-20    A100       20         Product One   
A100-10    A100       10         Product Two
A100-12    A100       12         Product Three
A100-0     A100       0          Not Found

ステップ2-Sheet2の列Cに新しい数式を入力します

=VLOOKUP(CONCATENATE(A2,"-",B2),Sheet2!A:D,4,FALSE)

これにより、Sheet2のデータからSheet1の列AとBの値の組み合わせが検索されます。ゼロ価格の製品を無視するために追加のエラーチェックを追加することもできますが、Sheet1の列Bの前の数式でこれをすでに説明しているため、これを数式に含めませんでした。テストしたところ、正しい説明が得られました。

ワークシートをこの程度まで変更できない場合は、反復VBAベースのソリューションを使用することもできます。これは、必要に応じて喜んで説明します。

幸運を!

于 2013-01-28T18:56:07.057 に答える