- ベストアンサー
EXCELで毎分値を足す方法
- EXCEL2007を使用しています。1分ごとに事前に決まっている値を足し続ける方法を教えてください。
- 9時から11時までの間、1分ごとに決まった値をB2セルに足し続けたいです。そして、11時まで計算したら、12時半から15時までさらに足し続けたいです。
- VBAの上級者ではないため、ワークシート関数だけで解決する方法も教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ワークシートを開き、 1.開発メニューから、VisualBasicを呼び出します。 2.メニューから、挿入、標準モジュール、で出てきた白い広い部分に以下のコードをコピペします。 Sub test01() With Sheets("Sheet1").Range("A1") .Value = Time .NumberFormatLocal = "h:mm:ss" End With Application.OnTime Now + TimeValue("0:00:01"), "test01" End Sub 3.ワークシートへもどります。 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行します。 これでSheets("Sheet1")のA1に毎秒ごとに時刻が表示されます。 ここまでできたら、A1,B1,C1,D1に以下の時刻を入れ、 09:00 11:00 12:30 15:00 F1に以下の数式を入れます。 =IF(A1<B1,0,IF(A1<C1,HOUR(C1-A1)*60+MINUTE(C1-A1),IF(A1<D1,HOUR(C1-B1)*60+MINUTE(C1-B1),IF(A1<E1,HOUR(C1-B1)*60+MINUTE(C1-B1)+HOUR(E1-A1)*60+MINUTE(E1-A1),HOUR(C1-B1)*60+MINUTE(C1-B1)+HOUR(E1-D1)*60+MINUTE(E1-D1))))) A1に3を入れて、B1に以下の数式を入れます。 =A2*F1 ちなみに、その時の時刻が、9:00以降前だったら、エラーになりますのでご注意下さい。 マクロの許可や、実行を伴うエクセルファイルの保管や起動は、マクロ操作に慣れていないとかなり面倒なので、頑張って下さい。 ファイルの保存は、拡張子が.xlsmになります。
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
>もし比較的簡単にワークシート関数だけでできるようでしたら、そちらも教えてください。 関数で表示するなら、たとえば以下のような数式を入力します。 =INT((MIN(NOW()-TODAY(),"11:00"*1)-"9:00")*24*60+((MIN(NOW()-TODAY(),"15:00"*1)-"12:30")*24*60))*A2 上記の数式は、どこかのセルを変更した場合に自動的に計算しなおしますが、もしシートに変更がない場合はF9キーを押して再計算する必要があります。 また、9:00以降の数式ですので、9:00以前の場合はマイナスの値になりますので、以下のようにIF関数などを使って「0」になるようにしてください。 =(元の数式)*(NOW()-TODAY()-"9:00">0)
お礼
MackyNo1 様 ご回答ありがとうございます。 式の解説もわかりやすかったです。 この度は、ありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
VBAを使わない方法 D2:F2セルに 0 F3セルに E3-D3 下へオートフィル 現在時刻の取得 B1セルに =TEXT(NOW(),"h:m:s")*1 B2セルに =IF(MATCH(B1,D:D)=MATCH(B1,E:E),INT(1440*SUM(F1:INDEX(F:F,MATCH(B1,E:E))))*A2, INT(1440*SUM(F1:INDEX(F:F,MATCH(B1,D:D)-1),B1-LOOKUP(B1,D:D)))*A2) 開始時刻と終了時刻外ならば 該当する時間(F列)まで足して分に換算(*1440)し、 整数化を行って×A2セル 開始時刻と終了時刻内ならば、該当する時間(F列)の一つ前までと 現在時刻から該当する開始時刻を引いて足す。 そして、分に換算(*1440)し、整数化を行って×A2セル データ-外部データの取り込み-新しいWebクエリ (インターネットにつながっていない場合は、「新しいデータベースクエリ」で 自分のブックを参照する手段もあります) 添付図のようにチェックして[取り込み] プロパティで 定期的に更新する 1分ごと [OK] ●新規ワークシート そのシートは非表示にしてもよい 書式は適宜変更してください
お礼
CoalTar 様 ご回答ありがとうございます。 式の解説がとてもわかりやすかったです。 また、添付図もわかりやすかったです。 この度は、ありがとうございました。
- nattocurry
- ベストアンサー率31% (587/1853)
excel vba タイマー割り込み とか excel vba application.ontime とかでネット検索してみてください。
お礼
nattocurry 様 調べ方を教えていただきまして、ありがとうござます。
お礼
aokii 様 ご回答ありがとうございます。 非常に親切かつ丁寧に解説されていて、VBA初心者の私でも良くわかりました。 この度は、本当にありがとうございました。