- 締切済み
初めてメールさせて頂きます。エクセルでの、時間の差分について教えて下さ
初めてメールさせて頂きます。エクセルでの、時間の差分について教えて下さい。宜しくお願いします。 マシーンの稼働率を算出する為に、LogData内のStart/Endの時間から差分を求め、その合計を、業務営業で割り、稼働率を求めたい所ですが、時間表示が、以下のように12H(AM/PM)になっています。 2010/10/18 Start 12:10 AM: 2010/10/18 End 1:23 PM 2010/10/18 Start 12:45 PM: 2010/10/19 End 3:01 AM このような行が、Monthlyベースで、多い時は900行前後有ります。今回、稼働率の精度を上げる為に、初めてLogDataをベースとした解析に取り組んでいますが、具体的な作業としては、"Start-AM","Start-PM","End-AM","End-PM"というワークシートに、フィルターで指定した各データを、それぞれのワークシートにコピーし、個々のワークシートにて、12Hから24Hに表示変換し、最終的に、それらを1つのファイルにマージさせています。また、マージさせたファイルから差分を求める際、0時をまたぐ場合のデータに関しては、別のワークシートにて、End時間にStart時間(0時までの残時間)を加算し、それを再度、マージしたデータに反映させて、最終的なSUMを求め、稼働率を算出しました。 以上の説明で、ご理解頂けるか不安ですが、解析工数を削減する為のアドバイスを頂きたく、深くお願い申し上げます。 不明な点が有りましたら、お知らせの程、宜しく願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
- kagakusuki
- ベストアンサー率51% (2610/5101)
- shinkami
- ベストアンサー率43% (179/411)
関連するQ&A
- VBで配列の差分を取りたいのですが
VB2005を使用しています。 エクセルに2つのシートには更新前と更新後のデータがあって、 それの差分を取るために一度2次元配列に確保してから処理を行い たいのですが、配列を入れ子にして順にループ、比較させると時間がかかりすぎてしまいます。 どうしたらよいのでしょうか?
- ベストアンサー
- Visual Basic
- 時間の算出について教えて下さい。
時間の算出について教えて下さい。 1日の稼動時間が8時間で、4時間使用した場合に値が50%になるような計算式を知りたいです。 ちなみに15分を0.25Hで入力します。 最小値は0.25Hです。 分かりづらいと思いますが、よろしくお願いします。
- 締切済み
- 経営情報システム
- 全シート内の差分比較とそのセル色塗りつぶしマクロ
Excelファイルデータの差分比較とそのセル塗りつぶしのマクロを作成したいのですが、今の自分には、下記のマクロでとどまっており、 マクロを実行するファイル内シートにデータをコピーしたり、 マクロ内でその都度、シート名の記載の変更、差分比較データ範囲の変更が必要になり、大変不便で困っております。 やりたい事は、マクロでユーザがExcelのファイルを選択出来て、 そのファイルの中の全シートのデータについて、差分比較とそのそのセルの塗りつぶしをして、塗りつぶしをファイルへ反映させて保存させることです。 どうか、お分かりの方がいらっしゃいましたら、ご教示をお願い出来ますと大変助かります。 各シート内のデータは、列、行共にほぼ同じフォーマットで値が入っています。 それらのシート内のデータで修正した箇所を見つける為、差分比較がしたいです。 例えば、シートが3つの場合は、 1つ目のシートは修正前のデータ、 2つ目のシート内は1つ目のシートの値を部分的に修正したものです。 3つ目のシート内のデータも、1つ目のデータの値を更に再修正したものです。 この3つのシート内のデータを差分比較したいです。 シートの数は、選択したファイルによって異なります。 Sub TEST1() Dim s1, s2 As Worksheet 'Worksheetsオブジェクト用 Set s1 = Worksheets("修正前S装置検索システム") '比較元シート名 Set s2 = Worksheets("修正後装置検索システム") '比較先シート名 Dim arr1 As Variant, arr2 As Variant arr1 = s1.Range("$A$2:$W$548").Value arr2 = s2.Range("$A$2:$W$548").Value For i = 1 To UBound(arr1, 1) For j = 1 To UBound(arr1, 2) If arr1(i, j) <> arr2(i, j) Then '塗りつぶし処理 s1.Cells(i + 1, j).Interior.Color = RGB(255, 0, 0) s2.Cells(i + 1, j).Interior.Color = RGB(102, 255, 51) End If Next Next End Sub
- ベストアンサー
- Visual Basic
- エクセルデータのリンク貼付(?)
ワークシート1は、データ入力用に使用し、月単位で初期化しています。 ワークシート2は、年間データ用に使用し、ワークシート1で入力したデータをすべて保持しています。 ワークシート1と2の形式・内容等は同じです ワークシート2は、使用上必ずデータの1行目(B6:H6)を表示させております。 行数が最終的には5000~7000行位になりますので、貼付位置を確定するのに大変な為、A列にオートフィルタで、入力済は1を未入力行は0を表示させ、A列が0の行を先頭に表示出来るようにしています。 今は、ワークシート1で入力したデータをワークシート2へ貼り付けていますが、このような設定で、下記のようにしたいのですが、ご指導のほどよろしくお願いいたします。 ワークシート1の入力したデータを、自動的にワークシート2の未入力行の先頭行に(値だけでも可)表示する。 ワークシート1 ワークシート2 (B6:H29)入力済 (B6:H29)入力済(表示済) 30行目入力 (B30:H30) 150行目へ (B150:H150) 31行目入力 (B31:H31) 150行目へ (B151:H151)
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで機械の稼働時間を管理
機械の稼働時間を管理したいのですが、機械の種類も多く稼働時間が機械によってさまざまです。 機械も途中でストップして、また再開したり、またストップしたりとあるので稼働時間計算がわかりません。 イメージが伝わるかわからないですが、教えて下さい。 VBAは現在勉強中です。 下記はイメージ ・機械の種類5種類1、2、3、4、5 ・A列に日付と時間(2012/9/7 2:00) ・B列に機械の番号(1号機) ・C列に状態(スタート・ストップ) A B C 1 2012/9/7 2:00 1 スタート 2 2012/9/7 5:00 2 スタート 3 2012/9/7 10:00 1 途中ストップ 4 2012/9/7 11:30 3 スタート 5 2012/9/7 13:50 2 再スタート 6 2012/9/7 10:00 1 途中ストップ 7 2012/9/7 13:50 2 再スタート 8 2012/9/8 16:00 1 停止 9 2012/9/8 17:00 2 停止 という感じにシート(sheet1)に入力していき、(sheet2)にそれぞれの現在の稼働時間や動いていなければ停止中という表示をしたいのです。 select caseを使って、機械ごとにまずは機械種類(B列)で一番下(新しい行)を検索して、その行の状態(C列)によってス停止なら「停止中」 スタートなら今の時間からスタートの時間合計を表示。 まではできるのですが、途中停止などが何度も入ったりするので、さっぱりわかりません。また、日をまたいだりしてるので時間計算もうまくできません。 説明が下手ですが、イメージ出来たかたは教えて下さい。 よろしくお願い致します。
- 締切済み
- Visual Basic
- エクセル 時間の計算
A(距離) B(速さ) C(所要時間) D(時間) 1 3.9 5 0:46 13:52? 2 14.7 5 2:56 16:49? 3 0.9 5 0:10 17:00 まず、C1の「所要時間」を出すのに、 「3.9/5/24」の計算で「h:mm」表示にし、0:46としました。 これを1分繰り上げて(「h:mm:ss」だと0:46:48になるので)0:47と 表示させるには、どうしたら良いですか? C3も同じく0:11の表示にしたいです。 そうやってCの「所要時間」を全て出した後、今度はD3の17:00から 逆算してD1のスタート時間を算出するにはどうしたら良いですか? 単純なD3ーC3の引き算だと、計算が合わなくなります。 意味わかって頂けたでしょうか。。 宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 時間の加算(その2)php
DBからある範囲の日付けの時間だけを取ってきて取ってきた時間の差分の累計を計算したいです。 例えば、4月16日から5月15日までのスタート時間とエンド時間を所得 させてエンド引くスタート、日々の差分を累計するようなことが実現したいです。 下記のように書いてデータだけは引っ張ってこれるようになったのですが加算方法が分かりません。ご教授いただけませんでしょうか? (ソース?php $ym = date("2022-04-22"); $tm = date("n",strtotime($ym));//月 $ty = date("Y",strtotime($ym));//年 $countdate=date('t',mktime(0,0,0,$tm,1,$ty));//4月の日数を計算 for ($i = 0; $i < $countdate; ++$i) { $d = mktime(0, 0, 0, $tm, 16 + $i, $ty); //日付ごとの配列のキー $dd = date('Y-m-d', $d); foreach($e_all as $e_time){ if (in_array($dd, (array)$e_time->date_time)) { echo $e_time->start_time; echo $e_time->end_time; }} } ?> 因みにechoで表示されたデータは 09:00:00 20:00:00 08:00:00 18:00:00 09:00:00 19:10:00 となっていて 順番に登録してある4/20 のスタート時間、エンド時間 4/21のスタート時間、エンド時間4/22のスタート時間、エンド時間 の並びで取れています。よろしくおねがいします
- ベストアンサー
- PHP
- エクセル 0:30 を整数の 30 に置き換える方法
-------------------------------- A B C 1 start end lap 2 10:30 11:00 0:30 *C2の数式 =b2-a2 *C2のセルの表示形式 [h]:mm -------------------------------- 上記のエクセルワークシートにおいて C2で得た 0:30 という値を 整数の 30 に変える方法はありませんでしょうか。 0:30 は30分を表していて、それを整数 の 30 という数値に置き換えたいという 意味です。
- ベストアンサー
- オフィス系ソフト
- EXCELで24時間表記を午前・午後表記に変えたい
A列に、12:00、14:00、19:00、23:00……と午後の時刻を24時間表記されたデータがあります。 これをB列に、0:00、2:00、7:00、11:00のように「PM」や「午後」などの文字がいっさい付かない時刻数字だけの12時間表記に変えたいのですが、その方法が分かりません。 表示形式の時刻には必ず後ろに「PM」が付くし、ユーザー定義で「PM」などを付けないで時刻だけで12時間表記にすることをいろいろ試してみましたがどうしてもできません。 午前の時刻は「AM」など付かないで表わせるのに、午後はどうして「PM」がつくのかも分かりません。 表示形式で出来なければ、何らかの関数式でB列にそのような表記をする方法はないでしょうか。 データが多いので、いちいち入力し直すのは大変なので、ご存知の方教えてください。
- ベストアンサー
- その他MS Office製品
- エクセル 時刻の計算 特定範囲の時間を求める。
いつもお世話になっております。 標題につきご回答お願い申し上げます。 エクセル愛好家の皆様よろしくお願い致します。 平日、休日を認識し、かつ指定時刻ないの時間を求めたい。 説明 赤○の数式がわかりません。 土曜、日曜、祝日が休日稼働、それ以外は平日作業 日中はAM8:00~PM8:00(20時) 夜間はPM8:00~AM8:00です。 平日休日判定は日付の横のセルに、平日="平" 休日="日"と記載し判定しようかなと思っています。
- ベストアンサー
- Excel(エクセル)
補足
こんなに早くご対応頂けるとは思いもせず、深く感謝申し上げます。ここで、追加補足させて頂きます。今回、9月分に関しての稼働率を、時間がかなり掛かりましたが算出しました。パラメータを述べます。マシーン台数:4台,明細数(注文依頼書):400-900件/マシーン(明細間には、システムセットアップの為のInterval(段取り)が発生),Logdata:htmlファイル。 作業手順を以下に述べます。 1.html -> txtに変換 フリー変換ソフトを使用(900件の場合でも、全てのデータをドラック&ドロップで変換可能。非常に助かりました) 2.変換されたtxtファイルを、100ファイル毎(1-100,101-200のような)のディレクトリに仕分けし、個々のディレクトリ内の100ファイルをマージする(フリー結合ソフトの制約の為、100ファイルまでしか出来ない為) 3.マージされたtxtファイルを、xlsファイルに変換。その際、区切り文字として、タブ/スペースを選択 4.個々のxlsファイルを、1つのファイルにコピー/ペーストして、マージする 5.マージされたファイルは、以下のように、個々のセルに表示される Start 8/31/2010 08:21:45 PM End 9/01/2010 01:27:02 AM Start 9/01/2010 01:33:08 AM End 9/01/2010 01:34:06 AM Start 9/01/2010 01:37:13 AM End 9/01/2010 01:38:39 AM Start 9/01/2010 01:44:16 AM End 9/01/2010 03:27:53 PM 尚、今回の稼働率算出から、明細間のIntervalも算出し、Yield低下の原因として、Intervalにかなりのバラツキがある事が判明しました。参考までに、これまでは、オペレータからの停止時間の自己申告によって、運用状況を把握していたので、Intervalのバラツキは、全く見えていませんでした。 作業手順については先日のメールの通りですが、今回アドバイス頂いた内容をじっくり読ませて頂き、改めてメールさせて頂きますので、ご理解の程、宜しくお願い申し上げます。