[[20070715123002]] 『IF関数とVLOOLUP関数の応用』(ゆうき) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数とVLOOLUP関数の応用』(ゆうき)

今回初めてご質問させて頂きます。

 <シート1>
青森産 りんご @100円
    みかん @80円
長野産 りんご @120円
    みかん @90円

 <シート2>
日付 商品名    個数 単価
7/1   青森産りんご   10    ?
7/2   長野産みかん    8    ?
7/3   青森産みかん   20    ?
7/4   長野産りんご    7    ?

 このときの単価を関数で何とか出したいのですが、
何かいい方法はありませんか?
宜しく御願いします。


 例えば、シート1の単価を
 セルに数値のみ入力する場合
 作業列を作って
	[A]      	[B]	[C]	[D]	[E]	[F]
[1]	作業列  	産地	商品		単価	
[2]	青森産りんご	青森産	りんご	@	100	円
[3]	青森産みかん		みかん	@	80	円
[4]	長野産りんご	長野産	りんご	@	120	円
[5]	長野産みかん		みかん	@	90	円

 検索したいシート2の商品名と同じ言葉を作っておけば
 VLOOKUP関数が簡単に使えると思いますよ。
 A2セルに
=IF(B2="",B1&C2,B2&C2)
 下にコピー で、作れます。

 (HANA)

 HANAさんの仰る通り、データのあるシートの変更や作業列を作れば簡単なことだとは思いますb
 
 でも一応、挑戦してみました。
 上手くいくかどうか、検証不足かもしれませんが、、、
 
 Sheet2 D2 =VLOOKUP(MID(B2,FIND("産",B2)+1,LEN(B2)),
            INDIRECT("Sheet1!B"&MATCH(LEFT(B2,FIND("産",B2)),Sheet1!$A$1:$A$5,)&":C"&COUNTA(Sheet1!B:B)),2,)
  以下コピー
 (キリキ)(〃⌒o⌒)b

 こんばんは〜♪

 ホントはシート1のA列の産地は、なるべくならすべて埋めた方が
 集計には向いているのですが。。。
 式も易しくなりますし。。。

 こんな表の場合です

  Sheet1↓
 ┌─┬────┬────┬────┐
 │  │   A    │   B    │   C    │
 ├─┼────┼────┼────┤
 │ 1│産地    │商品名  │単価    │
 ├─┼────┼────┼────┤
 │ 2│青森産  │りんご  │     100│
 ├─┼────┼────┼────┤
 │ 3│        │みかん  │     200│
 ├─┼────┼────┼────┤
 │ 4│        │ぶどう  │     300│
 ├─┼────┼────┼────┤
 │ 5│長野産  │みかん  │     400│
 ├─┼────┼────┼────┤
 │ 6│        │りんご  │     500│
 └─┴────┴────┴────┘

 別シート ↓

 ┌─┬────┬──────┬────┬────┐
 │  │   A    │     B      │   C    │   D    │
 ├─┼────┼──────┼────┼────┤
 │ 1│日付    │商品名      │個数    │単価    │
 ├─┼────┼──────┼────┼────┤
 │ 2│     7/1│青森産りんご│      10│     100│
 ├─┼────┼──────┼────┼────┤
 │ 3│     7/2│青森産みかん│       8│     200│
 ├─┼────┼──────┼────┼────┤
 │ 4│     7/3│長野産りんご│      20│     500│
 ├─┼────┼──────┼────┼────┤
 │ 5│     7/4│青森産みかん│       7│     200│
 ├─┼────┼──────┼────┼────┤
 │ 6│     7/5│青森産ぶどう│       5│     300│
 ├─┼────┼──────┼────┼────┤
 │ 7│        │            │        │        │
 └─┴────┴──────┴────┴────┘

 D2セルへ
 =INDEX(Sheet1!C:C,MATCH(RIGHT(B2,LEN(B2)-FIND("産",B2)),
INDEX(Sheet1!B:B,MATCH(LEFT(B2,FIND("産",B2)),Sheet1!A:A,0)):
INDEX(Sheet1!B:B,COUNTA(Sheet1!B:B)),0)+MATCH(LEFT(B2,FIND("産",B2)),
Sheet1!A:A,0)-1)

 下にコピーします。。。

 エラー処理はしていませんので。。。

 ★追伸で〜す。。。
 別シートは、以下の様なレイアウトにされた方が
 良いと思います。。。
 式も易しくなります。。。

 ┌─┬────┬──────┬──────┬────┬────┐
 │  │   A    │     B      │     C      │   D    │   E    │
 ├─┼────┼──────┼──────┼────┼────┤
 │ 1│日付    │産地        │商品名      │個数    │単価    │
 ├─┼────┼──────┼──────┼────┼────┤
 │ 2│     7/1│青森産      │りんご      │      10│     100│
 ├─┼────┼──────┼──────┼────┼────┤
 │ 3│     7/2│青森産      │みかん      │       8│     200│
 ├─┼────┼──────┼──────┼────┼────┤
 │ 4│     7/3│長野産      │りんご      │      20│     500│
 ├─┼────┼──────┼──────┼────┼────┤
 │ 5│     7/4│青森産      │みかん      │       7│     200│
 ├─┼────┼──────┼──────┼────┼────┤
 │ 6│     7/5│青森産      │ぶどう      │       5│     300│
 ├─┼────┼──────┼──────┼────┼────┤
 │ 7│        │            │            │        │        │
 └─┴────┴──────┴──────┴────┴────┘

 ★この場合式は
 E2セルへ
 =INDEX(Sheet1!C:C,MATCH(C2,INDEX(Sheet1!B:B,MATCH(B2,Sheet1!A:A,0)):
INDEX(Sheet1!B:B,COUNTA(Sheet1!B:B)),0)+MATCH(B2,Sheet1!A:A,0)-1)

 下にコピーします。。。

 ご参考にどうぞ。。。

 。。。Ms.Rin〜♪♪


 HANAさん、大変分かりやすい説明ありがとうございます。
 キリキさん、ご親切な回答ありがとうございます。
 最後に、Rinさん、ご丁寧な回答で大変参考になりました。
 みなさん、本当にありがとうございます。
 今回が初投稿でしたが、みなさんいいひとばかりなので、
 また分からない点があれば、ご質問させて頂きたいと思います。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.