- ベストアンサー
エクセルの関数での処理方法
下記のようなデーターベースがあります 列 A B C D E F 行 4/1 4/10 4/20 1 青 100 青 1100 青 11000 2 黄色 200 黄色 1200 黄色 12000 3 緑 300 緑 1300 緑 13000 4 赤 400 赤 1400 赤 14000 5 紫 500 紫 1500 紫 15000 6 黒 600 黒 1600 黒 16000 7 白 700 白 1700 白 17000 8 茶 800 茶 1800 茶 18000 9 水色 900 水色 1900 水色 19000 10 朱色 1000 朱色 2000 朱色 20000 上の図では分かりにくいかも知れませんが、 A列には上から4/1、青、黄・・・ B列には上から空白、100、200・・・ C列には上から4/10、青、黄・・・ D列には上から空白、1000、2000・・・ E列には上から4/20、青、黄・・・ F列には上から空白、10000、20000・・・と並んでます。 4/1の項目は4/9までの値段 4/10の項目は4/19までの値段 4/20の項目は4/30までの値段になります。 4/5、4/10/、4/15、4/25の白の値段を調べるにはどのようにすればいいでしょうか? 4/5、4/10、4/15、4/25のそれぞれに VLOOKUP関数の式を入れて調べるんではなく ひとつの式を入れて調べる日付のセルの値だけが 変わるだけで 全部同じ式で反映されるようにしたいんですが・・・ できますか? VOOLUP関数やIF関数を組み合わせてやってるんですが うまくいきません。 それともマクロでないとできないですか? よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
A,C,D列が日付以外が同じであれば =VLOOKUP(色,$A$2:$F$11,MATCH(日付,$A$1:$E$1)+1,0) 色、日付の部分を実際のセルにしてください A,C,D列の色がランダムな場合 =VLOOKUP(色,OFFSET($A$2:$B$11,,MATCH(日付,$A$1:$E$1)-1),2,0)
その他の回答 (6)
そうなると、検索のキーになるものを予め取り出しておかないと無理でしょう。 A列の内容が変更できないもの(社内的に固定されている)である場合は、シートに対する工夫とマクロが必要でしょう。
やはり、ありましたか... そこで気になったのですが、 > たとえば赤ブラックの時なども赤の検索結果を たとえば「赤ブラック」と「赤ホワイト」があった場合、価格は同じなのでしょうか。 もし、それぞれの価格が異なるんでしたら、検索自体意味がありません。ひょっとするとまだ「隠された事実」があるのでしょうか? もし価格が同じなら、頭の色を取り出す必要があるので、 1.色の名前の文字数を同じにするか、 2.B列に頭の色を抜き出す計算式を置く必要があります。 どちらにしても、もう少し具体的な内容をお話していただかないと...
[No.2回答に対する補足]に対するコメント、 質問は小出しにしないで、最初から「検索したい色の後ろに文字や数字が付いた場合」で質問すべきです。 それから、気になっていたのだけど、「色」の各列は上から下まで全て同じデータですか?もしそうなら、「色」の列は左端列だけでよろしいのでは? 「上から下まで全て同じ」ではなく、色データもテンデンバラバラなら回答もガラリと変わります。
補足
質問の仕方が悪くて申し訳ありませんでした。 今後はこのようなことが無いように気をつけます。 上から下まで色データーは同じデータですので 左端列だけになります。 よろしくお願い致します。
やはりこのままの構成だと苦しいので... 1. 1行目に行を追加し、A1セルに「2006/4/1」と入力します。 2. C列とE列を削除します。 3. A2セルに「色」と入力 4. B2セル(現在4月1日と入力されているセル)に、=MONTH($A$1)&"月1日"と入力 5. C2セル(現在4月10日と入力されているセル)に、=MONTH($A$1)&"月10日"と入力 6. D2セル(現在4月20日と入力されているセル)に、=MONTH($A$1)&"月20日"と入力 7. F2セルに「色」と入力 8. G2セルに「日付」と入力 10. H2セルに「検索結果」と入力 11. H3セルに =DGET(A2:D12,MONTH(G3)&"月"&IF(DAY(G3)>29,20,IF(DAY(G3)<10,1,INT(DAY(G3)/10)*10))&"日",F2:F3) と入力 この状態で、 F3セルに検索したい色を、G3セルに検索したい日付を入力します。 これで、H3に検索結果が表示されます。
補足
追加の質問なのですが、 検索したい色の後ろに文字や数字が付いた場合でも 同じように検索結果を反映したいんですが 検索方法はありますか? たとえば赤ブラックの時なども赤の検索結果を 反映させたいんですが・・・ よろしくお願いします。
H I J K L M N 1 白 4/5 4/10 4/25 2 4/5 700 白 700 1700 17000 3 4/10 1700 4 4/25 17000 I2: =VLOOKUP(I$1,A$2:F$11,MATCH(H2,A$1:F$1)+1,FALSE) L2: =VLOOKUP($K2,$A2:$F11,MATCH(L1,$A1:$F1)+1,FALSE)
補足
追加の質問なのですが、 検索したい色の後ろに文字や数字が付いた場合でも 同じように検索結果を反映したいんですが 検索方法はありますか? たとえば白ブラックや赤オレンジの時なども 白や赤の検索結果を反映させたいんですが・・・ よろしくお願いします。
- HAL007
- ベストアンサー率29% (1751/5869)
>>VOOLUP関数やIF関数を組み合わせてやってるんですが うまくいきません。 Vlookup等を使うには、データの持ち方に問題があり上手く行くとは思えません。 A列には色と日付、B列に値段を入れればVlookup関数で解決します。
補足
>>A列には色と日付、B列に値段を入れればVlookup関数で解決します。 上記のようなデーターにした場合、 日付と色で検索する場合どのようにすれば うまくいきますか? ぜひ、教えてください。 お願いします。
補足
質問の仕方が悪くて申し訳ありません。 価格は同じになります。 色の後ろに付く文字や数字の数は決まっていません。 また、色も赤や黒だけでなくオレンジやピンクといたものでこちらも文字数は全てが同じではありません。 よろしくお願い致します。