Cách tách chuỗi ra thành nhiều cột (phức tạp hơn tách họ và tên) như thế nào?

Liên hệ QC

thaysu

Thành viên mới
Tham gia
18/7/11
Bài viết
4
Được thích
0
Chào mọi người,

Mình nhờ giúp đỡ viết công thức như sau:

Tại A1 có chuỗi như sau : "C1, C2, C3,... C15" , trong đó các chuỗi con tách nhau bằng "," . "C1" hay "C15" là các chuỗi con và các chuỗi con này (kí hiệu là C, còn số phía sau là đại diện số thứ tự chuỗi) có độ dài bất kì nhưng luôn phân tách nhau bằng "," . Ô A1 có thể có 1 hay nhiều chuỗi nhưng tối đa là 20 chuỗi
Bây giờ mình muốn từ cột A2 cho đến tối đa A21 sẽ chứ các chuỗi được phân tách

Vi dụ cụ thể kết quả mong muốn :
Nếu ô A1 trống thì từ A2 đế A21 là "" (trống)
Nếu ô A1 là "C1" THÌ kết quả ô A2 là C1, và từ A3 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2" thì ô A2 là C1, ô A3 là C2, và từ A4 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2, C3 thì ô A2 là C1, ô A3 là C2, ô A4 là C3, và từ A5 đến A21 hiển thị ""
.....
tương tự nếu A1 có 20 chuỗi con (tối đa) "C1, C2, ..., C20" thì ô A2 là C1, ..... ô A21 là C20

Không biết dùng công thức được không hay phải dùng code ạ ?

kết quả cuối cùng mình muốn là ở cột R (tổng hợp)

Cám ơn mọi người
 

File đính kèm

  • TEST PHAN CHIA.xlsx
    8.6 KB · Đọc: 8
Lần chỉnh sửa cuối:
Chào mọi người,

Mình nhờ giúp đỡ viết công thức như sau:

Tại A1 có chuỗi như sau : "C1, C2, C3,... C15" , trong đó các chuỗi con tách nhau bằng "," . "C1" hay "C15" là các chuỗi con và các chuỗi con này (kí hiệu là C, còn số phía sau là đại diện số thứ tự chuỗi) có độ dài bất kì nhưng luôn phân tách nhau bằng "," . Ô A1 có thể có 1 hay nhiều chuỗi nhưng tối đa là 20 chuỗi
Bây giờ mình muốn từ cột A2 cho đến tối đa A21 sẽ chứ các chuỗi được phân tách

Vi dụ cụ thể kết quả mong muốn :
Nếu ô A1 trống thì từ A2 đế A21 là "" (trống)
Nếu ô A1 là "C1" THÌ kết quả ô A2 là C1, và từ A3 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2" thì ô A2 là C1, ô A3 là C2, và từ A4 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2, C3 thì ô A2 là C1, ô A3 là C2, ô A4 là C3, và từ A5 đến A21 hiển thị ""
.....
tương tự nếu A1 có 20 chuỗi con (tối đa) "C1, C2, ..., C20" thì ô A2 là C1, ..... ô A21 là C20

Không biết dùng công thức được không hay phải dùng code ạ ?

Cám ơn mọi người
Dùng Function.
 
Chào mọi người,
Mình nhờ giúp đỡ viết công thức như sau:

Tại A1 có chuỗi như sau : "C1, C2, C3,... C15" , trong đó các chuỗi con tách nhau bằng "," . "C1" hay "C15" là các chuỗi con và các chuỗi con này (kí hiệu là C, còn số phía sau là đại diện số thứ tự chuỗi) có độ dài bất kì nhưng luôn phân tách nhau bằng "," . Ô A1 có thể có 1 hay nhiều chuỗi nhưng tối đa là 20 chuỗi
Bây giờ mình muốn từ cột A2 cho đến tối đa A21 sẽ chứ các chuỗi được phân tách
.........................................
Không biết dùng công thức được không hay phải dùng code ạ ?
Cám ơn mọi người
Bạn không đính kèm File và kết quả mong muốn nó như thế nào nên chẳng ai hiểu?
Vì vậy, cách tốt nhất là bạn tìm hiểu về Text to Columns là giải pháp nhanh lẹ nhất.
 
Lần chỉnh sửa cuối:
Chào mọi người,

