Câu hỏi về REPLACE hàng loạt trong excel

Liên hệ QC

unknown1512

Thành viên mới
Tham gia
8/5/09
Bài viết
8
Được thích
0
Mình gui lại hình nè. Các bạn làm ơn giải dùm bài toán này nha. Tóm tắt là: ban đầu có A,B làm sao để có C.
Cảm ơn và mong được giúp đỡ...-\\/.
Untitled.png
 
Lần chỉnh sửa cuối:
Tôi thấy trường hợp dưới không theo quy luật mà bạn đã mô tả.
Nếu có quy luật khác, bạn nên mô tả một cách cụ thể.
Và nếu được, bạn nên đưa dữ liệu của bạn lên luôn. Đừng giả lập quá xa so với dữ liệu thật. có thể bạn không biết cách vận dụng cho dữ liệu thật của bạn.
 
xin lỗi mình sơ ý quá. nó phải là: 1+5+xxxx >> a+e+xxxx
 
Mình xin bổ sung là:

1+5+xxxx >> a+e+xxxx
a1+e5+xxxx >> a1+e5+xxxx
1111+555+xxxx >> 1111+555+xxxx
 
Có thể như thế này
Bạn xem thử trong file coi còn trường hợp lạ nào nữa không nhé
Thân
 

File đính kèm

Có thể như thế này
Bạn xem thử trong file coi còn trường hợp lạ nào nữa không nhé
Thân

- Bạn ơi gần đúng rồi, bạn làm giúp 2 trường hợp này nữa nha:

(1) + aaa >>> (a) + aaa
1 - 2 +aaa >>> a - b + aaa

- Trường hợp cụ thể của mình giống vầy nè: 8000-12,5% LK-vách 22,5%- mái 300- nền 85800
(mình cần thay đổi 8000, 300, 85800 thành những con số khác)

Cảm ơn bạn nhiều lắm..
 
- Bạn ơi gần đúng rồi, bạn làm giúp 2 trường hợp này nữa nha:

(1) + aaa >>> (a) + aaa
1 - 2 +aaa >>> a - b + aaa

- Trường hợp cụ thể của mình giống vầy nè: 8000-12,5% LK-vách 22,5%- mái 300- nền 85800
(mình cần thay đổi 8000, 300, 85800 thành những con số khác)

Cảm ơn bạn nhiều lắm..
(1) ==> 2 cái dấu ngoặc () - cái này hổng có trong bảng thay đổi của bạn
1 - 2 ==> cái dấu trừ cũng hổng có luôn
Còn trường hợp nào nữa hông, đưa lên luôn, "quất một phát" khỏi phải sửa
Thân
 
Bạn ơi, dấu () là chứa biểu thức số cần thay đổi, dấu "-" là chỉ dấu của phép tính (thay vì dấu +)... như thế này nè bạn: 8000-12,5% LK-(vách 22,5%- mái 300- nền 85800)
(mình cần thay đổi 8000, 300, 85800 thành những con số khác)
Thanks nhiều..
 
