Nối chuỗi theo điềun kiện & chèn thêm số dòng còn thiếu"

kvd1980

Thành viên mới
Tham gia ngày
1 Tháng sáu 2011
Bài viết
26
Được thích
2
Điểm
365
Chào các bạn,

Mình có file đính kèm, nhờ các bạn giúp đỡ:

1. Ở ô O1, nếu mình muốn đặt công thức dạng :" if (A1=A2=...An, B1&B2&,...Bn,0) thì công thức này phải viết như thế nào?
2. Nếu A1-A2 = n thì sẽ tự động chèn thêm n dòng có nội dung giống như dòng 1 (chắ phải dùng VBA nhưng mình lại dốt món này).

Cám ơn các bạn
 

File đính kèm

saobekhonglac

Thành viên mới
Tham gia ngày
1 Tháng mười một 2008
Bài viết
1,493
Được thích
1,389
Điểm
860
Nơi ở
Long An - HCM
Chào các bạn,

Mình có file đính kèm, nhờ các bạn giúp đỡ:

1. Ở ô O1, nếu mình muốn đặt công thức dạng :" if (A1=A2=...An, B1&B2&,...Bn,0) thì công thức này phải viết như thế nào?
2. Nếu A1-A2 = n thì sẽ tự động chèn thêm n dòng có nội dung giống như dòng 1 (chắ phải dùng VBA nhưng mình lại dốt món này).

Cám ơn các bạn
Bạn sửa lại tiêu đề nha
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
10,381
Được thích
12,675
Điểm
1,560
Tiêu đề như thế là phạm luật diễn đàn: tiêu đề chung chung.
Đổi tiêu đề lại thành: "1. nối chuỗi theo điềun kiện & 2. chèn thêm số dòng còn thiếu" rồi tính tiếp.
 

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
10,381
Được thích
12,675
Điểm
1,560
1. Nối nhiều hơn 2 chuỗi là một trong những điều mà Excel làm rất tệ. (phải thông cảm cho nó, dân làm bảng tính trải rộng là dân tài chính, không có lý do gì họ phải nói trên 2 chuỗi). Tuy các phiên bản 2019 và 365 có hàm nối chuỗi nhưng cũng khong khá lắm. Vì vậy, vấn đề này làm hàm UDF bằng VBA khoẻ hơn.

2. gần như 100% khả năng phải làm VBA. Đồng thời, bạn cần chio biết nếu bạn chèn thêm dòng thì cái công thức ở vấn đề 1 nó tính ra sao?
 

kvd1980

Thành viên mới
Tham gia ngày
1 Tháng sáu 2011
Bài viết
26
Được thích
2
Điểm
365
1. Nối nhiều hơn 2 chuỗi là một trong những điều mà Excel làm rất tệ. (phải thông cảm cho nó, dân làm bảng tính trải rộng là dân tài chính, không có lý do gì họ phải nói trên 2 chuỗi). Tuy các phiên bản 2019 và 365 có hàm nối chuỗi nhưng cũng khong khá lắm. Vì vậy, vấn đề này làm hàm UDF bằng VBA khoẻ hơn.

2. gần như 100% khả năng phải làm VBA. Đồng thời, bạn cần chio biết nếu bạn chèn thêm dòng thì cái công thức ở vấn đề 1 nó tính ra sao?
cám ơn bạn
1. Vấn đề 1: bạn có thể viết giúp đoạn code VBA dùm UDF được không ạ? vì mình mít đặt món này
2. Vấn đề 2: Theo mình nên tách ra 1 VBA riêng để không xung đột với vấn đề 1
 
Lần chỉnh sửa cuối:

VetMini

Chuyên gia GPE
Tham gia ngày
21 Tháng mười hai 2012
Bài viết
10,381
Được thích
12,675
Điểm
1,560
cám ơn bạn
1. Vấn đề 1: bạn có thể viết giúp đoạn code VBA dùm UDF được không ạ? vì mình mít đặt món này
2. Vấn đề 2: Theo mình nên tách ra 1 VBA riêng để không xung đọt với vấn đề 1
Đương nhiên là tối thiểu phải tách riêng. Nhưng câu hỏi của tôi là cái nào thực hiện trước? Theo ý của bạn thì 1 thực hiện trước. Nhưng theo tôi thấy thì 2 phải thực hiện trước.

Function NoiChuoiNhieuDK(dk As Range, chuoi As Range)
' hàm nối chuỗi theo dạng if (A1=A2=...An, B1&B2&,...Bn,0)
Dim i As Long, a As Variant
a = dk.Value
For i = 2 To UBound(a) ' xét lôgic
if a(i, 1) <> (a(i-1, 1) Then
NoiChuoiNhieuDK = 0
Exit Function
End If
Next i
a = chuoi.Value ' lôgic đã thoả, bắt đầu nối chuỗi
NoiChuoiNhieuDK = ""
For i = 1 To UBound(a)
NoiChuoiNhieuDK = NoiChuoiNhieuDK & a(i, 1)
Next i
End Function

Gọi hàm: =NoiChuoiNhieuDK(A1:A10, B1:B10)

Vấn đề 2 chưa thể code được vì cái lô gic bạn đưa ra chưa đúng:
1602571648639.png
A1 không bao giờ lớn hơn A2. Bạn muốn nói A2-A1=n ?
Vả lại, code chèn dòng theo số như thế ở đây có rất nhiều. Chịu khó tìm cũng sẽ thấy.

Chú: đừng bao giờ dùng từ "mít đặc". Trừ phi bạn muốn nói riễu.
 
Top Bottom