Công thức dò tìm tham chiếu trong chuỗi ký tự cho trước

Liên hệ QC
Bác ui, bác hướng dẫn cho cháu hàm Joinif của bác để làm trường hợp này với bác nhé
Cháu tìm mãi hướng dẫn sử dụng hàm này của bác mà không thấy bác à
Bạn đọc trong công thức thì sẽ thấy mà,
PHP:
Function JoinText(ByVal Delimiter As String, ParamArray Arrays()) As String
PHP:
Function JoinIf(ByVal Delimiter As String, ByVal CriteriaArray, ByVal Criteria, Optional ByVal TargetArray) As String
cú pháp: hàm JoinText(dấu phân cách, đối số động(mảng động))
joinIF(dấu phân cách,vùng điều kiện, điều kiện, vùng kết quả)
 
Lần chỉnh sửa cuối:
Bác ui, bác hướng dẫn cho cháu hàm Joinif của bác để làm trường hợp này với bác nhé
Cháu tìm mãi hướng dẫn sử dụng hàm này của bác mà không thấy bác à
Xem file và hổng hiểu gì ráo
File Excel mà bạn làm gì trong đó vậy? Sao giống vẽ bùa quá
 
Xem file và hổng hiểu gì ráo
File Excel mà bạn làm gì trong đó vậy? Sao giống vẽ bùa quá
Bác ơi, cháu tô màu vào đó để bác rễ nhìn thấy thôi mà
Cháu muốn bác dùng hàm Joinif giống như hàm
=LOOKUP(2;1/(G17:G20=$F$16)/(G22:G25=$F$21)/(G27:G30=$F$26);G32:G35)
Nhưng nhược điểm của hàm Lookup() thì chỉ tìm được trên 1 cột, còn hàm của bác thì tìm được mảng rộng hơn
 
Bác ơi, cháu tô màu vào đó để bác rễ nhìn thấy thôi mà
Cháu muốn bác dùng hàm Joinif giống như hàm
=LOOKUP(2;1/(G17:G20=$F$16)/(G22:G25=$F$21)/(G27:G30=$F$26);G32:G35)
Nhưng nhược điểm của hàm Lookup() thì chỉ tìm được trên 1 cột, còn hàm của bác thì tìm được mảng rộng hơn
Thì chắc là vầy:
Mã:
=JoinIf("; ",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),">0",G32:H35)
Bấm Ctrl + Shift + Enter nhé
 
Bác ơi, cháu tô màu vào đó để bác rễ nhìn thấy thôi mà
Cháu muốn bác dùng hàm Joinif giống như hàm
=LOOKUP(2;1/(G17:G20=$F$16)/(G22:G25=$F$21)/(G27:G30=$F$26);G32:G35)
Nhưng nhược điểm của hàm Lookup() thì chỉ tìm được trên 1 cột, còn hàm của bác thì tìm được mảng rộng hơn
Cháu sử dụng công thức mảng sau:

=JoinText(",",IF(G17:H20=F16,IF(G22:H25=F21,IF(G27:H30=F26,G32:H35,1/0),1/0),1/0))

Cháu nhớ kết thúc bằng Ctrl+Shift+Enter.
 
Thì chắc là vầy:
Mã:
=JoinIf("; ",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),">0",G32:H35)
Bấm Ctrl + Shift + Enter nhé
Cháu cảm ơn bác
Bác ơi sao cháu đưa vào trong code như này không được hở bác?
Sub vd()
Range("L46") = "=JoinIf("",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),">0",G32:H35)"
End Sub
Bài đã được tự động gộp:

Cháu sử dụng công thức mảng sau:

=JoinText(",",IF(G17:H20=F16,IF(G22:H25=F21,IF(G27:H30=F26,G32:H35,1/0),1/0),1/0))

Cháu nhớ kết thúc bằng Ctrl+Shift+Enter.
Cháu cảm ơn bác
 
Cháu cảm ơn bác
Bác ơi sao cháu đưa vào trong code như này không được hở bác?
Sub vd()
Range("L46") = "=JoinIf("",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),">0",G32:H35)"
End Sub
Bài đã được tự động gộp:


