Lọc ra các ký tự chữ số (1 người xem)

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

Người dùng đang xem chủ đề này

tungbom

Thành viên mới
Tham gia
24/8/21
Bài viết
18
Được thích
2
Chào anh chị

Em 1 có bảng dãy ký tự nhưng chỉ muốn lọc lấy dãy số 1,450,000

- Giảm giá 1,000,000đ- Giảm giá 940,000đ- Mua 1 trong 3 Loa thanh Samsung với giá ưu đãi- Mua 1 số Loa karaoke giảm giá 20%(Loa mua kèm không áp dụng thêm khuyến mãi khác)- Mua Loa/bộ loa/amply karaoke giảm giá 10%(Loa mua kèm không áp dụng thêm khuyến mãi khác)
em muốn lấy thành 2 cột
cột 1: 1,000,000
cột 2 940,000

Nhờ Anh Chị Cao nhân hướng dẫn giúp em với ạ
Em cám ơn
 

File đính kèm

Chào anh chị

Em 1 có bảng dãy ký tự nhưng chỉ muốn lọc lấy dãy số 1,450,000

- Giảm giá 1,000,000đ- Giảm giá 940,000đ- Mua 1 trong 3 Loa thanh Samsung với giá ưu đãi- Mua 1 số Loa karaoke giảm giá 20%(Loa mua kèm không áp dụng thêm khuyến mãi khác)- Mua Loa/bộ loa/amply karaoke giảm giá 10%(Loa mua kèm không áp dụng thêm khuyến mãi khác)
em muốn lấy thành 2 cột
cột 1: 1,000,000
cột 2 940,000

Nhờ Anh Chị Cao nhân hướng dẫn giúp em với ạ
Em cám ơn
Không phải cao nhân có được không bạn.Mà cái này là từ phần mềm xuất ra à bạn.
 
Như thế này có đúng ý bạn không?
 

File đính kèm

Chào anh chị

Em 1 có bảng dãy ký tự nhưng chỉ muốn lọc lấy dãy số 1,450,000

- Giảm giá 1,000,000đ- Giảm giá 940,000đ- Mua 1 trong 3 Loa thanh Samsung với giá ưu đãi- Mua 1 số Loa karaoke giảm giá 20%(Loa mua kèm không áp dụng thêm khuyến mãi khác)- Mua Loa/bộ loa/amply karaoke giảm giá 10%(Loa mua kèm không áp dụng thêm khuyến mãi khác)
em muốn lấy thành 2 cột
cột 1: 1,000,000
cột 2 940,000

Nhờ Anh Chị Cao nhân hướng dẫn giúp em với ạ
Em cám ơn
Bạn thử dùng công thức này
Mã:
=AGGREGATE(14,6,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE($A2,CHAR(10),REPT(" ",LEN($A2))),(ROW($1:$20)-1)*LEN($A2)+1,LEN($A2))),",",""),"- Giảm giá ",""),"đ","")+0,COLUMN(A$1))
kéo sang cột khác, kéo xuống
 
Bạn thử dùng công thức này
Mã:
=AGGREGATE(14,6,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE($A2,CHAR(10),REPT(" ",LEN($A2))),(ROW($1:$20)-1)*LEN($A2)+1,LEN($A2))),",",""),"- Giảm giá ",""),"đ","")+0,COLUMN(A$1))
kéo sang cột khác, kéo xuống
trước tiên cám ơn bác đã chia sẻ, mình copy công thức nhưng vẫn cho ra 1 giá giảm không cộng tổng lại, Bác hỗ trợ thêm giúp em với

cám ơn bác
 

File đính kèm

Góp vui:
PHP:
=IFERROR(--SUBSTITUTE(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2,"- Giảm giá ",""),"đ",REPT(" ",200)),CHAR(10),""),200*(COLUMN(A$1)-1)+1,200)),",",""),"")
Fill sang phải, Fill xuống
 