Mình nhờ giúp đỡ viết công thức như sau:

Tại A1 có chuỗi như sau : "C1, C2, C3,... C15" , trong đó các chuỗi con tách nhau bằng "," . "C1" hay "C15" là các chuỗi con và các chuỗi con này (kí hiệu là C, còn số phía sau là đại diện số thứ tự chuỗi) có độ dài bất kì nhưng luôn phân tách nhau bằng "," . Ô A1 có thể có 1 hay nhiều chuỗi nhưng tối đa là 20 chuỗi
Bây giờ mình muốn từ cột A2 cho đến tối đa A21 sẽ chứ các chuỗi được phân tách

Vi dụ cụ thể kết quả mong muốn :
Nếu ô A1 trống thì từ A2 đế A21 là "" (trống)
Nếu ô A1 là "C1" THÌ kết quả ô A2 là C1, và từ A3 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2" thì ô A2 là C1, ô A3 là C2, và từ A4 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2, C3 thì ô A2 là C1, ô A3 là C2, ô A4 là C3, và từ A5 đến A21 hiển thị ""
.....
tương tự nếu A1 có 20 chuỗi con (tối đa) "C1, C2, ..., C20" thì ô A2 là C1, ..... ô A21 là C20

Không biết dùng công thức được không hay phải dùng code ạ ?

Cám ơn mọi người
Cái này dùng công thức cũng được. NHưng tốt nhất là bạn làm ra 1 file excel rồi gửi lên diễn đàn
 
Mình có gửi upload file len voi ket qua minh mong muon. Bạn hướng dẫn cụ thể về function ntn ?. cám ơn
Bài đã được tự động gộp:

Cái này dùng công thức cũng được. NHưng tốt nhất là bạn làm ra 1 file excel rồi gửi lên diễn đàn
mình upload file lên dien dan roi do
 
Mình có gửi upload file len voi ket qua minh mong muon. Bạn hướng dẫn cụ thể về function ntn ?. cám ơn
Bài đã được tự động gộp:


mình upload file lên dien dan roi do
Bạn xem nhé.
Mã:
Function tach(ByVal chuoi As String, ByVal so As Integer, Optional ByVal phancach As String = ",") As String
         Dim T
         T = Split(phancach & chuoi, phancach)
         If so <= UBound(T) Then tach = T(so)
End Function
Mã:
=tach($A$2,COLUMN(A1))
 

File đính kèm

  • TEST PHAN CHIA.xlsm
    14.5 KB · Đọc: 9
Chào mọi người,

Mình nhờ giúp đỡ viết công thức như sau:

Tại A1 có chuỗi như sau : "C1, C2, C3,... C15" , trong đó các chuỗi con tách nhau bằng "," . "C1" hay "C15" là các chuỗi con và các chuỗi con này (kí hiệu là C, còn số phía sau là đại diện số thứ tự chuỗi) có độ dài bất kì nhưng luôn phân tách nhau bằng "," . Ô A1 có thể có 1 hay nhiều chuỗi nhưng tối đa là 20 chuỗi
Bây giờ mình muốn từ cột A2 cho đến tối đa A21 sẽ chứ các chuỗi được phân tách

Vi dụ cụ thể kết quả mong muốn :
Nếu ô A1 trống thì từ A2 đế A21 là "" (trống)
Nếu ô A1 là "C1" THÌ kết quả ô A2 là C1, và từ A3 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2" thì ô A2 là C1, ô A3 là C2, và từ A4 đến A21 hiển thị ""
Nếu ô A1 là "C1, C2, C3 thì ô A2 là C1, ô A3 là C2, ô A4 là C3, và từ A5 đến A21 hiển thị ""
.....
tương tự nếu A1 có 20 chuỗi con (tối đa) "C1, C2, ..., C20" thì ô A2 là C1, ..... ô A21 là C20

Không biết dùng công thức được không hay phải dùng code ạ ?

kết quả cuối cùng mình muốn là ở cột R (tổng hợp)

Cám ơn mọi người
Chức năng Text to Columns có sẵn trong excel cho lành: Data/Text to columns
 
Bạn xem nhé.
Mã:
Function tach(ByVal chuoi As String, ByVal so As Integer, Optional ByVal phancach As String = ",") As String
         Dim T
         T = Split(phancach & chuoi, phancach)
         If so <= UBound(T) Then tach = T(so)
