Tách thành các dữ liệu số ?

Liên hệ QC

Chuotdong

Thành viên thường trực
Tham gia
28/11/06
Bài viết
255
Được thích
60
MÌnh có các dữ liệu thu thập ở dạng sau, muốn phân tách thành các dữ liệu số sang các ô riêng biệt để xử lý, có thể dùng công thức MID(), SEARCH() .v... như thế nào :
 

File đính kèm

Có lẽ hàm này thích hợp:
CtoNPlus(chuỗi, số thứ tự nhóm số, dấu thập phân)
Tham số dấu thập phân là "." hoặc "," tuỳ theo nguồn dữ liệu. Dấu trừ số âm (nếu có) phải nằm ngay trước nhóm số của nó.
 

File đính kèm

Cám ơn bạn hàm rất pro.

Nhưng nếu chỉ thuần túy đổi từ dạng DMS (12d 30'15,45" sang dạng 12,4354365 độ) thì có thể làm đơn giản như thế nào. Để học lập công thức mà |||||
 
Lần chỉnh sửa cuối:
=CtoNPlus(A1,1,",")+CtoNPlus(A1,2,",")/60+CtoNPlus(A1,3,",")/3600
Công thức dùng cho text có thể dùng Left, Right, Mid kết hợp với Find nhưng hơi khó và dài dòng:
- tìm độ: =LEFT(A1;FIND("d";A1)-1)
- tìm phút rồi chia 60: =MID(A1;FIND("d";A1)+1;FIND("'";A1)-FIND("d";A1)-1)/60
- tìm giây rồi chia 3600: =MID(A1;FIND("'";A1)+1;FIND("""";A1)-FIND("'";A1)-2)/3600
- Cộng 3 cái lại
 
=CtoNPlus(A1,1,",")+CtoNPlus(A1,2,",")/60+CtoNPlus(A1,3,",")/3600
Công thức dùng cho text có thể dùng Left, Right, Mid kết hợp với Find nhưng hơi khó và dài dòng:
- tìm độ: =LEFT(A1;FIND("d";A1)-1)
- tìm phút rồi chia 60: =MID(A1;FIND("d";A1)+1;FIND("'";A1)-FIND("d";A1)-1)/60
- tìm giây rồi chia 3600: =MID(A1;FIND("'";A1)+1;FIND("""";A1)-FIND("'";A1)-2)/3600
- Cộng 3 cái lại
Phần giây thường có số lẻ thập phân công thức trên chưa xử lý được +-+-+-+

Phút có thể ghi là 5' hoặc 05'.

Cám ơn bạn nhiều.
 
Lần chỉnh sửa cuối:
Đúng ra là:
Độ =LEFT(A1;FIND("d";A1)-1)*1
Phút: =MID(A1;FIND("d";A1)+1;FIND("'";A1)-FIND("d";A1)-1)/60
Giây =MID(A1;FIND("'";A1)+1;FIND("""";A1)-FIND("'";A1)-1)/3600
Công thức phải chạy tốt dù cho giây là số thập phân. Vấn đề là số thập phân đó có dấu thập phân giống dấu quy định trong Tools-Option hay không.
Nếu dấu thập phân trong chuỗi là "," mà dấu thập phân trong Option (hoặc trong Systems của Windows là "." thì tong.
Trường hợp này dùng CtoNPlus
 
Tôi đổi về dạng DMS ( Ví dụ về dạng: 12d 30' 20,234") để kiểm tra nhưng sao không được, chẳng hạn như sau:

Sai ở đâu vậy nhỉ
 

File đính kèm

Đúng ra là:
Độ =LEFT(A1;FIND("d";A1)-1)*1
Phút: =MID(A1;FIND("d";A1)+1;FIND("'";A1)-FIND("d";A1)-1)/60
Giây =MID(A1;FIND("'";A1)+1;FIND("""";A1)-FIND("'";A1)-1)/3600

sửa công thức đổi giây đơn giản hơn

Giây =MID(A1;FIND("'";A1)+1;FIND("""";A1)-FIND("'";A1)-1)/3600

như thế nay cho ngắn gọn

=MID(A1;FIND("'";A1)+1;LEN(A1)-1)/3600

Công thức phải chạy tốt dù cho giây là số thập phân. Vấn đề là số thập phân đó có dấu thập phân giống dấu quy định trong Tools-Option hay không.
Nếu dấu thập phân trong chuỗi là "," mà dấu thập phân trong Option (hoặc trong Systems của Windows là "." thì tong.
Trường hợp này dùng CtoNPlus

Thế thì KHI TÍNH chuotdong thay đổi tool option thế là song -> đơn giản - không phải bàn,

.
 
Lần chỉnh sửa cuối:
Tôi đổi về dạng DMS ( Ví dụ về dạng: 12d 30' 20,234") để kiểm tra nhưng sao không được, chẳng hạn như sau:

Sai ở đâu vậy nhỉ
Chả sai đâu cả. Bạn định dạng lại E1 thành lề trái xem? Hoặc kéo rộng cột E ra!

To TigerTiger:
=MID(A1;FIND("'";A1)+1;LEN(A1)-1)/3600
Tiger test công thức này trên máy chưa nhỉ?

Chắc ý là:=MID(A1;FIND("'";A1)+1;LEN(A1)-1)-FIND("'";A1)-1)/3600
 
Làm thế nào để chép VBA: ctonplus sang File excel cũ mà không có lỗi?

Làm thế nào để chép VBA: ctonplus sang File excel cũ mà không có lỗi?
Khi tôi chép sang phai cũ thì không chạy được. Xin được chỉ bảo cách sao chép VBA sang một phai mới hoặc phai cũ để dùng được. Thank.
 
Web KT

Bài viết mới nhất

Back
Top Bottom