アプリ版:「スタンプのみでお礼する」機能のリリースについて

月の利用料の算定表を作っています。
一部、関数の使用方法がわからない箇所があり、困っています。
わかる方教えてください。よろしくお願いします。

シート1は算定表、シート2は単価表です。
シート1に単価を表示させたいセルがあります。
シート2には列に区分1~5、行には4月~3月の月が入力されている、区分と月に応じた金額(単価)がわかる表を作成しました。
シート1上にシート2に対応する、区分コード(行数)と月コード(列数)を作成して、OFFSET関数を使用して検索したのですが、うまく表示できません。

私としては、
シート1のあるセルに、シート1に入力した区分コードと月コードに対応する、シート2の金額を表示させたいのですが…
使用方法が間違っているのでしょうか?
そもそも、使用した関数が間違っているのでしょうか?
もしくは、他の関数と組み合わせ使用すればいいのでしょうか?

説明が下手ですみません。こんな内容でも、わかったよ!という方がいらっしゃいましたら、お願いします。

A 回答 (2件)

 今仮に、Sheet2のB1~M1に月が並んでいて、A2~A6に区分が並んでいて、Sheet1のA1セルに区分を、Sheet1のB1セルに月を入力すると、Sheet1のC1セルに単価が表示されるものとします。


 その場合、OFFSET関数、INDEX関数、VLOOKUP関数、HLOOKUP関数などが使えます。
 基本的なやり方としては、Sheet1のC1セルに入力する関数としては、以下の様なものがあります。

=IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",OFFSET(Sheet2!$A$1,MATCH(A1,Sheet2!$A$2:$A$6,0),MATCH(B1,Sheet2!$B$1:$M$1,0)))

=IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",INDEX(Sheet2!$B$2:$M$6,MATCH(A1,Sheet2!$A$2:$A$6,0),MATCH(B1,Sheet2!$B$1:$M$1,0)))

=IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",VLOOKUP(A1,Sheet2!$A$1:$M$6,MATCH(B1,Sheet2!$A$1:$M$1,0),FALSE))

=IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",HLOOKUP(B1,Sheet2!$A$1:$M$6,MATCH(A1,Sheet2!$A$1:$A$6),FALSE))

 上記の関数は、区分名や月名が数字ではない場合や、並び方が順不同である場合にも有効な方法ですが、
もし、区分が1から始まる整数のみで、且つ、Sheet2のA列に1から順番に、欠番無しに並んでいる場合に限れば、次の様に簡略化する事が出来ます。(ANo.1様の御回答も、列と行が入れ替わってはいるものの、同様に、区分が1から順番に欠番無しに並んでいる必要があります)

=IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",HLOOKUP(B1,Sheet2!$A$1:$M$6,A1+1,0))

 尚、上記の関数中の

IF(OR(COUNTIF(Sheet2!$A$2:$A$6,A1)=0,COUNTIF(Sheet2!$B$1:$M$1,B1)=0),"",

という部分はA1セルやB1セルに、何も入力されていない場合や、「13月」等の誤った値が入力された際に、エラーが表示されて、見栄えが悪くなる事を防ぐための処理を行う部分です。
 もし、未入力の際にエラーが出ても構わない場合には、次の様な関数になります。

=HLOOKUP(B1,Sheet2!$A$1:$M$6,A1+1,0)
    • good
    • 0
この回答へのお礼

お礼が遅くなりましてすみません。

エクセル関数はいろいろな組み合わせで活用できるんですね。
頑張ってみようと思います。
ありがとうございました。

お礼日時:2011/05/03 14:26

OFFSETでできます。


シート2のA~E列に区分1~5、1~12行目に4月、5月、…12月、1月、2月、3月のデータが順に入っているとします。
Sheet1の セルA2 に月、 B2に区分が入っている場合、
=OFFSET(Sheet2!$A$1,MOD(A2-1+9,12),B2-1)
としたらいいです。
    • good
    • 0
この回答へのお礼

お礼が遅くなりましてすみません。

いただいた回答を頼りにいろいろ試してやってみようと思います。
ありがとうございました。

お礼日時:2011/05/03 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!