Góp vui:
PHP:
=IFERROR(--SUBSTITUTE(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A2,"- Giảm giá ",""),"đ",REPT(" ",200)),CHAR(10),""),200*(COLUMN(A$1)-1)+1,200)),",",""),"")
Fill sang phải, Fill xuống
Cám ơn Bác
Bác giúp em phần sum hai cột lại bị lỗi #VALUE! với ạ


1,340,000​
#VALUE!
#VALUE!
#VALUE!
1,000,000​
940,000.00​
1,940,000​
1,540,000​
#VALUE!
500,000​
#VALUE!
#VALUE!
1,540,000​
#VALUE!
250,000​
#VALUE!
 

File đính kèm

Cám ơn Bác
Bác giúp em phần sum hai cột lại bị lỗi #VALUE! với ạ


1,340,000​
#VALUE!
#VALUE!
#VALUE!
1,000,000​
940,000.00​
1,940,000​
1,540,000​
#VALUE!
500,000​
#VALUE!
#VALUE!
1,540,000​
#VALUE!
250,000​
#VALUE!
Bạn thay thế chỗ 2 dấu nháy đôi ("") cuối cùng thành số 0 là SUM được đó
 
Bạn thay thế chỗ 2 dấu nháy đôi ("") cuối cùng thành số 0 là SUM được đó
Bác giúp thêm mình
=IFERROR(AGGREGATE(14,6,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE($A2,CHAR(10),REPT(" ",LEN($A2))),(ROW($1:$20)-1)*LEN($A2)+1,LEN($A2))),",",""),"- Giảm giá ",""),"đ","")+0,COLUMN(A$1)),0)

Mình đã thay đổi ("") thành 0 nhưng tất cả đều cho ra 0 hết
 
Bác giúp thêm mình
=IFERROR(AGGREGATE(14,6,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE($A2,CHAR(10),REPT(" ",LEN($A2))),(ROW($1:$20)-1)*LEN($A2)+1,LEN($A2))),",",""),"- Giảm giá ",""),"đ","")+0,COLUMN(A$1)),0)

Mình đã thay đổi ("") thành 0 nhưng tất cả đều cho ra 0 hết
Bạn tải file về nhé.
1632900177419.png
 

File đính kèm

Góp thêm một cách nữa:
Mã:
=IFERROR(LOOKUP(10^10,--SUBSTITUTE(MID($A1,FIND("|",SUBSTITUTE($A1,"Giảm giá","|",COLUMNS($A:A)))+8,ROW($1:$20)),",","")),)
Enter, fill qua phải và xuống.

Thân
Mừng bạn thu xếp được thời gian lên diễn đàn góp vui với anh em /-*+//-*+//-*+/
 
Mừng bạn thu xếp được thời gian lên diễn đàn góp vui với anh em /-*+//-*+//-*+/
Cảm ơn anh và anh em.

Lâu lâu vào thấy hai em của mình tiến bộ, xử lý cắt chuỗi tốt, ngứa tay ngứa chân góp vui với anh em luôn thể.

Bài này em cũng tính dùng mốc "0đ", rồi dùng Right() để cắt nhưng không chính xác bằng nên thôi.

Chúc anh em luôn vui khỏe.
/-*+//-*+//-*+/
 

- Giảm 3,800,000đ (không áp dụng giảm thêm combo)
- Giảm thêm 5% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua kèm Máy rửa chén Bosch (10 model) giảm giá 10%
Nhờ AC hỗ trợ hỗ trợ fix giúp em công =IFERROR(LOOKUP(10^10,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE($A2,"Giảm giá","|",COLUMNS($A:B)))+8,ROW($1:$20)),",","")),)
không lọc được số tiền 3,800,000
 

File đính kèm


- Giảm 3,800,000đ (không áp dụng giảm thêm combo)
- Giảm thêm 5% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua kèm Máy rửa chén Bosch (10 model) giảm giá 10%
Nhờ AC hỗ trợ hỗ trợ fix giúp em công =IFERROR(LOOKUP(10^10,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE($A2,"Giảm giá","|",COLUMNS($A:B)))+8,ROW($1:$20)),",","")),)
không lọc được số tiền 3,800,000
Thử thay đổi thành:

=IFERROR(LOOKUP(10^10,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE(SUBSTITUTE($A2,",",""),"Giảm ","|",COLUMNS($A:A)))+5,ROW($6:$20)),",","")),)
 

- Giảm 3,800,000đ (không áp dụng giảm thêm combo)
- Giảm thêm 5% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua kèm Máy rửa chén Bosch (10 model) giảm giá 10%
Nhờ AC hỗ trợ hỗ trợ fix giúp em công =IFERROR(LOOKUP(10^10,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE($A2,"Giảm giá","|",COLUMNS($A:B)))+8,ROW($1:$20)),",","")),)
không lọc được số tiền 3,800,000
Công thức thực hiện cho 2 chuỗi: hoặc "Giảm giá", hoặc chỉ "Giảm":
Mã:
C2=IFERROR(AGGREGATE(14,6,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE($A2,{"Giảm giá","Giảm"},"|",COLUMNS($A:A)))+{8,5},ROW($1:$20)),",",""),1),)
Enter, fill xuống.

Thân
 

File đính kèm

- Giảm giá 1,200,000đ
- Giảm 1,010,000đ(Không áp dụng giảm thêm combo)
- Giảm 350,000đ(Không áp dụng giảm thêm combo)
- Giảm 150,000đ(Không áp dụng giảm thêm combo)
- PMH gia dụng 9,600,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- PMH gia dụng 9,600,000đ hoặc Giảm 8,000,000đ
- Giảm giá 5,590,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 trong 10 Loa thanh Samsung với giá ưu đãi
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- Mua kèm Ổn áp tự động 1 pha LiOA DRI giảm giá 12% (Không áp dụng KM khác)
Bác Hiệp hỗ trợ giúp em với, Cty lại thay đổi nội dung nên ko thể lọc được ra số ạ
Em gửi 2 file nhà Anh CHị hỗ trợ giúp em vớiạ
Em cámơn
 

File đính kèm

Chả là e cũng đang học thằng regex tiện cái e xài tập luyện luôn :v
Bạn thớt làm theo 2 bước dưới nhé:
Bước 1 chạy code sau
Bước 2 dùng text to column là xong rồi đấy
Nhân tiện em cũng muốn hỏi các anh chị. tại sao khi em dùng Pattern: Gi.+\s+(\d+) ở regex101 tách được theo mong muốn (https://regex101.com/r/smOlwU/1) , nhưng ở trong VBA thì lại không được ạ, nên buộc trong code e phải xài 2 lần pattern :(
Em xin cám ơn :)

Mã:
Sub tachgiamgia()
Dim i As Long, er As Long
Dim arr()
Dim VBR As Object, kq
Dim VBR2 As Object
Dim kqarr()
Set VBR = CreateObject("VBScript.RegExp")
Set VBR2 = CreateObject("VBScript.RegExp")
With Sheet2
er = .Range("A" & Rows.Count).End(3).Row
arr = .Range("A2:A" & er).Value
ReDim kqarr(1 To UBound(arr), 1 To 1)
For i = 1 To UBound(arr)
        arr(i, 1) = CStr(arr(i, 1))
        arr(i, 1) = Application.WorksheetFunction.Substitute(arr(i, 1), ",", "")
    With VBR
        .Global = True
        .Pattern = "Gi.+(\d+)"
    Set Matche1 = .Execute(arr(i, 1))
    For Each Match In Matche1
        With VBR2
            .Global = True
            .Pattern = "\d+"
            Set matche2 = .Execute(Match)
            For Each Match2 In matche2
                If Len(Match2) > 3 Then
                    kq = kq & Match2.Value & ";"
                    kqarr(i, 1) = kq
                End If
            Next
        End With
    Next
    End With
    kq = Null
Next i
.[M2].Resize(UBound(arr), 1) = kqarr
End With
End Sub
 
Cám ơn Bác
Mình cần xử lý trong excel để hỗ trợ cho công việc hằng ngày
 