Cháu cảm ơn bác
Vầy mới đúng:
Mã:
Sub vd()
  Range("L46").FormulaArray = "=JoinIf("""",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),"">0"",G32:H35)"
End Sub
Bị nó là công thức mảng
 
Vầy mới đúng:
Mã:
Sub vd()
  Range("L46").FormulaArray = "=JoinIf("""",(G17:H20=$F$16)/(G22:H25=$F$21)/(G27:H30=$F$26),"">0"",G32:H35)"
End Sub
Bị nó là công thức mảng
Bác ơi cháu lại làm phiền bác tý tẹo nữa bác nhé
Nếu như ở mảng lấy kết quả nó có các số hoặc ký tự giống nhau thì

- Hàm không liệt kê ra tất cả mà nó chỉ lấy ký tự đại diện thôi bác à (Tức là bỏ các ký tự trùng đi)

Cháu muốn nó liệt kê ra tất cả liệu có được không hở bác?

Cháu cảm ơn bác
 

File đính kèm

Bác ơi cháu lại làm phiền bác tý tẹo nữa bác nhé
Nếu như ở mảng lấy kết quả nó có các số hoặc ký tự giống nhau thì

- Hàm không liệt kê ra tất cả mà nó chỉ lấy ký tự đại diện thôi bác à (Tức là bỏ các ký tự trùng đi)

Cháu muốn nó liệt kê ra tất cả liệu có được không hở bác?

Cháu cảm ơn bác
Giải pháp thì đã có người làm rồi. Ở đây xin lưu ý:
- Nếu muốn nối chuỗi và có loại bỏ trùng thì dùng JoinIF
- Nếu muốn nối chuỗi và lấy toàn bộ thì dùng JoinText
 
Giải pháp thì đã có người làm rồi. Ở đây xin lưu ý:
- Nếu muốn nối chuỗi và có loại bỏ trùng thì dùng JoinIF
- Nếu muốn nối chuỗi và lấy toàn bộ thì dùng JoinText
Bác ơi hàm JoinIF cũng liệt kê được hết theo cách của anh
phuocam
Bác à.
Công thức của bác lợi hại thật bác à.
Nhưng cháu chỉ sợ là công thức mảng thì tốc độ sẽ bị chậm thôi bác à.
 
Bác ơi hàm JoinIF cũng liệt kê được hết theo cách của anh
phuocam
Bác à.
Bạn nhìn kỹ đi, đó là hàm JOINTEXT chứ hổng phải JOINIF
Tôi viết 2 hàm này có mục đích sử dụng khác nhau đấy
-------------------------
Công thức của bác lợi hại thật bác à.
Nhưng cháu chỉ sợ là công thức mảng thì tốc độ sẽ bị chậm thôi bác à.
Mảng đương nhiên là chậm nhưng chúng ta dùng Excel để tính toán là chính đúng không? Vậy không lý nào dùng Excel để nối chuỗi đến vài chục ngàn dòng rồi lại than chậm với nhanh
 
Bạn nhìn kỹ đi, đó là hàm JOINTEXT chứ hổng phải JOINIF
Tôi viết 2 hàm này có mục đích sử dụng khác nhau đấy
-------------------------

Mảng đương nhiên là chậm nhưng chúng ta dùng Excel để tính toán là chính đúng không? Vậy không lý nào dùng Excel để nối chuỗi đến vài chục ngàn dòng rồi lại than chậm với nhanh
Bác
ndu96081631
ui, cho cháu hởi chút xíu
Tại sao hàm JoinText lại cứ báo lỗi như này hở bác?
 

File đính kèm

