• 締切済み

エクセルの関数に詳しい方教えてください。

月の利用料の算定表を作っています。 一部、関数の使用方法がわからない箇所があり、困っています。 わかる方教えてください。よろしくお願いします。 シート1は算定表、シート2は単価表です。 シート1に単価を表示させたいセルがあります。 シート2には列に区分1~5、行には4月~3月の月が入力されている、区分と月に応じた金額(単価)がわかる表を作成しました。 シート1上にシート2に対応する、区分コード(行数)と月コード(列数)を作成して、OFFSET関数を使用して検索したのですが、うまく表示できません。 私としては、 シート1のあるセルに、シート1に入力した区分コードと月コードに対応する、シート2の金額を表示させたいのですが… 使用方法が間違っているのでしょうか? そもそも、使用した関数が間違っているのでしょうか? もしくは、他の関数と組み合わせ使用すればいいのでしょうか? 説明が下手ですみません。こんな内容でも、わかったよ!という方がいらっしゃいましたら、お願いします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.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)

ouma0619
質問者

お礼

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

回答No.1

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) としたらいいです。

ouma0619
質問者

お礼

お礼が遅くなりましてすみません。 いただいた回答を頼りにいろいろ試してやってみようと思います。 ありがとうございました。

関連するQ&A

  • エクセルの関数

    エクセルの関数について教えてください。 まずシート2に、1月から12月まで金額が入る表を作ります。 そして、その金額の発生は「修理」と「購入」から発生するもので、金額の横にどちらかの項目を入力します。 シート1に月を記すセル(A1)を作成し、月を入力すると、その月の修理と購入の金額をそれぞれ出したいのです。 シート2の1月から12月の上に1から12までの数字をセルA2からA13まで入力します。 それで月ごとにHLOOKUP?関数でやろうと思います。 そして、修理か購入かをIF関数だと思うのですが、合ってますか?? また、二つの式をどう組み合わせたら良いのでしょうか?? 他に違う方法がありましたら教えてください。

  • エクセル関数について

    関数初心者です。教えてください。 1月から12月までのシートがあり、最後に合計のシートがあります。 全シート同じ表になり、金額を入力していくのですが、 最後の合計シートの月別に入力した同じセル上に1月から12月の合計を出したい場合は どのような関数、引数になるのでしょうか? どうぞ宜しくお願いします。

  • エクセルの関数での集計について

    エクセルで家計簿を作成しています。年間のカード使用履歴を1シートで管理してます。 B列に月(1~12)、G列に金額、I列に区分(飲食費など)が入力してあります。 別シート(各月ごと12シート)に各月ごと区分ごとのカード使用金額を集計したいのですが、やり方が分かりません。関数で出来るのでしょか。

  • Excelの関数に詳しい方、教えてください

    Excelの関数が得意な方、どうか教えて頂きたいことがあります。 会社の備品の、貸出し表を作成してほしいとボスに頼まれました。 作ったシートは添付したものとほぼ同じで、とても簡単なものです。 Sheet1に、備品と貸出し状態。 sheet2~ Sheet1にのせた備品の、貸出し帳(誰がいつ借りて、いつ返したかを入力)。        ひとつのSheetに、ひとつの備品の貸出し帳です。        履歴がずっと残ります。 このsheetで、以下のことができるようにしたいのです。 (1)Sheet1の「状態」のところには、貸出し帳に何も入力がない場合は、常に貸出し可と表示される (2)貸出し帳の「貸出し日」に入力が入るとsheet1の「状態」は「貸し出し中」に変化する。 (3)備品が返却され、「返却日」に入力が入ると、またsheet1の「状態」はまた、貸出し可に戻る。 以下この繰り返し。 難しいのですが、これは関数で対応可能でしょうか? インターネットでいろいろ調べて、この関数使えそうかな?と思ったのをいろいろ試してますが、 なかなかうまくいきません。 (たとえば、Sheet2のセルC15に入力が入った場合のみ・・なら、うまくいくのですが、  私がやりたいのはセルC15以下のどこでも、入力が入ったら貸出し中に切り替わってほしいのです。そして、E15以下のどこでも、入力が入ったら貸出し中に戻ってほしいのです。 このあたりがうまくいきません。 複数セルを選択すると、とたんにエラーになります。 どなたか詳しい方、Sheet1の「状態」のセル(C3以下)に入れる計算式はどうなるのか、 教えて頂けると嬉しいです。    

  • Excelで関数を使って単価を表示したい

    会社で収支表を作成していますが、特定のセルに品物を入力すると隣のセルにその単価を自動的に表示する関数が知りたいのです。恐らく、IF関数で出来るとは思うのですが、中々思うように表示できません。VLOOKUPも必要なのでしょうか?なるべくIF関数だけのシンプルな関数で作成したいと思ってるのでが…どなかたお分かりになる方ご指導お願いします。

  • エクセルの関数に関して

    エクセルの関数で質問があります。Sheet1とSheet2とがあり、Sheet1のセルに数字を入力しEnterキーを押した際に、Sheet2に作成した表に入力されている数字のセルにジャンプする関数を御存じの方

  • Excel INDIRECT関数の使い方が分からない

    表という名前のSheetがあります。  A 4 1 5 2  : のように、表SheetのA4から下に連番で、    1~400まで数字がふってあります。 式という名前のSheetが式~式(399)まで、400Sheetあります。 400Sheetある式というSheetには表があり、入力されて文字は違いますが、表の配置は全く同じです。 式  のD6セルには 1。Q9セルには「あいうえお」と入力、 式(1)のD6セルには 2 Q9セルには「かきくけこ」と入力されています。 式Sheetが400枚あるので、D6セルには、400まで数字が連番で入力されています。 表SheetのA4セルが、もし空という前提で、1と入力した場合、式~式(399)までのSheetの中から一致した数字が合った場合、そのSheetのQ9のセルの値を返しなさい‥と関数を入れたいと思い、 「INDIRECT」関数を使用しました。 =INDIRECT("式(" & A4 & ")'!D6"  しかし、何度入力しても、REFと出てしまいます。 この関数を使用するのは初めてで、戸惑っています。 どうかご教授ください。

  • エクセルでどの関数を使用すればいいのかわからず困っています。

    エクセルの使い方についての質問です。 1つのセルに入れたデータを、 対応する全てのセルに反映させたいのですが、 どの関数を使えばいいのか、 または関数なしでも大丈夫なのかわかりません。 具体的に説明します。 シート名が3月というものがあります。 EXというシートでは、 3月のシートにある一覧表のあちこちから、 データを引っ張ってきているので、 ='3月'!A1 ='3月'!B1 のようなものが、あちこちで使われています。 来月になったら、4月というシートを作成します。 EXというシートの上部に月を入力するセルを設け、 そこで、4月と入力すれば、 EXというシートの3月の部分が全て4月に ='4月'!A1 ='4月'!B1 と、なるようにしようと考えているのですが、 どうしたらいいのでしょうか? 回答よろしくお願いいたします。

  • Office Excelでの関数を教えて下さい。

    Office Excelでの関数を教えて下さい。 1)シート内の各セルに入力された、単位の違う単価を同じものだけを集めて集計する計算式。 2)単位の違う単価を簡単に選択して入力する方法。 現状はExcel2007を使用していますが、2002から使用できる関数が知りたいです。

  • エクセルの関数を教えてください

    エクセルで(シート1)に日付を縦に3か月分ぐらい並べて違うシート(シート2)のセルに日付を入力します。 (シート2)で入力した日を(シート1)の日付の横のセルに●を表示させる事は関数で可能ですか? 例えば、(シート2)に【7月20日】と入力したら(シート1)の【7月20日】の横のセルに●を表示させたいんです。 仕事の報告書で毎日報告書を出す訳ではないので報告書を作った日(日付を入力した日)を一覧表で●が表示されていれば一目でいつ報告書を書いたか分かるようにしたいんです。 分かる方よろしくお願いします。

専門家に質問してみよう