Công thức khai thác dữ liệu Excel


0

Tôi đang cố gắng chạy một báo cáo để đánh giá thời gian chết của các thiết bị trong mạng. Báo cáo OpMan Management không có bất kỳ tùy chỉnh nào có sẵn để báo cáo đầu ra. Vì vậy, tôi đang tìm cách trích xuất dữ liệu và chuyển đổi kết quả để cung cấp tỷ lệ phần trăm khả dụng hàng tuần. Tất cả các công thức thất bại và chỉ trở lại #VALUE!.

Ví dụ: trong ô A1: "Dòng sản xuất Tạp chí (Tổng thời gian ngừng hoạt động: 3d 2h 8m 23s)"

Công thức nên trả về 55.869% vì 3d = 259200 giây, 2h = 7200 giây, 8m = 480 giây, 23 giây, tổng cộng là 266903 giây trên 604800 "giây mỗi tuần" hoặc 44.131% Thời gian ngừng hoạt động. Một công thức sẽ thực hiện chuyển đổi nhưng trước tiên tôi phải trích xuất "D, H, M, & amp; S.

=IF(ISNUMBER(FIND("d",A1)),LEFT(A1,FIND("d",A1)-1)*86400,0)
+IF(ISNUMBER(FIND("h",A1)),MID(0&A1,FIND("h",0&A1)-2,2)*3600,0)
+IF(ISNUMBER(FIND("m",A1)),MID(0&A1,FIND("m",0&A1)-2,2)*60,0)
+IF(ISNUMBER(FIND("s",A1)),MID(0&A1,FIND("s",0&A1)-2,2)/604800)

Bất kỳ ý tưởng?


Hãy thử đánh giá công thức để xem lỗi. Chọn ô đang xét, rồi bấm vào Formulas trong ruy băng. bên trong Formula Auditing phần, chọn Evaluate Formula. Một màn hình mới sẽ bật lên và chọn một trong các tùy chọn nút lệnh để xem chính xác nơi công thức thất bại.
wbeard52

Câu trả lời:


0

Cái này mất một chút công sức!

Định dạng câu hỏi của bạn là một chút, vì vậy tôi TIN đây là nội dung ô ban đầu dự định của bạn:

Magazine Production line (Total Downtime :3d 2h 8m 23s)

Vì vậy, dựa vào đó, công thức này sẽ kéo số ngày và thời gian ra và đặt chúng ở định dạng ngày excel.

=DATE(0,1,MID(A$1,FIND(" :",A$1)+2,FIND("d ",A$1,FIND(" :",A$1)+2)-FIND(" :",A$1)-2))+TIME(MID(A$1,FIND("d ",A$1)+2,FIND("h ",A$1,FIND("d ",A$1)+2)-FIND("d ",A$1)-2),MID(A$1,FIND("h ",A$1)+2,FIND("m ",A$1,FIND("h ",A$1)+2)-FIND("h ",A$1)-2),MID(A$1,FIND("m ",A$1)+2,FIND("s)",A$1,FIND("m ",A$1)+2)-FIND("m ",A$1)-2))

Lý do để có được điều này vào định dạng ngày excel là nó giúp dễ dàng có được tỷ lệ phần trăm. Vì đây là tất cả dựa trên năm 1900, nên nó dễ dàng làm toán. Nếu bạn chia công thức trên cho 1/7/1900, thì bạn sẽ có được tỷ lệ phần trăm của mình:

=(DATE(0,1,MID(A$1,FIND(" :",A$1)+2,FIND("d ",A$1,FIND(" :",A$1)+2)-FIND(" :",A$1)-2))+TIME(MID(A$1,FIND("d ",A$1)+2,FIND("h ",A$1,FIND("d ",A$1)+2)-FIND("d ",A$1)-2),MID(A$1,FIND("h ",A$1)+2,FIND("m ",A$1,FIND("h ",A$1)+2)-FIND("h ",A$1)-2),MID(A$1,FIND("m ",A$1)+2,FIND("s)",A$1,FIND("m ",A$1)+2)-FIND("m ",A$1)-2)))/DATE(0,1,7)

Điều này dẫn đến một kết quả của 44.13% thời gian chết

Chỉ cần trừ tất cả mọi thứ từ 1 và bạn nhận được kết quả cuối cùng của bạn:

=1-((DATE(0,1,MID(A$1,FIND(" :",A$1)+2,FIND("d ",A$1,FIND(" :",A$1)+2)-FIND(" :",A$1)-2))+TIME(MID(A$1,FIND("d ",A$1)+2,FIND("h ",A$1,FIND("d ",A$1)+2)-FIND("d ",A$1)-2),MID(A$1,FIND("h ",A$1)+2,FIND("m ",A$1,FIND("h ",A$1)+2)-FIND("h ",A$1)-2),MID(A$1,FIND("m ",A$1)+2,FIND("s)",A$1,FIND("m ",A$1)+2)-FIND("m ",A$1)-2)))/DATE(0,1,7))

Hoặc là 55.87%


Không biết các định dạng tiềm năng khác của bạn, chẳng hạn như khi D / H / M / S bằng 0 (chúng có trống hay không trong định dạng không?) Đã hạn chế phản hồi của tôi. Nếu bạn có các định dạng bổ sung, chẳng hạn như dòng Sản xuất Tạp chí (Tổng thời gian ngừng hoạt động: 2h 23s) Việc này có thể mất một số công việc bổ sung.
BryanC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.