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

Liên hệ QC

kvd1980

Thành viên mới
Tham gia
1/6/11
Bài viết
26
Được thích
2
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

  • plist ARMANI PLID 31454.xls
    26.5 KB · Đọc: 15
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
 
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.
 
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?
 
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:
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.
 
Web KT
Back
Top Bottom