[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の表から、1つのセルに価格を表示させたいです。』(マキシフォード)
 皆さん初めまして。よろしくお願いします。
今回、下記の表から、品目とサイズをマニュアル入力し、価格を自動表示させたいのですが、
IFとVLOOKUPと併せて数式を作成したのですが、うまくいきませんでした。
(IFは連続確か7回でしたっけ?それが原因だと思います。)
いい数式や関数、方法がございましたら、御回答頂けます様お願い申し上げます。
※今回、普通ではありえませんが、ジュースの価格はすべて異なっています。
 わかりやすくする為、ジュースを用い、表を作りました。
 実際には更に多い表を用い、すべての数値(ここでいう価格)が異なる状態での回答を出したいと思います。
     品目				価格		
サイズ A B C D E F G H 1 コーラ スポーツドリンク 野菜ジュース コーヒー 2 S 100 S 120 S 150 S 130 3 M 150 M 180 M 250 M 200 4 L 200 L 250 L 350 L 310 5 水 オレンジジュース 栄養ドリンク ココア 6 S 90 S 110 S 170 S 140 7 M 140 M 170 M 290 M 210 8 L 190 L 230 L 380 L 330
上の表で、「コーラ」がA1セル、「スポーツドリンク」がC1セル・・・とあるものとして、
      A
 10  ココア							
 11    L							
 12    330
 A12=IF(COUNTIF(A1:H1,A10)=0,0,INDEX(A2:H4,MATCH(A11,A2:A4,0),MATCH(A10,A1:H1,0)+1))
    +IF(COUNTIF(A5:H5,A10)=0,0,INDEX(A6:H8,MATCH(A11,A6:A8,0),MATCH(A10,A5:H5,0)+1))
こんな感じで一応できますが。 商品やサイズが無記入や誤記入の場合のチェックはしていません。 (sato)
A B C 1 種類 サイズ 価格 2 コーラ S 100 3 コーラ M 150 4 コーラ L 200 5 スポーツドリンク S 120 6 スポーツドリンク M 180 7 スポーツドリンク L 250 8 野菜ジュース S 150 9 野菜ジュース M 250 10 野菜ジュース L 350 11 コーヒー S 130 12 コーヒー M 200 13 コーヒー L 310 14 水 S 900 15 水 M 140 16 水 L 190 17 オレンジジュース S 110 18 オレンジジュース M 170 19 オレンジジュース L 230 20 栄養ドリンク S 170 21 栄養ドリンク M 290 22 栄養ドリンク L 380 23 ココア S 140 24 ココア M 210 25 ココア L 330
回答ではありませんが、こういった表にすることをお勧めします。 ご提示の表は、人間には見やすくてもエクセルには見にくい表です。 必要ならこの表から作り出せます。 (純丸)(o^-')b
 または、
	A	 	B         C        D
  1 種類	 	         S         M        L
  2 コーラ                100       150      200
  3 スポーツドリンク      120       180      250
       ・                   ・    ・   ・
       ・                   ・    ・   ・
       ・                   ・    ・   ・
こんな感じの表でもいいかもよ。 (sato)
 satoさん、純丸さん、御回答頂きまして、本当にありがとうございます☆
今回出題させて頂きましたマキシフォードです。
お手数をお掛けしましてすいませんでした。m(_ _)m
お陰様で今回の数式等を理解することが出来ました☆
又、恐縮ですが、もしよろしければ、今回の内容で、追加の不明点をお伺い致したいのですが、
お答え頂きました出題の内容と同様で、サイズを消去し、
種類と数値を入力しましたら、
種類 コーラ
数値 120
=価格 100
   A     B      C      D
1 コーラ スポーツD 野菜ジュース コーヒー
2  100   120    150     130 
3  150   180    250     200
4  200   250    350     310
5
6 水 オレンジジュース 栄養ドリンク ココア   
 
7 90     110     170     140
8 140    170     290     210
9 190    230     380     330  
と、表の価格そのものを(※VLOOKUPを使った時の近似値ですね。今回でいうと数値は所持金と思って下さい。)を、
複数の表から表示させたいのですが…
お手数をお掛けしてすいませんが、よろしければ御返答頂けましたら幸いです。 
どうしても表を二つにしたいみたいですね・・・。
     A            B               C             D            
 1 コーラ	  スポーツドリンク  野菜ジュース     コーヒー
 2   100         120             150           130
 3   150         180             250           200
 4   200         250             350           310
 5  水	オレンジジュース	 栄養ドリンク	ココア
 6    90         110             170           140
 7   140         170             290           210
 8   190         230             380           330
 9			
10  種類       コーラ		
11  数値         190		
12  価格         150
こんな感じであれば、
 B12=IF(COUNTIF(A1:D1,B10)=0,0,VLOOKUP(B11,OFFSET(A1,1,MATCH(B10,A1:D1,0)-1,3,1),1))
    +IF(COUNTIF(A5:D5,B10)=0,0,VLOOKUP(B11,OFFSET(A5,1,MATCH(B10,A5:D5,0)-1,3,1),1))
ではいかが? (sato)
     A            B               C             D            
 1 コーラ	  スポーツドリンク  野菜ジュース     コーヒー
 2   100         120             150           130
 3   150         180             250           200
 4   200         250             350           310
 5
 6  水	オレンジジュース	 栄養ドリンク	ココア
 7    90         110             170           140
 8   140         170             290           210
 9   190         230             380           330
10			
11  種類       コーラ		
12  数値         190
13  価格     150
A1:D4とA6:D9を選択し、挿入>名前>作成>「上端行」にチェックしてOKをクリック。 B13セルに、=VLOOKUP(B12,INDIRECT(B11),1) と入力。(エラー処理無し) (純丸)(o^-')b
純丸さんの方法、カッコいいですね。 メモしときます。 (sato)
セル範囲の名前付けとINDIRECT関数の組み合わせは、けっこう応用範囲が広いです。 例えば↓なんかもいい例だと思います。 [[20051024111302]]『リストから選択』(若葉マーク) (純丸)(o^-')b
 satoさん、純丸さん、今回も御回答頂きまして、本当にありがとうございます☆
依頼させて頂いたマキシフォードです。
お陰様で今回、教えて頂いた方法で、計算書を作る事が出来ました☆
 これからはこちらのサイトにて勉強させて頂き、レベルを上げていきたいと思います☆
本当にありがとうございました☆m(__)m
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
 Modified by kazu.