Nối chuỗi trong mảng kèm điều kiện

  • Thread starter Thread starter OverAC
  • Ngày gửi Ngày gửi
Liên hệ QC

OverAC

Đỗ Nguyên Bình
Thành viên BQT
Administrator
Tham gia
30/5/06
Bài viết
2,693
Được thích
15,089
Có thắc mắc này nhờ các anh chị giúp đở:
Giả sử có bảng như sau:
|A|B|C|D|E
1|A1|B2|C3|D4|E5

Kết quả mong muốn là: chuỗi "A-B-C-D-E" hoặc "ABCDE"

Nhờ mọi người giúp đở lập công thức trong trường hợp tổng quát.

Thân Cảm Ơn
OverAC
 
Lần chỉnh sửa cuối:
Bác dùng code này.
PHP:
Function gchuoi(vung As Range, Optional kytu As String = "-") As String
For Each cel In vung
temp = temp & Left(cel, 1) & kytu
Next
gchuoi = Left(temp, Len(temp) - 1)
End Function
Hoặc bổ sung công thức cho các trường hợp nhiều chữ hơn:
PHP:
Function gchuoi(vung As Range, Optional kytu As String = "-") As String
For Each cel In vung
For i = 1 To Len(cel)
If Not IsNumeric(Mid(cel, i, 1)) Then temp = temp & Mid(cel, i, 1) & kytu
Next
Next
gchuoi = Left(temp, Len(temp) - 1)
End Function
Và công thức như sau:
=gchuoi(A1:E1)
Hoặc:
=gchuoi(A1:E1,"-")
Thân.
 
Lần chỉnh sửa cuối:
Có thắc mắc này nhờ các anh chị giúp đở:
Giả sử có bảng như sau:
|A|B|C|D|E
1|A1|B2|C3|D4|E5
Kết quả mong muốn là: A-B-D-C-D-E

Nhờ mọi người giúp đở lập công thức trong trường hợp tổng quát.

Thân Cảm Ơn
OverAC
Chưa hiểu lắm Bình ơi!
Nhìn hình thấy có 5 cells ---> Tại sao nối chuổi lại thành 6 phần tử?
Điều kiên nối chuổi là gì? (Nhìn kết quả không đoán được quy luật)
Người ta post bài box CÔNG THỨC mà Po
 
Hơi ngắn gọn nên chưa hiểu hết quy luật của chuỗi, Bình giải thích thêm được không?
 
À, em đang nghĩ đến việc tổng quát nên lại quay sang VBA rồi!
Sorry!
Thân.
 
Có thắc mắc này nhờ các anh chị giúp đở:
Giả sử có bảng như sau:
|A|B|C|D|E
1|A1|B2|C3|D4|E5
Kết quả mong muốn là: A-B-D-C-D-E
Có lẽ kết quả phải là A-B-C-D-E mới đúng!
Tuy nhiên, mình cũng đã nghiên cứu về vấn đề này và hầu như không có giải pháp cho công thức (VBA thì hiển nhiên được rồi)
Lấy ví dụ: {Left(A1:E1)} nó sẽ trả về 1 mảng là {"A","B","C","D","E"}
Nhưng để nối các phần tử trong mảng này thì công thức có lẽ không làm được! Hàm concatenate của excel cũng không nối được mảng này! Cái này có nói trên GPE rồi!
Tuy nhiên nếu dùng cột phụ với hàm concatenate thì có thể giải quyết được! không biết ý Bình có cho dùng cột phụ hay không?
 
Lần chỉnh sửa cuối:
Xin lỗi em nhầm: Kết quả mong muốn là "A-B-C-D-E"

Nếu đơn giản hơn kết quả là ABCDE cũng được (lúc đó em có nghĩ tới công thức {=concatenate(left(A1:D1,5))} nhưng không thành công.
 
Cái vụ nối các phần tử trong mãng lại với nhau tôi đã nghiên cứu từ rất lâu... có tham khảo các trang Excel của nước ngoài luôn...
Kết luận:
- Dùng VBA không có vấn đề
- Công thức chỉ có thể thực hiện được với ít nhất 1 cột phụ
 
Xin lỗi em nhầm: Kết quả mong muốn là "A-B-C-D-E"

Nếu đơn giản hơn kết quả là ABCDE cũng được (lúc đó em có nghĩ tới công thức {=concatenate(left(A1:D1,5))} nhưng không thành công.
Em tìm được có mỗi công thức này
3312702153_dd5d8ae2da_o.jpg


add-in morefunc các bác có thể đọc thêm ở đây: http://www.giaiphapexcel.com/forum/showthread.php?t=643
 
Web KT

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

Back
Top Bottom