Rumus untuk menghitung durasi untuk waktu yang dapat span dua hari

0

Kolom A: Mulai waktu dalam format 24 jam (menggunakan rumus =NOW() dan terkunci dengan Ctrl + BERGESER + ; )
Kolom B: Waktu akhir dalam format 24 jam (dimasukkan sama dengan untuk kolom A )
Kolom C: Durasi, diformat sebagai [mm], menggunakan formula =B1-A1

Bagaimana cara menghitung durasi data dalam kolom B termasuk waktu yang terjadi pada hari berikutnya?


Lembar kerja aktual:

Screenshot of actual worksh

Saphiraz
sumber
Anda perlu mempelajari format tanggal dan waktu dalam excel. Rumus untuk kolom C secara harfiah = B1-A1 tetapi agar berfungsi dengan benar sel sebelumnya harus memiliki format tanggal / waktu yang valid. Ini juga menangani tengah malam dengan baik.
Tyson
Rumus dalam kolom C memang = b1-a1 dan formatnya dalam [mm], saya lupa menyebutkan bahwa saya menggunakan fungsi "CTRL + SHIFT +;" untuk mengunci waktu, dan hasil yang saya dapatkan untuk saat ini adalah durasinya negatif (-) dan tidak dihitung pada hari berikutnya.
Saphiraz
Lihat solusinya superuser.com/a/940439/364367
fixer1234

Jawaban:

2

Ctrl + Bergeser + ; hanya memasukkan waktu saat ini ke sel tanpa datestamp, dan seperti yang ditunjukkan @Akina dalam jawabannya, ia tidak mengunci apa pun.

NOW() menambahkan datestamp ke sel serta waktu. Untuk melihatnya, klik sebuah sel kosong yang belum diformat atau sel apa pun di General format dan ketik =NOW(). Pada saat mengetik ini saya dapatkan 21/08/2018 11:25.

Jika Anda menempatkan =NOW() ke dalam sel A1 dan =NOW()+TIME(23,0,0) ke dalam sel B1, jika Anda kemudian menempatkan =B1-A1 ke dalam sel C1 dan format sel ke Time kamu akan mendapatkan 23:00:00.

Jika Anda memasukkan waktu tanpa datestamps, Anda harus menggunakan IF() rumus untuk menentukan apakah waktu kedua lebih rendah dari yang pertama (kerangka waktu melewati tengah malam). Berikut ini akan menjelaskan perbedaan waktu antara waktu dalam sel B1 dan sel A1 apakah waktu berakhir sudah lewat tengah malam atau tidak. Ini juga akan bekerja dengan atau tanpa datestamps karena datestamps diabaikan.

=IF(B1<A1,MOD(B1-A1,1),B1-A1)

Penjelasan rumus

=IF(B1<A1,...)

adalah waktu dalam sel B1 lewat tengah malam? Jika demikian, bagian selanjutnya dijalankan

MOD(B1-A1,1)

Itu MOD(number,divisor) mengembalikan sisanya setelah angka dibagi dengan pembagi. Sel B1 sel minus A1 adalah nilai negatif sebagai waktu dalam sel B1 sudah lewat tengah malam dan unggul tidak suka nilai waktu negatif dalam kebanyakan kasus, maka itu akan memberi ##### tanpa MOD(). Itu MOD() macam itu.

Alternatif untuk MOD() rumus akan digunakan

TIME(23,59,59)-TIME(HOUR(A1),MINUTE(A1),SECOND(A1))+TIME(0,0,1)+B1

Yang mana 23:59:59 minus time in cell A1 plus 1 second plus time in cell B1.

Bit terakhir yaitu ,B1-A1) adalah bagian terakhir dari IF() dimana kalau waktu di sel B1 aku s tidak lewat tengah malam.

Chris Rogers
sumber
Rumus ini mungkin (tampaknya akan - tetapi itu malas untuk memeriksa) memberikan hasil yang salah jika salah satu nilai sumber "tetap" (dan TIDAK mengandung bagian tanggal, ini hanya waktu) sedangkan yang lain tidak (dan mengandung kedua tanggal dan bagian waktu).
Akina
Saya tidak mengerti apa yang kamu katakan @Akina. Saya baru saja memeriksa dan, sebenarnya, =IF(B1<A1,MOD(B1-A1,1),B1-A1) berfungsi apakah ada datestamp atau tidak.
Chris Rogers
Masukkan waktu saat ini (dengan menekan Ctrl-Alt-; ) ke dalam sel A1. Masukkan waktu tanggal saat ini (dengan rumus =NOW() ) ke dalam sel B1. Periksa hasilnya.
Akina
Saya melakukan apa yang Anda sarankan, meskipun demikian Ctrl + Shift + ; ke dalam sel A1, dan itu bekerja untuk saya.
Chris Rogers
2
Anda seharusnya tidak memerlukan tes IF. MOD harus menangani perbedaan terlepas dari apakah itu melewati tengah malam.
fixer1234
2

Mungkin solusi paling elegan dan paling sederhana adalah solusi jawaban ini disebutkan oleh fixer1234 di komentar ini :

=MOD(B1-A1,1)

Perhatikan bahwa ini mengasumsikan bahwa kedua nilai hanya nilai waktu (atau bagian tanggal akan terpotong), yaitu masing-masing kurang dari 1, dan durasinya kurang dari 24 jam.

Penjelasan:

Ini berfungsi karena untuk nilai datetime seri, 1 berkorespondensi dengan 24 jam, dan nilai waktu saja adalah nilai datetime kurang dari 1. Dengan demikian:

  • Jika B1 >= A1 kemudian MOD(B1-A1,1)B1-A1 seperti yang diharapkan
    atau
  • Jika B1 < A1 kemudian MOD(B1-A1,1) setara dengan 1-(A1-B1) (sejak MOD(-n,m)=m-MOD(n,m) ) yang memberikan durasi "pelengkap" yang benar


