• ベストアンサー

エクセルで料金表をサーチしての料金検索

エクセルで以下のようなことをしようと思っています。 シートAに「業務内容」「開始時間」「終了時間」を入力。 「業務内容」でシートを検索。 そのシート内の縦に「開始時間」横に「終了時間」があり、それに該当するセルの料金をシートAの「利用料金」に表示する。 参考になるところなどありましたらお願いします。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

#1のjindonです。 1.各シート(料金リスト)のリスト範囲にシート名と同じ名前をつけます。 方法: 料金リストの範囲を選択して(反転させる) 挿入→名前→定義 で名前を入力 2.シートAのD2に =IF(COUNTA(A2:C2)=3,INDEX(INDIRECT(A2),MATCH(B2,INDIRECT(A2&"!$A:$A"),TRUE),MATCH(C2,INDIRECT(A2&"!$1:$1"),TRUE)),"") で試してください。

noname#12381
質問者

お礼

できました! もう、感動ものです!! ありがとうございました。

その他の回答 (2)

回答No.2

ははぁ、単純な時間単価でなく、開始時刻と終了時刻の組み合わせに よって色々と例外や特例の入り交じった、歴史的な経緯の固まりなん かでよくあるパターンですね。 まず、業務内容別に料金表を作りますが、開始時刻・終了時刻のラベ ルは、「これを過ぎたら」形式にしてください。00:00から始まって 23:00で終わるようなやつです。そして横軸の終了時刻の下に1行追加 して、2, 3, 4, 5, …と数値を入れておいてください。最後に料金表 に業務内容で「名前を定義」しておきます。 で、 =vlookup(開始時刻, indirect(業務内容), hlookup(終了時刻,indirect(業務内容),2,TRUE),TRUE) で出来るはずです。

noname#12381
質問者

補足

教えて頂いた方法でやってみましたがうまくいきません。。。 シートAに、 A2=業務内容 B2=開始時間 C2=終了時間 D2=料金 D2に =VLOOKUP(B2,INDIRECT(A2),HLOOKUP(C2,INDIRECT(A2),2,TRUE),TRUE) シートBの 縦に開始時間を 横に終了時間を。 終了時間の下には2~の数値を入れました。 シート名は業務内容と同じ。 うまくいきません。。。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.1

おそらく、 LOOKUP, INDEX, MATCH 関数等で対応できると思いますが、 >「業務内容」でシートを検索。 シートとは料金リスト? イメージがつかめません

noname#12381
質問者

補足

業務内容によって料金が異なるので、 料金表(ワークシート)を分けています。 入力された業務内容に該当するワークシート名をマッチングさせて、 開始時間、終了時間から料金を引っぱってきたいと思っています。

関連するQ&A

専門家に質問してみよう