Tách ký tự chữ lẫn trong ký tự số bằng hàm (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

xingxing120384

Thành viên mới
Tham gia
1/8/10
Bài viết
13
Được thích
0
Tôi có 01 một cột dữ liệu gồm ký tự chữ và số, tôi muốn tách ký tự chữ ra khỏi ký tự số bằng hàm excel
ví dụ file đính kèm :
 

File đính kèm

Tôi có 01 một cột dữ liệu gồm ký tự chữ và số, tôi muốn tách ký tự chữ ra khỏi ký tự số bằng hàm excel
ví dụ file đính kèm :
Loại bài này có đầy trên diển đàn rồi, thậm chí yêu cầu khó hơn cũng tách được... Bài của bạn thuộc dạng dễ thôi
Xem file
 

File đính kèm

File đính kèm

hjx, theo như bác thì công thức dài quá! mà nếu nhiều dữ liệu thì file rất nặng, thật là "lợi bất cập hại" nhưng mà muốn tốt cho công việc thì phải làm thế thôi!
 
Mình có tải file 2222.xls của các bạn về để sử dụng tách số trong dãy ký tự có text, công thức sử dụng tốt trong file này, nhưng không sử dụng được trong file mới.
Vậy, Làm thế nào để sử dụng hàm dưới đây trong 1 file khác? Nhờ các Pro giúp!
=IF($A3="";"";IF(Pos=0;$A3;LEFT($A3;Pos-1)))
 

File đính kèm

Mình có tải file 2222.xls của các bạn về để sử dụng tách số trong dãy ký tự có text, công thức sử dụng tốt trong file này, nhưng không sử dụng được trong file mới.
Vậy, Làm thế nào để sử dụng hàm dưới đây trong 1 file khác? Nhờ các Pro giúp!
=IF($A3="";"";IF(Pos=0;$A3;LEFT($A3;Pos-1)))

*Tại sao không sử dụng được trong file mới ?
là do bạn chưa đặt 1 Name có tên là Pos trong file mới của mình ?, hay là dữ liệu trong file mới của bạn khác với dữ liệu đã có ??
* Trong hàm trên Pos là 1 Name được khai báo, để công thức gọn và nhẹ hơn. cụ thể
Pos = =MIN(IF(ISERROR(FIND({0,1,2,3,4,5,6,7,8,9},Sheet1!$A2)),"",FIND({0,1,2,3,4,5,6,7,8,9},Sheet1!$A2)))
 
*Tại sao không sử dụng được trong file mới ?
là do bạn chưa đặt 1 Name có tên là Pos trong file mới của mình ?, hay là dữ liệu trong file mới của bạn khác với dữ liệu đã có ??
* Trong hàm trên Pos là 1 Name được khai báo, để công thức gọn và nhẹ hơn. cụ thể
Pos = =MIN(IF(ISERROR(FIND({0,1,2,3,4,5,6,7,8,9},Sheet1!$A2)),"",FIND({0,1,2,3,4,5,6,7,8,9},Sheet1!$A2)))

Em cũng luôn bị đau đầu với cái Name này. Nhìn vào thì biết vậy nhưng cách tạo ra nó thế nào thì không thấy.
Em cũng tìm trên diễn đàn nhưng chưa thấy tài liệu nào viết về cái này.
Bác nào có cho em xin với. Mục đích làm ngắn và gọn công thức cho file nó nhẹ.

Cảm ơn các bác
 
Em cũng luôn bị đau đầu với cái Name này. Nhìn vào thì biết vậy nhưng cách tạo ra nó thế nào thì không thấy.
Em cũng tìm trên diễn đàn nhưng chưa thấy tài liệu nào viết về cái này.
Bác nào có cho em xin với. Mục đích làm ngắn và gọn công thức cho file nó nhẹ.

Cảm ơn các bác
bạn đã tìm đúng cách chưa ?
http://www.giaiphapexcel.com/forum/showthread.php?7340-Hỏi-đáp-về-Name-trong-Excel
 
bạn thử hàm tự tạo này xem sao

Mẹo nhỏ về kỹ thuật viết hàm người dùng:

Thông thuờng với loại yêu cầu nhiều kết quả thế này, dùng hàm trả về mảng tiện lợi hơn.
Kế tiếp viết thêm một hàm trả về 1 phần tử mảng. Như vậy có thể dùng được nhiều cách.

Mã:
Function TachSoVaChu(ByVal Cll As String) As Variant
Dim a(0 To 1)
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\D+"
a(0) = .Replace(Cll, "")
.Pattern = "\d+"
a(1) = .Replace(Cll, "")
End With
TachSoVaChu = a
End Function

Function SoHoacChu(ByVal Cll As String, ByVal chu As Boolean) As String
SoHoacChu = TachSoVaChu(Cll)(IIf(chu, 1, 0))
End Function

Muốn dùng hàm mảng thì bôi đen hai ô B2:C2 và gõ =TachSoVaChu(A2)
Dĩ nhiên phải dùng Ctrl+Shift+Enter vì đây là hàm mảng. Nếu Enter thường thì cả hai ô đều lấy trị mặc định, tức là phần tử đầu tiên.

Không muốn dùng mảng thì
B2: =SoHoacChu(A2,0)
C2: =SoHoacChu(A2,1)

Nếu không muón viết thêm cái hàm chọn lựa thì vẫn có thể dùng hàm INDEX để lấy từng phân tử của hàm mảng

B2: =INDEX(TachSoVaChu(A2),1)
C2: =INDEX(TachSoVaChu(A2),2)

Lưu ý cái pattern ở trên. Trong code củaa bạn dùng pattern từng ký tự. Như vậy RegEx phải replace từng ký tự riêng rẻ mà nó tìm được.
Nếu ta có thể lợi dụng tính chất tham lam của RegEx thì nên bảo nó thay từng cụm ký tự nó tìm được.

Lưu ý 2: RegEx là một cổ máy khá nặng nề. Cộng thêm viết code thế này thì mỗi lần hàm chạy lại phải dựng một đói tượng (object), chạy xong rồi huỷ đi, rất phí. Nếu viết hàm sử dụng nhiều trên bảng tính thì cũng có thủ thuật chỉ dựng đối tượng 1 lần. Nhưng để dịp khác sẽ bàn.
 
Lần chỉnh sửa cuối:
Cho mình hỏi mình làm theo công thức trong file tachso_06, nhưng sao chỉ tách được 11 số, muốn tách được nhiều số hơn thì làm sao
 
Cho mình hỏi mình làm theo công thức trong file tachso_06, nhưng sao chỉ tách được 11 số, muốn tách được nhiều số hơn thì làm sao
File tại bài #5 tôi đã thử tách được 15 số. Với cụm chữ số mà có số lớn hơn 15 thì ra nhiều số 0 đằng sau số thứ 15.
 
sao mình dùng công thức của bạn sang 1 file mới lại bị lỗi là như nào nhỉ
 
Loại bài này có đầy trên diển đàn rồi, thậm chí yêu cầu khó hơn cũng tách được... Bài của bạn thuộc dạng dễ thôi
Xem file
Cho mình hỏi =IF($A17="","",IF(Pos=0,$A17,LEFT($A17,Pos-1))) vậy "Pos" là gì vậy ạ? vì mình có làm nhưng do không biết "Pos" là gì để làm nên nó chạy ra #Name# không thôi
 
Mọi người làm ơn cho mình hỏi, trong các hàm của excel có hàm nào để biết trong một chuỗi có chữ hay không?
Mình có 2 cột A và B, kết quả mình muốn là nếu trong ô A có chữ thì ô C = B & ký tự đầu của ô A, nếu chỉ có số thì C = B
 

File đính kèm

Mọi người làm ơn cho mình hỏi, trong các hàm của excel có hàm nào để biết trong một chuỗi có chữ hay không?
Mình có 2 cột A và B, kết quả mình muốn là nếu trong ô A có chữ thì ô C = B & ký tự đầu của ô A, nếu chỉ có số thì C = B
Thử vầy xem đúng ý chưa nhen!
Mã:
C2=B2&IF(ISERR(--A2),LEFT(A2),"")
Hoặc:
C2=B2&LEFT(IFERROR(T(A2*0),A2))
Enter, rồi fill xuống.
hihi ^o^
 
Lần chỉnh sửa cuối:
Thử vầy xem đúng ý chưa nhen!
Mã:
C2=B2&IF(ISERR(--A2),LEFT(A2),"")
Hoặc:
C2=B2&LEFT(IFERROR(T(A2*0),A2))
Enter, rồi fill xuống.
hihi ^o^
Cám ơn bạn rất nhiều, mình muốn hỏi thêm bạn là --A2 là công thức gì bạn mình chưa gặp công thức kiểu này bao giờ
Chỉ hiểu là nếu là số thì kết quả là số nếu có chữ thì kết quả là #VALUE!
 
Cám ơn bạn rất nhiều, mình muốn hỏi thêm bạn là --A2 là công thức gì bạn mình chưa gặp công thức kiểu này bao giờ
Chỉ hiểu là nếu là số thì kết quả là số nếu có chữ thì kết quả là #VALUE!
Như cách giải thích của anh @befaint ở trên cũng là một cách dễ hiểu. /-*+//-*+//-*+/

--A2 là cách "ép" một chuỗi dạng số về số thực:
Ví dụ: chuỗi A1='123, nên khi --A1 sẽ thành số 123
Nhưng nếu chuỗi không phải là dạng số như "a123" thì khi "ép" với -- nó sẽ báo lỗi #VALUE!

Các cách khác tương tự như: A1+0 hay A1*1 hay A1/1 cũng "ép" một chuỗi dạng số về số thực.

hihi ^o^
 
Chào thầy.
Em nhờ thầy giúp tách số ra từ chuỗi theo yêu cầu. Code VBA.
File đính kèm.
Em rất cám ơn thầy.
 

File đính kèm

Chào thầy.
Em nhờ thầy giúp tách số ra từ chuỗi theo yêu cầu. Code VBA.
File đính kèm.
Em rất cám ơn thầy.
Bạn thử code này xem!!!
PHP:
Function joinn(str As String) As String
If IsNumeric(str) Then Exit Function
Dim item As Object
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "\d{7}"
    For Each item In .Execute(str)
        joinn = joinn & IIf(joinn = "", "", "-") & item
    Next
End With
End Function
 
Bạn thử code này xem!!!
PHP:
Function joinn(str As String) As String
If IsNumeric(str) Then Exit Function
Dim item As Object
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "\d{7}"
    For Each item In .Execute(str)
        joinn = joinn & IIf(joinn = "", "", "-") & item
    Next
End With
End Function
T
Bài đã được tự động gộp:

Cám ơn bạn excel lv1.5
Để mình thử xem.
Thank
Bài đã được tự động gộp:

Nhờ bạn giải thích dùm code này.
Mình gà VBA lắm.
Nhưng thấy VBA rất hay và hữu ích.
Cám ơn bạn excel lv1.5 nhiều.
 
Lần chỉnh sửa cuối:
T
Bài đã được tự động gộp:

Cám ơn bạn excel lv1.5
Để mình thử xem.
Thank
Bài đã được tự động gộp:

Nhờ bạn giải thích dùm code này.
Mình gà VBA lắm.
Nhưng thấy VBA rất hay và hữu ích.
Cám ơn bạn excel lv1.5 nhiều.
VBA thật sự tôi không biết giải thích sao, bạn thấy được thì cứ sài thôi!!
 
T
Bài đã được tự động gộp:

Cám ơn bạn excel lv1.5
Để mình thử xem.
Thank
Bài đã được tự động gộp:

Nhờ bạn giải thích dùm code này.
Mình gà VBA lắm.
Nhưng thấy VBA rất hay và hữu ích.
Cám ơn bạn excel lv1.5 nhiều.
Bài đã được tự động gộp:

Code bạn viết rất hay và chạy đúng nhu cầu.
Cám ơn bạn nhiều.
Nhưng còn 1 ý là tại các ô có merge cell thì Function chưa hiểu.
Bạn có cách nào khắc phục được giúp mình luôn ko vậy?
Lưu ý: các ô có merge cell là có cùng mã hoặc hàng KM nên có thể lấy từ dòng merge đầu làm dữ kiện cho các ô sau.
Nhờ bạn giúp dùm.
Cám ơn rất nhiều.
 
Bài đã được tự động gộp:

Code bạn viết rất hay và chạy đúng nhu cầu.
Cám ơn bạn nhiều.
Nhưng còn 1 ý là tại các ô có merge cell thì Function chưa hiểu.
Bạn có cách nào khắc phục được giúp mình luôn ko vậy?
Lưu ý: các ô có merge cell là có cùng mã hoặc hàng KM nên có thể lấy từ dòng merge đầu làm dữ kiện cho các ô sau.
Nhờ bạn giúp dùm.
Cám ơn rất nhiều.
Không cần chỉnh code đâu bạn, bạn dùng công thức này ở ô T10:
Mã:
T10=IFERROR(joinn(LOOKUP("zzzz",$K$10:K10)),"")
Rồi copy xuống!!!
 
Không cần chỉnh code đâu bạn, bạn dùng công thức này ở ô T10:
Mã:
T10=IFERROR(joinn(LOOKUP("zzzz",$K$10:K10)),"")
Rồi copy xuống!!!
Bài đã được tự động gộp:

Vẫn còn lỗi do ô trống lại có dữ liệu?
File đính kèm.
Bạn xem lại giúp.
Cám ơn
 

File đính kèm

Bài đã được tự động gộp:

Vẫn còn lỗi do ô trống lại có dữ liệu?
File đính kèm.
Bạn xem lại giúp.
Cám ơn
Bạn sửa code lại như vầy:
PHP:
Function joinn(cell As Range) As String
If IsNumeric(cell) And cell.MergeCells = False Then Exit Function
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "\d{7}"
    For Each item In .Execute(cell.MergeArea(1, 1))
        joinn = joinn & IIf(joinn = "", "", "-") & item
    Next
End With
End Function
 
Bạn sửa code lại như vầy:
PHP:
Function joinn(cell As Range) As String
If IsNumeric(cell) And cell.MergeCells = False Then Exit Function
With CreateObject("vbscript.regexp")
    .Global = True: .Pattern = "\d{7}"
    For Each item In .Execute(cell.MergeArea(1, 1))
        joinn = joinn & IIf(joinn = "", "", "-") & item
    Next
End With
End Function
Bài đã được tự động gộp:

Function chạy quá ok.
Đáp ứng 100% nhu cầu người dùng.
Cám ơn bạn excel_lv1.5 nhiều lắm.
Ko biết bạn ở đâu vậy?
Mình ở TP.HCM
 
Xin mấy thầy giúp đở , làm sao để lưu code random line này vào file excel khi cần mở ra sài ạ
đây là đoạn code em tìm trên google
 

File đính kèm

Các cao nhân giúp em cái tách số này với , chỉ cần lấy cái số sau chữ VAT Amt như ở mục C4 ạ ! e cám ơn các bác !
 

File đính kèm

Nếu gửi cho đối tác, vd. là tôi, thì sẽ có thể kết quả sai. Cái nguy hiểm nhất không phải là là kết quả sai mà là vẫn có kết quả nên đối tác sẽ không biết, không ý thức được là sai.

Còn nếu một mình trong vũ trụ, ta làm ta hưởng thì thế nào cũng được.

Trên máy tôi:12.JPG
 
Nếu gửi cho đối tác, vd. là tôi, thì sẽ có thể kết quả sai. Cái nguy hiểm nhất không phải là là kết quả sai mà là vẫn có kết quả nên đối tác sẽ không biết, không ý thức được là sai.

Còn nếu một mình trong vũ trụ, ta làm ta hưởng thì thế nào cũng được.

Trên máy tôi:View attachment 205594
Đúng là máy em đang để phân cách hàng nghìn là dấu "." thì sẽ bị sai.
Em thử dùng công thức này thì đúng, hi vọng sẽ đúng cho được nhiều trường hợp
Mã:
C4=--SUBSTITUTE(MID(B4;SEARCH("VAT Amt:";B4)+8;SEARCH(".00";B4;SEARCH("VAT Amt:";B4))-SEARCH("VAT Amt:";B4)-8);",";"")
 
Đúng là máy em đang để phân cách hàng nghìn là dấu "." thì sẽ bị sai.
Em thử dùng công thức này thì đúng, hi vọng sẽ đúng cho được nhiều trường hợp
Mã:
C4=--SUBSTITUTE(MID(B4;SEARCH("VAT Amt:";B4)+8;SEARCH(".00";B4;SEARCH("VAT Amt:";B4))-SEARCH("VAT Amt:";B4)-8);",";"")
Khà khà khà!
/-*+//-*+//-*+/
Với anh thì càng có thêm cơ hội mài giũa để ngày càng "chém ngọt hơn".
"Ngọc bất trác, bất thành khí"

Mã:
=LOOKUP(10^10,--MID(SUBSTITUTE(B4,",",IF(MID(1/2,2,1)=".",",",".")),SEARCH("vat amt:",B4)+8,ROW($1:$15)))

Chúc em ngày vui.
 

File đính kèm

Buồn quá, đối tác gửi cho tôi thông tin mà sao trong tài khoản của tôi chỉ còn 5 đồng là sao :D12.JPG
 
12.JPG

Tốt nhất là súng ống chuẩn bị chuẩn rồi thì mới lâm trận. Chứ vào cuộc rồi mới sửa, khi sẵn sàng thì cái sẵn sàng đó như bát nước chấm sau cuộc nhậu :D

Như cô nào đó bĩu môi: "Thôi đi anh ơi, "đây" hết hứng rồi. Lúc người ta hừng hực thì chả thể cứu người ta. Bây giờ "đây" tự giải quyết "xong" rồi :D
 
Không nên viết bài chỉ trích người khác để làm ngòi cho những cuộc tranh luận vô bổ nhé bạn.
Lấy cái tiểu tiết đem so với cái đại thể
Câu ông bà sao đúng quá "lấy bụng dạ tiểu..."

Ôi cái chí của con chim se sẻ nhỏ bé chỉ biết quanh quẩn chuyền từ cành này cành nọ vạch lá tìm sâu, chẳng làm nên tích sự, sao hiểu nỗi chí của đại bàng đang sải cánh vùng trời.

Khà khà khà
/-*+//-*+//-*+/
 
Không nên cãi nhau ngoài chuyên môn nhé bạn.
Thực ra dụng ý của tôi hoàn toàn khác, nhưng không chịu hiểu thì đành chịu.

Tôi thấy nhiều người cứ có bài thì hục đầu vào làm. Tôi thì khác.

Có 2 cách:
1. Làm với giả thiết dữ liệu và giả thiết về thiết lập trong CP mà mình đặt ra. Tức làm cho trường hợp cụ thể. Nhưng lúc đó người giúp phải ý thức cho người ta là công thức được đưa ra cho trường hợp cụ thể nào. Không ý thức cho người ta là làm hại người ta.

2. Yêu cầu người hỏi phải cụ thể. Tức yêu cầu mô tả các dạng dữ liệu có thể có, yêu cầu cho biết làm với thiết lập CP bất kỳ hay làm cho mọi thiết lập. Lúc đó tùy theo lực chọn của người hỏi mà làm. Hoặc chỉ cho trường hợp CP cụ thể, dạng dữ liệu cụ thể hoặc cho trường hợp tổng quát. Sự lựa chọn là của người ta, nếu mình muốn giúp với sự lựa chọn ấy thì giúp, không thì thôi.

Tôi chỉ muốn chỉ ra những cái "bẫy" mà người khác cần ý thức được. Nhưng nếu muốn chuyển sang tranh cãi, mạt sát thì tôi cũng sẵn sàng.

Nếu có vị quan nào định xóa bài của tôi thì hãy đọc các dòng trên và các bài của tôi trong chủ đề này.

Còn chú kia, chú quá ngạo mạn đấy. Chú nói ai là tiểu nhân đây? Rõ ràng sau bài đầu của tôi chủ chủ đề cũng nói là công thức không đúng cho họ. Chú cùn nên cho ta là tiểu nhân? Chú quá ảo tưởng về trình độ của chú đấy. Chú chắc gì bằng một phần của ta mà hỗn láo? Chẳng đã nhiều lần ta chỉ ra chỗ chú sai, chú chưa hoàn hảo? Chú có cái bụng mỡ thì vỗ làm gì nhiều thế? Một thời chú núp bóng một cô bé non choẹt lên mặt với thiên hạ chưa đủ sao? Cô bé có còn nhớ một thời tự vỗ ngực cho là hơn người? Mà cái ngực lép ấy, cùng lắm là quả nhót, quả ổi chứ có gì đâu mà vỗ. Nếu trong tương lai được ít ra là quả cam thì muốn vỗ thì vỗ nhé.

Đại bàng gì chỉ biết vài ngón tầm thường đi hù họa mấy kẻ chưa biết gì. Chú bay nhẩy trong vườn nhà mà tưởng là đang sải cánh trong không trung bao la, chú bơi lội trong ao nhà mà cứ nghĩ là đang vùng vẫy trên biển cả mênh mông.

Mặt bánh dầy thì đẹp đẽ gì mà phải "lên". Bụng mỡ, ngược lép thì có gì đâu để mà "vỗ". Khả năng không thể lường được các trường hợp dữ liệu mà không ý thức cho người hỏi về những hạn chế của phương pháp của mình. Biết cần cù và có vài mánh khóe nhưng hạn chế về tầm nhìn mà không chịu tiếp thu. Lại còn giở thói ăn nói cùn, làm nhục người khác.

Chú tưởng chú viết chữ "tiểu" mà không viết chữ "nhân" là không có gì sảy ra?

Các vị quan đọc xong cũng thấy là không có gì sảy ra? Là chả có chuyện "gây mất hòa khí" gì ở đây?

Tôi góp ý bình thường. Nếu chỉ muốn làm cho trường hợp dữ liệu cụ thể, thiết lập CP cụ thể thì chỉ cần nói ra thôi. Không ai bắt anh phải làm thế này hay thế kia. Chỉ muốn anh ý thức cho người khác về giải pháp của mình. Một câu ngắn gọn: "Công thức đưa ra chỉ dùng cho trường hợp ..." . Thế thôi.

Hỏi các vị quan. Tôi làm gì không phải trong những bài trước để chú Hiệp nhục mạ tôi? Đề nghị các quan cảnh cáo chú Hiệp này. Đây là lời đề nghị thôi. Tôi sẽ không xin xỏ, không tranh luận về chuyện cảnh cáo này nữa. Tôi chỉ chờ xem các vị quan đánh giá sự việc thế nào thôi. Đó có thể là tư liệu cho những màn kịch, thước phim hay trong tương lai.
 
Dữ liệu ít quá!

Thử:
Mã:
=LOOKUP(10^10,--MID(B4,SEARCH("vat amt:",B4)+8,ROW($1:$15)))
Enter

Thân
Cám ơn bác Hiệp và các bác khác nha , em thấy ổn lắm rồi nhưng mà phát sinh thêm cái này này nữa bác ơi ! Em chỉ cần lấy cái số sau TONG TIEN:
 

File đính kèm

Cám ơn bác Hiệp và các bác khác nha , em thấy ổn lắm rồi nhưng mà phát sinh thêm cái này này nữa bác ơi ! Em chỉ cần lấy cái số sau TONG TIEN:
Vậy là bạn lấy thêm 1 điều kiện nữa, ngoài điều kiện "vat amt:"? tức là truy tìm và lấy số liệu phía sau các chữ, hoặc: "vat amt:" hoặc "Tong tien:"?
Nếu đúng thì bạn dùng công thức sau:
(áp dụng cho excel 2010 trở lên)
Mã:
C4=AGGREGATE(14,6,--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",",""),1)
Enter fill xuống.
Nếu excel của bạn dưới 2010, bạn dùng:
Mã:
(excel 2007) C4=MAX(IFERROR(--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",",""),))
(excel 97-2003) C4=MAX(IF(ISERROR(--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",","")),,--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",","")))
Ctrl+Shift+Enter fill xuống.

