[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の表から、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.