Solusi alternatif (Anda menilai apakah lebih sederhana / lebih elegan ;-)) adalah:

=(B1<A1)+B1-A1

Penjelasan:

Ini berhasil karena TRUE nilai secara implisit dipaksa untuk 1, dan FALSE nilai ke a 0, ketika digunakan dalam operasi aritmatika. Demikian:

  • Jika B1 >= A1 kemudian (B1<A1)0 dan formula menjadi B1-A1
    atau
  • Jika B1 < A1 kemudian (B1<A1)1 dan rumusnya setara dengan 1-(A1-B1)

Perhatikan bahwa rumus ini akan berfungsi dengan benar bahkan jika kedua nilai merupakan data dan terpisah lebih dari 24 jam! Ini adalah tidak kasus untuk rumus pertama, jadi rumus kedua ini lebih bermanfaat / umum.

robinCTS
sumber
Saya tidak yakin apa yang dikatakan paragraf terakhir Anda. Jika kami menganggap durasi itu & lt; 24 jam - yaitu, bahwa (waktu mulai) ≤ (waktu akhir) & lt; (waktu mulai + 24 jam) - dan Anda tidak khawatir tentang penanganan dengan benar kasus di mana kedua sel memiliki waktu data yang benar (penuh), lalu =MOD(B1-A1, 1) tampaknya bekerja dengan cukup baik. Dan =IF(AND(A2>=1,B2>=A2), B2-A2, IF(AND(A2>=0,A2<1,B2>=0,B2<1), MOD(B2-A2,1), "Error")) tampaknya menangani semua kasus dengan baik.
Scott
@Scott aku baru saja menunggu bagi seseorang untuk mengambil itu ;-) Saya secara khusus merujuk komentar ini oleh Akina dan utas berikutnya. Setelah menulisnya, saya menyadari bahwa paragraf ini secara teknis sedikit tidak akurat. Yang perlu saya tambahkan adalah, "jika tidak ada asumsi lain yang dibuat" dan "selalu menghasilkan perbedaan yang benar". Anda benar bahwa jika Anda hanya ingin memotong nilai datetime penuh, maka rumus MOD akan berfungsi. (Ditambah rumus kesalahan juga menangani case dengan menjebaknya.) Saya akan menghapusnya karena PL / tidak akurat.
robinCTS
-2

Bagaimana cara menghitung durasi jika data dalam Kolom B menyertakan waktu yang jatuh pada hari berikutnya?

=1 + B1 - A1

diformat sebagai waktu akan menampilkan hasil yang benar. Dari B1 & gt; A1, hasilnya, tentu saja, mengandung bagian tanggal yang tidak nol, tetapi tidak ditampilkan karena format sel.

Jika Anda ingin menggunakan nilai waktu ini dalam beberapa perhitungan waktu, gunakan rumus yang lebih kompleks

=B1-A1-INT(B1-A1)

PS.

dan kunci dengan CTRL + SHIFT +;

Kombinasi ini tidak mengunci apa pun. Ini sepenuhnya menggantikan konten sel dengan nilai waktu saat ini.

Akina
sumber
Yah ya itu hanya mengubahnya ke nilai waktu, tetapi itu mencegah waktu untuk berubah secara otomatis karena saya menggunakan rumus volatile = now (). Apakah ada cara untuk mengunci data sel?
Saphiraz
@ Saphiraz, saya tidak mengerti Anda. Ketika setiap sel sumber berisi SEKARANG () dan titik waktu tidak diperbaiki hasilnya dalam С (seperti yang saya mengerti) tidak masalah. Ketika kedua sel sumber diperbaiki oleh Ctrl-Shift-; rumus memberikan hasil yang Anda butuhkan. PS. Mencari =B1-INT(B1)-A1+INT(A1)-INT(B1-A1)...
Akina
silakan periksa data sampel.
Saphiraz
1
silakan periksa data sampel Apa yang bisa saya periksa pada tangkapan layar? Tambahkan data sampel yang diformat (panjang tetap) (yang dapat dengan mudah disalin-tempel ke lembar Excel) ke pertanyaan Anda (menentukan rentang sumber jika perlu) dengan hasil referensi. Untuk datetimes - ketikkan angka dan tentukan format kolom.
Akina
-2

Untuk mendapatkan perbedaan Minutes antara dua 24Hrs DateTime Stamps Anda dapat menggunakan salah satunya:

=Int((A2-A1)*24*60)

Atau

=int((A2-A1)*1440)

Atau

=ROUNDUP((A2-A1)*1440,2)

Catatan, Sel rumus harus ada General Format.

Rajesh S
sumber
1
Setelah kunci dengan CTRL + SHIFT +; tidak ada bagian-tanggal dalam suatu nilai. Jika lewat tengah malam hasilnya akan negatif.
Akina
Saya telah mencatat dua nilai menggunakan CTRL+SHIFT+; adalah 2:03 PM & amp; 2:11 PM & amp; terapan =INT((M8-L8)*1440)&" Mnts" mendapat jawaban 8 Mnts.
Rajesh S
,, Lanjut. atau Anda dapat menggunakan =ROUNDUP((M8-L8)*1440,2)&" Mnts" juga.
Rajesh S
mendapat jawaban 8 Mnts Nilai sumber swap - apakah hasilnya 1432?
Akina
Jika waktu dalam sel A2 sudah lewat tengah malam, rumus dalam jawaban Anda tidak berfungsi seperti yang ditunjukkan oleh @Akina
Chris Rogers