こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

抽出の仕方教えてください!

いい方法を教えてください!
例えば、下図の表があり部品Aを100個単位で買うと単価300円し、1000個単位で買うと単価が280になるといった見方をする単価表があるとして、SHEET1にあるとします。
SHEET2で部品名と購入単位個数(ロット数)を入力すると単価が自動抽出できる良い方法を教えてください。
A列   B    C    D
    100個 1000個  2000個
部品A 300   288   260
部品B 500   480   460
部品C 320   318   302
部品D 120   110   102
宜しくお願いします!! 

投稿日時 - 2007-02-07 23:11:42

QNo.2733251

困ってます

質問者が選んだベストアンサー

次の方法は如何でしょうか。
シート1の1行目は数値(表示形式が#"個")、範囲はA1:D5としますので、範囲は調整して下さい。
シート2のA1に部品名、B1に個数、C1にその単価を表示するとしています。A1が未入力及びB1が99個以下は入力ミスとします。
C1セルに=IF((COUNTIF(Sheet1!$A$2:$A$5,A1)>0)*(B1>99),OFFSET(Sheet1!$A$1,MATCH(A1,Sheet1!$A$2:$A$5,0),MATCH(B1,Sheet1!$B$1:$D$1,1)),"入力ミス")

投稿日時 - 2007-02-08 10:13:56

補足

そういう関数の使い方もあるんですね☆有難うございます。より良いやり方を知りたい為引き続き教えてください!!宜しくお願いします。

投稿日時 - 2007-02-09 22:15:51

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こんばんわ
シート2のセルA1、B1に部品名、ロット数が入るものとして
セルC1に
=SUMPRODUCT((Sheet1!A4:A6=A1)*(Sheet1!B3:D3=IF(B1=0,,IF(B1<1000,100,IF(B1>=10000,9000,INT(B1/1000)*1000))))*(Sheet1!B4:D6))
としました。
表がどこまであるのか分かりませんでしたので、9000個まであるものとしました。仮に表が3000個までの場合は式中のB1>=3000,3000と直してください。

投稿日時 - 2007-02-08 00:06:25

お礼

有難うございます。

投稿日時 - 2007-02-09 22:19:42

ANo.1

購入単位は 100,1000,2000のいずれかと言う事でよろしいですか?

VLOOKUPで単価を呼ぶ事が出来て、それをIF関数の入れ子にする事で
読み込む列を変更出来ます。

Sheet2が

A    B   C
部品名 数量 単価

として C列に入れる関数は下の通りです。
=IF(B1=100,VLOOKUP(A1,Sheet1!$A:$D,2,FALSE),IF(B1=1000,VLOOKUP(A1,Sheet1!$A:$D,3,FALSE),VLOOKUP(A1,Sheet1!$A:D,4,FALSE)))

改行されている場合は一行にして貼り付けして下さい。

投稿日時 - 2007-02-07 23:43:13

お礼

有難うございます。

投稿日時 - 2007-02-09 22:20:13

あなたにオススメの質問