- ベストアンサー
毎日の日計を別シートに自動で更新、反映させたい
- 毎日の入力されているデータの合計を自動で別シートに反映させたい方法はありますか?VBAやマクロは使用できません。TODAYやSUMを使用してシンプルに反映させることは可能でしょうか?
- 質問者は毎日のデータの合計を自動で別シートに反映させたいと考えています。しかし、VBAやマクロは使用できないため、TODAY関数やSUM関数を使用してシンプルに反映させる方法を知りたいとのことです。
- 質問者は日々のデータ入力の合計を自動で別シートに反映させたいと考えています。しかし、VBAやマクロの使用は制限されているため、TODAY関数やSUM関数などを使用してシンプルに反映させる方法を知りたいと述べています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一番簡単で分かり易い方法はお示しの表がシート1に有るとして、シート2ではシート1のA列のデータはそのままコピーして貼り付けます。その上でシート2のB列に合計を表示させるとしたらB2セルには次の式を入力して下方にドラッグコピーします。 =IF(SUM(Sheet1!B2,Sheet1!D2,Sheet1!F2)=0,"",SUM(Sheet1!B2,Sheet1!D2,Sheet1!F2)) B列、D列、F列にデータが入力されていなければ合計は0になりますのでその時は空白のセルにしています。 TODAYなどの関数を使ってシート2に表示させることはできますがその場合にはシート2でA列に並べた該当するその日の行だけにデータが表示されることになります。それでもよいのでしたらシート2のB2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2=TODAY(),SUM(Sheet1!B2,Sheet1!D2,Sheet1!F2),"") シート2でA列に日付を並べることなく単に今日に日の合計をA1セルに表示するのでしたら次の式をA1セルに入力します。 =SUM(INDEX(Sheet1!A:F,MATCH(TODAY(),Sheet1!A:A,0),2),INDEX(Sheet1!A:F,MATCH(TODAY(),Sheet1!A:A,0),4),INDEX(Sheet1!A:F,MATCH(TODAY(),Sheet1!A:A,0),6))
その他の回答 (2)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.2です。誤りがありましたので、訂正いたします。No.2 の INDIRECT 関数の数式中、「"d"」というのが 2 回出てきますが、もちろん 2 回目は「"f"」が正しいです。失礼しました。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
なぜ INDIRECT 関数だけが使用不可なのかよく分かりませんが…。未来の日付も表中に載っているから、とか?でも、もしそういう理由なら、未来の行を除いていちばん下を参照すればいいだけですね。 同じシートのどこかに次式を入力。次にそのセルを切り取って、表示したいシートに貼り付けてください。シートの参照が自動的に数式中に追記されます。 =sumif(a:a,today(),b:b)+sumif(a:a,today(),d:d)+sumif(a:a,today(),f:f) あるいは =offset(b1,max(index((a:a=today())*row(a:a),))-1,0)+offset(d1,max(index((a:a=today())*row(a:a),))-1,0)+offset(f1,max(index((a:a=today())*row(a:a),))-1,0) あるいは =indirect("b"&max(index((a:a=today())*row(a:a),)))+indirect("d"&max(index((a:a=today())*row(a:a),)))+indirect("d"&max(index((a:a=today())*row(a:a),))) SUMIF 関数の数式については、数式を入力後、セルの書式を「数値」など、「標準」以外に設定。「標準」だと、セルを編集モードにするたびに「日付」の書式が設定されたりして、ウザい。 F 列を合計したくない場合は、適当に削ってください。