- Giảm giá 1,200,000đ
- Giảm 1,010,000đ(Không áp dụng giảm thêm combo)
- Giảm 350,000đ(Không áp dụng giảm thêm combo)
- Giảm 150,000đ(Không áp dụng giảm thêm combo)
- PMH gia dụng 9,600,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- PMH gia dụng 9,600,000đ hoặc Giảm 8,000,000đ
- Giảm giá 5,590,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 trong 10 Loa thanh Samsung với giá ưu đãi
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- Mua kèm Ổn áp tự động 1 pha LiOA DRI giảm giá 12% (Không áp dụng KM khác)
Bác Hiệp hỗ trợ giúp em với, Cty lại thay đổi nội dung nên ko thể lọc được ra số ạ
Em gửi 2 file nhà Anh CHị hỗ trợ giúp em vớiạ
Em cámơn
G2=IFERROR(--MID(A2,SEARCH("PMH gia dụng",A2)+LEN("PMH gia dụng"),SEARCH("đ",A2,SEARCH("PMH gia dụng",A2)+LEN("PMH gia dụng"))-1-SEARCH("PMH gia dụng",A2)-LEN("PMH gia dụng")+1),"")

Bạn tham khảo nhé xem có đúng ý bạn không
 

File đính kèm

G2=IFERROR(--MID(A2,SEARCH("PMH gia dụng",A2)+LEN("PMH gia dụng"),SEARCH("đ",A2,SEARCH("PMH gia dụng",A2)+LEN("PMH gia dụng"))-1-SEARCH("PMH gia dụng",A2)-LEN("PMH gia dụng")+1),"")

Bạn tham khảo nhé xem có đúng ý bạn không
Cám ơn Bác nhiều
- PMH gia dụng 3,750,000đ hoặc Giảm 3,100,000đ
- Giảm giá 1,260,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Tặng Bộ hộp giữ tươi thực phẩm(khách hàng nhắn tin đến tổng đài 8077 để nhận quà)
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- Mua kèm Ổn áp tự động 1 pha LiOA DRI giảm giá 12% (Không áp dụng KM khác)
Bác giúp em thêm lọc GIẢM GIÁ 1,260,000đ
 

File đính kèm

- Giảm giá 1,200,000đ
- Giảm 1,010,000đ(Không áp dụng giảm thêm combo)
- Giảm 350,000đ(Không áp dụng giảm thêm combo)
- Giảm 150,000đ(Không áp dụng giảm thêm combo)
- PMH gia dụng 9,600,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- PMH gia dụng 9,600,000đ hoặc Giảm 8,000,000đ
- Giảm giá 5,590,000đ
- Giảm thêm 7% khi mua cùng sản phẩm bất kỳ có giá cao hơn
- Mua 1 trong 10 Loa thanh Samsung với giá ưu đãi
- Mua 1 số Loa karaoke giảm đến 20%
- Mua kèm ỔN ÁP ROBOT giảm giá 12% (Không áp dụng KM khác)
- Mua kèm Ổn áp tự động 1 pha LiOA DRI giảm giá 12% (Không áp dụng KM khác)
Bác Hiệp hỗ trợ giúp em với, Cty lại thay đổi nội dung nên ko thể lọc được ra số ạ
Em gửi 2 file nhà Anh CHị hỗ trợ giúp em vớiạ
Em cámơn
Bạn nên thống kê toàn bộ các trường hợp "nội dung" của Cty bạn, rồi đem lên diễn đàn một lần, tránh tình trạng cứ "nhí" ra một chút mãi, nhé bạn!
Mã:
C2=IFERROR(AGGREGATE(14,6,--SUBSTITUTE(MID($A2,FIND("|",SUBSTITUTE($A2,IF(COUNTIF(C$1,"*giảm*"),"Giảm","gia dụng"),"|",IF(COUNTIF(C$1,"*giảm*"),COLUMNS($A:A),1)))+{9,5},ROW($6:$20)),",",""),1),)
Enter, fill qua phải đến cột "PMH" thì ngưng. Fill cả hàng xuống.

Thân
 

File đính kèm

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

Back
Top Bottom