Bác
ndu96081631
ui, cho cháu hởi chút xíu
Tại sao hàm JoinText lại cứ báo lỗi như này hở bác?
Câu lệnh quá dài, phải cắt bớt mới được:
Mã:
Range("Z190").FormulaArray = "JoinText_DNU("""",IF(('1'!$AA$105:$DRB$112=AA178)*" & _
                                "('1'!$AA$114:$DRB$121=AA179)*('1'!$AA$123:$DRB$130=AA180)*" & _
                                "('1'!$AA$132:$DRB$139=AA181)*('1'!$AA$141:$DRB$148=AA182)*" & _
                                "('1'!$AA$150:$DRB$157=AA183),'1'!$AA$159:$DRB$166,1/0))"
Ah. Sao bạn sửa tên hàm của tôi vậy? Tôi không thích đâu nha. Nói chung của tôi sao cứ để y vậy giùm. Nếu không thích thì đừng xài
Hy vọng bạn để y tên hàm JoinText cho tôi. Cảm ơn!
 
Câu lệnh quá dài, phải cắt bớt mới được:
Mã:
Range("Z190").FormulaArray = "JoinText_DNU("""",IF(('1'!$AA$105:$DRB$112=AA178)*" & _
                                "('1'!$AA$114:$DRB$121=AA179)*('1'!$AA$123:$DRB$130=AA180)*" & _
                                "('1'!$AA$132:$DRB$139=AA181)*('1'!$AA$141:$DRB$148=AA182)*" & _
                                "('1'!$AA$150:$DRB$157=AA183),'1'!$AA$159:$DRB$166,1/0))"
Ah. Sao bạn sửa tên hàm của tôi vậy? Tôi không thích đâu nha. Nói chung của tôi sao cứ để y vậy giùm. Nếu không thích thì đừng xài
Hy vọng bạn để y tên hàm JoinText cho tôi. Cảm ơn!
Hi hi..... Cháu cảm ơn bác
Lúc trước cháu cũng đang định nghĩ như thế
Nhưng cháu chưa làm
Cháu đang thử nghiệm hàm của bác chạy tốc độ có nhanh không?
 
Câu lệnh quá dài, phải cắt bớt mới được:
Mã:
Range("Z190").FormulaArray = "JoinText_DNU("""",IF(('1'!$AA$105:$DRB$112=AA178)*" & _
                                "('1'!$AA$114:$DRB$121=AA179)*('1'!$AA$123:$DRB$130=AA180)*" & _
                                "('1'!$AA$132:$DRB$139=AA181)*('1'!$AA$141:$DRB$148=AA182)*" & _
                                "('1'!$AA$150:$DRB$157=AA183),'1'!$AA$159:$DRB$166,1/0))"
Ah. Sao bạn sửa tên hàm của tôi vậy? Tôi không thích đâu nha. Nói chung của tôi sao cứ để y vậy giùm. Nếu không thích thì đừng xài
Hy vọng bạn để y tên hàm JoinText cho tôi. Cảm ơn!
Bác
ndu96081631
ơi,
Nó không ra kết quả đâu bác à
Hàm bị lỗi rồi bác à.
 
Câu lệnh quá dài, phải cắt bớt mới được:
Mã:
Range("Z190").FormulaArray = "JoinText_DNU("""",IF(('1'!$AA$105:$DRB$112=AA178)*" & _
                                "('1'!$AA$114:$DRB$121=AA179)*('1'!$AA$123:$DRB$130=AA180)*" & _
                                "('1'!$AA$132:$DRB$139=AA181)*('1'!$AA$141:$DRB$148=AA182)*" & _
                                "('1'!$AA$150:$DRB$157=AA183),'1'!$AA$159:$DRB$166,1/0))"
Ah. Sao bạn sửa tên hàm của tôi vậy? Tôi không thích đâu nha. Nói chung của tôi sao cứ để y vậy giùm. Nếu không thích thì đừng xài
Hy vọng bạn để y tên hàm JoinText cho tôi. Cảm ơn!
Đấy là cháu viết tên bác là "NDU" Nhưng cháu viết thành "DNU' đấy bác à.
Bác ơi bác xem lại cho cháu với
Nó vẫn chưa ra kết quả bác à
 
Bạn nên sửa tiêu đề cụ thể hơn chút. Ví dụ là: "Công thức dò tìm tham chiếu trong chuỗi ký tự cho trước"
B3=LOOKUP(2;1/SEARCH($D$3:$D$14;A3);$E$3:$E$14)
Copy paste các ô còn lại bạn nhé
1629079628816.png1629079782876.png
Sao mình copy công thức vào và enter thì nó báo lỗi vầy, nhấn OK thì nó báo hightlight ở số 2 trên thanh công thức. Mình đang dùng excel 2019.
 
Web KT

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

Back
Top Bottom