End Function
Mã:
=tach($A$2,COLUMN(A1))
Cám ơn bạn nhiều lắm. Hàm bạn làm đúng ý mình rồi. Bạn có thể viết dùm mình thêm hàm để ra bảng tổng hợp như trong file mình gửi lại (cột R và S. Cám ơn
 

File đính kèm

  • TEST PHAN CHIA 2.xlsm
    14.3 KB · Đọc: 9
Cám ơn bạn nhiều lắm. Hàm bạn làm đúng ý mình rồi. Bạn có thể viết dùm mình thêm hàm để ra bảng tổng hợp như trong file mình gửi lại (cột R và S. Cám ơn
Mã:
=dem($A$2:$A$5,R2)
Bạn xem nhé.
Mã:
Function dem(ByVal mang As Range, ByVal dk As String, Optional phancach As String = ",") As Long
        Dim T, i As Long, k As Long, s, s1, b As Integer, a As Long, c As Integer
        For Each s In mang
            For Each s1 In Split(s, phancach)
                 If InStr(1, s1, dk) Then
                   b = InStr(1, s1, "(") + 1
                   c = InStr(b, s1, " ")
                   a = a + CLng(Mid(s1, b, c - b))
                 End If
            Next
        Next
       dem = a
End Function
 
Mã:
=dem($A$2:$A$5,R2)
Bạn xem nhé.
Mã:
Function dem(ByVal mang As Range, ByVal dk As String, Optional phancach As String = ",") As Long
        Dim T, i As Long, k As Long, s, s1, b As Integer, a As Long, c As Integer
        For Each s In mang
            For Each s1 In Split(s, phancach)
                 If InStr(1, s1, dk) Then
                   b = InStr(1, s1, "(") + 1
                   c = InStr(b, s1, " ")
                   a = a + CLng(Mid(s1, b, c - b))
                 End If
            Next
        Next
       dem = a
End Function
Hic, mình hơi gà VB nên không biết chèn code vào file, bạn chèn dùm mình code vào file giống file phân chia bạn đã gửi đó.
Mục đích của mình là:
1. Cột A là cột nhập dữ liệu của toa thuốc. Toa có định dạng : thuốc A (số lượng + "viên"), thuốc B (số lượng + "viên").... .
2. Một toa (1 dòng) có tối đa là 15 thuốc khác nhau.
3. mình sẽ nhập vào từng toa thuốc vd 10 toa (10 dòng).
4. Yêu cầu của mình là sau khi nhập hết 10 toa (hoặc hơn) sẽ tự động ra một bảng tổng hợp: mỗi loại thuốc (vd, thuốc A, B ...) có tổng cộng bao nhiêu viên (vd: trong 10 toa thuốc mình nhập, có 3 toa có thuốc A thì tổng cộng có bao nhiêu viên thuốc A?)

Sorry hơi rắc rối một chút do mình mù tịt về lập trình

Cám ơn
 
Hình như GPE có mục Tam quốc ngoại truyện ấy nhỉ. Vòng vo từ đầu đến giờ mới vào vấn đề mà
 
Hic, mình hơi gà VB nên không biết chèn code vào file, bạn chèn dùm mình code vào file giống file phân chia bạn đã gửi đó.
Mục đích của mình là:
1. Cột A là cột nhập dữ liệu của toa thuốc. Toa có định dạng : thuốc A (số lượng + "viên"), thuốc B (số lượng + "viên").... .
2. Một toa (1 dòng) có tối đa là 15 thuốc khác nhau.
3. mình sẽ nhập vào từng toa thuốc vd 10 toa (10 dòng).
4. Yêu cầu của mình là sau khi nhập hết 10 toa (hoặc hơn) sẽ tự động ra một bảng tổng hợp: mỗi loại thuốc (vd, thuốc A, B ...) có tổng cộng bao nhiêu viên (vd: trong 10 toa thuốc mình nhập, có 3 toa có thuốc A thì tổng cộng có bao nhiêu viên thuốc A?)

Sorry hơi rắc rối một chút do mình mù tịt về lập trình

Cám ơn
Bạn bấm alt +f11.rồi chép code vào là được nhé.Mình dùng điện thoại ko gán được.
 
Web KT
Back
Top Bottom