Thân
 

File đính kèm

Lần chỉnh sửa cuối:
Vậy là bạn lấy thêm 1 điều kiện nữa, ngoài điều kiện "vat amt:"? tức là truy tìm và lấy số liệu phía sau các chữ, hoặc: "vat amt:" hoặc "Tong tien:"?
Nếu đúng thì bạn dùng công thức sau:
(áp dụng cho excel 2010 trở lên)
Mã:
C4=AGGREGATE(14,6,--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",",""),1)
Enter fill xuống.
Nếu excel của bạn dưới 2010, bạn dùng:
Mã:
(excel 2007) C4=MAX(IFERROR(--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",",""),))
(excel 97-2003) C4=MAX(IF(ISERROR(--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",","")),,--SUBSTITUTE(MID(B4,SEARCH({"vat amt:","tong tien:"},B4)+{8,10},ROW($1:$15)),",","")))
Ctrl+Shift+Enter fill xuống.

Thân
Fill xuống là e bấm CTRL + C và đè Shift kéo xuống rồi Enter hả bác ? có cách nào Fill nhanh hơn ko ạ , e dùng exel 2010
 
Fill xuống là e bấm CTRL + C và đè Shift kéo xuống rồi Enter hả bác ? có cách nào Fill nhanh hơn ko ạ , e dùng exel 2010
Sau khi dán công thức vào ô đầu, bạn có thể làm theo các cách sau đây:
1. Copy ô có công thức đúng, nhấn Ctrl+C, sau đó chọn Vùng muốn dán, nhấn Ctrl+V
2. Chọn ô có công thức, sẽ hiện vùng biên màu xanh, góc phải dưới có ô vuông nhỏ, đưa chuột vào ô vuông nhỏ đó, nhấn lì chuột trái rồi kéo xuống. (Cái này gọi là 'fill').
3. Hoặc giả: nếu cột trước hay sau nó có dữ liệu gì bất kỳ, tức không phải ô rỗng, khi đưa trỏ vào ô vuông nhỏ, click chuột trái liền 2 lần.
fill.png

