- 締切済み
エクセルで前年同日・前月同日を呼び出したい
エクセルで、当月の日毎の売上データを作成しています。 比較をするために、前年同日の売上をB2に、前月同日の売上をC2に呼び出したいのですが、どのような関数を使用すれば良いでしょうか。 sheet1 A列に前年度の日々の売上 sheet2 A列に前月の日々の売上 が入っています。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
今月データのシートの名称は? Sheet3とする。 Sheet3で Sheet3の日付の 前月同日、前年同月同日は 例データ A2:C3 A列 B列 C列 2009/12/13 2009/11/13 2008/12/13 2010/1/13 2009/12/13 2009/1/13 B2の式は =DATE(YEAR(A2),MONTH(A2)-1,DAY(A2)) C2の式は =DATE(YEAR(A2)-1,MONTH(A2),DAY(A2)) で出る。1月でも-1は前年12月にしてくれる。 その値(セルの値は日付シリアル値で正整数)で 前月シート 前年同月のシートを対象に VLOOKUP関数で(しぇえt1、Sheet2の)日付該当行を探し、該当行の売上列の値を採ってくる。 それはINDEX関数、MATCH関数を使う。 注意としては、他シートなのでSheet1!やSheet2!をセル番地の前にかぶせる。 ーー >どのような関数を・・ DATE VLOOKUP(またはMATCH) INDEX の3つの関数を使う。 ーー 日付が文字列だと少しさらに複雑化する。 エクセルの質問にはバージョンを書くこと(今回は影響なさそうだが)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 投稿した後で質問を読み返してみると C2セルには 前々年の同日ではなく、前月の同日でしたね? C2セルに =IF(A2="","",INDEX(Sheet1!$A$2:$A$1000,MATCH(EDATE(A2,-1),Sheet1!$B$2:$B$1000,0))) 結局、前月だとEDATE関数の「-24」の部分を「-1」に替えるだけです。 どうも何度も失礼しました。m(__)m
- hallo-2007
- ベストアンサー率41% (888/2115)
sheet1 A列に前年度の日々の売上 sheet2 A列に前月の日々の売上 A列は、金額? 日付はどこに? 通常 A B 日付 金額 ・・・ とデータが並んでいるのであれば、大丈夫でしょうが? ましてや、Sheet1があればSheet2はなくても大丈夫。 仮に A B C D 日付 金額 前月同日 前年同日 と準備して C列には =DATE(YEAR(A2),MONTH(A2)-1,DAY(A2)) D列は =DATE(YEAR(A2)-1,MONTH(A2),DAY(A2)) で求められますので、後はVLOOKUP関数と組み合わせれば金額が出ます。 (もちろん、C列は最初の1月、D列は最初に1年はエラー表示されますが) この手の質問の場合 12月31日の1月前は 11月31日がありません、 この様な場合はどうするのでしょうか。 売上を比較するのに前月同日と比較するといった分析は余り聞いたことがありません。 先月が土日祝日、今月が平日日であれば比較しても意味がないように思います。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 参考になるかどうか判りませんが・・・ 一例です。 ↓の画像で説明させていただくと Sheet1が前々年・Sheet2が前年にしています。 Sheet3のB2セルに =IF(A2="","",INDEX(Sheet2!$A$2:$A$1000,MATCH(EDATE(A2,-12),Sheet2!$B$2:$B$1000,0))) C2セルに =IF(A2="","",INDEX(Sheet1!$A$2:$A$1000,MATCH(EDATE(A2,-24),Sheet1!$B$2:$B$1000,0))) という数式を入れ、C2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、EDATE関数を使っていますので 当方使用のExcel2003以前のバージョンでは メニュー → ツール → アドイン → 「分析ツール」にチェックを入れる必要があると思います。 以上、参考になれば幸いです。m(__)m
- osaruye
- ベストアンサー率33% (8/24)
こちらを参考にされてはいかがでしょうか http://www.relief.jp/itnote/archives/002862.php