Bạn ơi, dấu () là chứa biểu thức số cần thay đổi, dấu "-" là chỉ dấu của phép tính (thay vì dấu +)... như thế này nè bạn: 8000-12,5% LK-(vách 22,5%- mái 300- nền 85800)
(mình cần thay đổi 8000, 300, 85800 thành những con số khác)
Thanks nhiều..
Hihi, bạn nhờ thì làm thôi, nhưng cảm thấy sao á, làm theo yêu cầu của bạn nhé, có thể xong vẫn phải sửa
Híc
Mã:
Public Function Thay(Vung, Cll) As String
    Dim I, J, VuDo, Tam, K, Kt, KtThay, Wf
    Set Wf = Application.WorksheetFunction
    VuDo = Replace(Cll, " ", ""): Cll = Replace(Cll, " ", ""): Cll = Replace(Cll, "-", " "): Cll = Replace(Cll, "+", " ")
        For I = 1 To Len(Cll)
            If I = InStrRev(Cll, " ") + 1 Then
                KtThay = KtThay & Right(Cll, Len(Cll) - InStrRev(Cll, " "))
                KtThay = IIf(Val(KtThay) = 0, KtThay, Val(KtThay))
                    If Wf.CountIf(Vung, KtThay) Then
                        Tam = Tam & Vung(Wf.Match(KtThay, Vung, 0)).Offset(, 1)
                        Exit For
                    Else
                        Tam = Tam & KtThay
                        Exit For
                    End If
            Else
                K = K + 1
                Kt = Mid(Cll, I, 1)
                    If Kt = " " Then
                        KtThay = KtThay & Mid(Cll, I - K + 1, K - 1)
                        KtThay = IIf(Val(KtThay) = 0, KtThay, Val(KtThay))
                            If Wf.CountIf(Vung, KtThay) Then
                                Tam = Tam & Vung(Wf.Match(KtThay, Vung, 0)).Offset(, 1) & Mid(VuDo, I, 1)
                                K = 0: KtThay = ""
                            Else
                                Tam = Tam & KtThay & Mid(VuDo, I, 1)
                                K = 0: KtThay = ""
                            End If
                    End If
            End If
        Next I
     Thay = Tam
End Function
Thân
 

File đính kèm

Bạn ơi:

Replace(Cll, " ", ""): Cll = Replace(Cll, " ", ""): Cll = Replace(Cll, "-", " "): Cll = Replace(Cll, "+", " ") nghĩa là "bỏ qua" khoảng trắng, dấu "+", dấu "-".

Biểu thức của mình có thể là: 8000-12,5% LK-(vách 22,5%- mái 300- nền 85800). Nên mình thêm vào : Cll = Replace(Cll, "%", " "): Cll = Replace(Cll, "(", " ") thì chương trình chỉ thay được số 8000, 12,5 >>>>không thay được số 300, 5800. Vậy cho mình hỏi bạn làm sao để "bỏ qua" thêm các chữ "vách", "mái"... hoặc các chữ tiếng việt có dấu khác để vẫn thay thế được các số phía sau của chuỗi hỗn hợp này?

Cảm ơn và trân trọng sự giúp đỡ rất nhiệt tình của bạn..
 
Bạn ơi:

Replace(Cll, " ", ""): Cll = Replace(Cll, " ", ""): Cll = Replace(Cll, "-", " "): Cll = Replace(Cll, "+", " ") nghĩa là "bỏ qua" khoảng trắng, dấu "+", dấu "-".

Biểu thức của mình có thể là: 8000-12,5% LK-(vách 22,5%- mái 300- nền 85800). Nên mình thêm vào : Cll = Replace(Cll, "%", " "): Cll = Replace(Cll, "(", " ") thì chương trình chỉ thay được số 8000, 12,5 >>>>không thay được số 300, 5800. Vậy cho mình hỏi bạn làm sao để "bỏ qua" thêm các chữ "vách", "mái"... hoặc các chữ tiếng việt có dấu khác để vẫn thay thế được các số phía sau của chuỗi hỗn hợp này?

Cảm ơn và trân trọng sự giúp đỡ rất nhiệt tình của bạn..
Thì mình đã nói rồi mà, mình chỉ làm theo yêu cầu trong file tải lên của bạn thôi, chứ mấy bài dạng này _ dữ liệu trong bài gởi một đàng, dữ liệu thật một nẻo_ thì làm sao được, càng sửa càng....trật lấc. Híc
Nếu dữ liệu không thuộc loại bí mật không đưa lên được, bạn đưa file thật lên, muốn thay đổi như thế nào, thay đổi theo bảng biểu nào, kết quả ra sao, ghi chú thật rõ mới hy vọng giúp bạn được.
Mình nói có trật chỗ nào, mong bạn bỏ quá
Thân
 
Mình đã tự viết code và giải quyết xong rồi. Cảm ơn bạn nhé.
 
Web KT

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

Back
Top Bottom