Thân
 
Lần chỉnh sửa cuối:
Sau khi dán công thức vào ô đầu, bạn có thể làm theo các cách sau đây:
1. Copy ô có công thức đúng, nhấn Ctrl+C, sau đó chọn Vùng muốn dán, nhấn Ctrl+V
2. Chọn ô có công thức, sẽ hiện vùng biên màu xanh, góc phải dưới có ô vuông nhỏ, đưa chuột vào ô vuông nhỏ đó, nhấn lì chuột trái rồi kéo xuống. (Cái này gọi là 'fill').
3. Hoặc giả: nếu cột trước hay sau nó có dữ liệu gì bất kỳ, tức không phải ô rỗng, khi đưa trỏ vào ô vuông nhỏ, click chuột trái liền 2 lần.
View attachment 205695

Thân
Nếu ko dùng chuột thì có phím nào khác ko bác ?
 
E cám ơn các bác nhiều , bây h mới biết thêm CTRL + F2 là in , e bị thêm cái này là ko mở 1 lúc 2 excel ở 2 cửa sổ khác nhau được , có bác nào biết cách làm cho 2 file excel mở song song để dễ làm ko ạ ?
 
E cám ơn các bác nhiều , bây h mới biết thêm CTRL + F2 là in , e bị thêm cái này là ko mở 1 lúc 2 excel ở 2 cửa sổ khác nhau được , có bác nào biết cách làm cho 2 file excel mở song song để dễ làm ko ạ ?
1539595427097.png1539595665876.png1539595818970.png


1)Bạn mở lên 1 file bình thường, sao đó nhấn Shift và nhấp vào file vừa mới mở phía dưới thanh công cụ.
2)Lúc đó sẽ xuất hiện thêm 1 file trắng nữa.Trên file bạn vào "file" (Góc trên trái) để mở 1 file nào đó tùy muốn
3)Bây giờ bạn đã có 2 file, mở lên 1 file sử dụng phím win+phím mũi tên trái.Tương tự file còn lại phím win+phím mũi tên phải.
Mình không có khiếu diễn đạt ,mong bạn hiểu
 
Em muốn dùng hàm IF để C4 tự cho kết quả mà mò mãi không được và có cách nào nhanh hơn không ạ ?
 

File đính kèm

ng file mới của mình ?, hay là dữ liệu trong file mới của bạn khác với dữ liệu đã có ??
* Trong hàm trên Pos là 1 Name được khai báo, để công thức gọn và nhẹ hơn. cụ thể
Pos = =MIN(IF(ISERROR(FIND({0,1,2,3,4,5,6,7,8,9},Sheet1!$A2)),"",FIND({0,1,2,3,4,5,6,7
 

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

Back
Top Bottom