2011-10-28 9 views
14

Đây hoàn toàn là một câu hỏi về trang tính Excel.Định dạng khoảng thời gian là số ngày, giờ và phút

Tôi có một khoảng thời gian mà về cơ bản là một sự khác biệt giữa hai tế bào, mỗi dòng chứa một ngày:

tôi đã được quản lý để có được sự khác biệt thời gian trong số giờ và phút bằng cách thay đổi định dạng số để [h]:mm. Bây giờ tôi muốn nhận được sự khác biệt về số ngày, giờ và phút. Tôi đã cố gắng đặt định dạng số thành [d]:[h]:[mm] nhưng không được Excel chấp nhận.

Dưới đây là những gì tôi có bây giờ:

A     B     C (=A2-A1) 
    ---------------- ---------------- ---------- 
1| 14/10/2011 00:00 17/10/2011 07:50 79:50 
2| 14/10/2011 00:00 17/10/2011 11:00 83:00 

Dưới đây là những gì tôi muốn nhận được:

A     B     C (=A2-A1) 
    ---------------- ---------------- ---------- 
1| 14/10/2011 00:00 17/10/2011 07:50 3:7:50 
2| 14/10/2011 00:00 17/10/2011 11:00 3:11:00 

Làm thế nào tôi có thể làm điều đó? Có sẵn một định dạng số cho điều đó không?

Trả lời

23

Bạn có thể sử dụng TEXT
= TEXT(B1-A1,"d:h:mm")

Lưu ý tác dụng tương tự có thể đạt được bằng cách sử dụng định dạng số đơn giản trên các tế bào trực tiếp

  • chọn phạm vi của bạn (tế bào C1, C2 vv)
  • đúng nhấp và Các ô định dạng
  • Tùy chỉnh
  • Loại d:hh:mm

Nếu dữ liệu không giống ví dụ của bạn, sự khác biệt ngày của bạn vượt quá 31 ngày, sau đó một cách tiếp cận như =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
sẽ làm việc

+4

Tốt, và tôi sẽ sử dụng 'TEXT (B1-A1; IF (B1-A1> 1;" d: hh: mm ";" h: mm "))' để chỉ nhận số ngày nếu chênh lệch thời gian là vượt trội hơn một ngày. – Otiel

+0

công thức như đã nhập không được chấp nhận trong excel – Toshe

+0

@tosh bạn có ý nghĩa gì về việc Excel không được chấp nhận? – brettdj

7

Cảnh báo: bên trên chỉ có tác dụng cho các phạm vi ít hơn 31 ngày. sử dụng

=CONCATENATE(TEXT(FLOOR(B1-A1,1),"@")," Days",TEXT(B1-A1," h:mm:ss")) 

thay vì cho phạm vi trên 31 ngày. Điều này sẽ không được phân loại tốt, vì vậy sẽ tốt hơn nếu thực hiện phép tính trong một cột và sau đó prettify cột đó cho kết quả cuối cùng.

+0

Cảm ơn, đó là những gì tôi đang tìm kiếm, khi tôi đến đây từ Google. Nhưng nó phải là "FLOOR (B1-A1,0)" thay vào đó, tại sao bạn muốn giữ phần phân đoạn của ngày? –

+0

Tôi nhận đượC# DIV/0! nếu tôi sử dụng FLOOR (, 0). Tham số thứ hai là 'ý nghĩa', không phải 'số thập phân để giữ'. Bạn có thể cung cấp thành công '0.1' hoặc '0,01' để giữ các vị trí thập phân, nhưng không được '0' để loại bỏ chúng. Trong trường hợp này, '1' là chính xác vì nó FLOOR là '1' gần nhất. – MrWonderful

1

Sau đây chắc chắn không phải là công thức ngắn nhất và không phải là một câu trả lời trực tiếp cho câu hỏi nhưng hoạt động để hiển thị các kết quả đúng (cũng trên LibreOffice) theo định dạng sau:

# ngày ## giờ ## phút # # giây

=CONCATENATE(TEXT(FLOOR(B2-A2,1),"@")," days ", IF(HOUR(A12)-HOUR(A11)<0,HOUR(A12)-HOUR(A11)+24,HOUR(A12)-HOUR(A11))," hours ",IF(MINUTE(A12)-MINUTE(A11)<0,MINUTE(A12)-MINUTE(A11)+60,MINUTE(A12)-MINUTE(A11)), " minutes ", TEXT(B2-A2,"s"), " seconds") 
0

Các phương pháp sau đây làm việc là tốt, giả định rằng ngày bắt đầu của bạn là trong ô C2 và ngày kết thúc của bạn là trong ô D2:

=TEXT((D2-C2)-MOD(D2-C2,1),"0") & " days " & TEXT(MOD(D2-C2,1),"hh:mm") 
0

Un may mắn thay nó xuất hiện định dạng số và datetime không thể kết hợp, nếu không định dạng tùy chỉnh là:

0:h:m 

sẽ là vé.Tuy nhiên, nếu vì nhịp 32 ngày trở lên, bạn đã hài lòng với chỉ hiển thị số ngày (phân đoạn), bạn có thể sử dụng một định dạng tùy chỉnh như:

[>=32] 0.00 "days"; d:h:m 

Giá trị tế bào vẫn còn số.

0

=IFERROR(INT(Date1-Date2)&" Days "&INT(MOD((Date1-Date2);INT(Datw1-Date2))*24)&" Hours "&MINUTE(Fate1-Date)&" Min";IFERROR((Date1-Date2);"NA"))enter code here

Tôi nghĩ điều này nên thực hiện thủ thuật, bất kể ngày nào bạn có.