Tổng hợp dữ liệu từ nhiều tập tin Excel

Liên hệ QC

th7

Thành viên thường trực
Tham gia
3/3/15
Bài viết
215
Được thích
52
Giới tính
Nam
Chào các Bạn,
Mình có đính kèm 3 tập tin Excel cần tổng hợp lại một tập tin để thuận tiện cho việc theo dõi và trích lọc thông tin.
Nhờ mọi người xem qua và hỗ trợ mình được không, file "Sum" là kết quả mong muốn.
Dữ liệu của mình lên tới hơn 10000 file.
Cảm ơn mọi người.
 

File đính kèm

  • Merge_Data.rar
    77.1 KB · Đọc: 21
Chào các Bạn,
Mình có đính kèm 3 tập tin Excel cần tổng hợp lại một tập tin để thuận tiện cho việc theo dõi và trích lọc thông tin.
Nhờ mọi người xem qua và hỗ trợ mình được không, file "Sum" là kết quả mong muốn.
Dữ liệu của mình lên tới hơn 10000 file.
Cảm ơn mọi người.
Bạn xem bài này xem.
 
  • Yêu thích
Reactions: th7
Upvote 0
Chào các Bạn,
Mình có đính kèm 3 tập tin Excel cần tổng hợp lại một tập tin để thuận tiện cho việc theo dõi và trích lọc thông tin.
Nhờ mọi người xem qua và hỗ trợ mình được không, file "Sum" là kết quả mong muốn.
Dữ liệu của mình lên tới hơn 10000 file.
Cảm ơn mọi người.
Bạn làm theo video hướng dẫn sai chỗ nào mình chỉnh sửa cho.
 
  • Yêu thích
Reactions: th7
Upvote 0
Mình làm việc với dữ liệu gần 40 năm mà chưa biết đến con số này. Đúng là hậu sinh khả úy.

1664103342681.png
 
Upvote 0
Bạn làm theo video hướng dẫn sai chỗ nào mình chỉnh sửa cho.
Chào bạn snow25,
Mình có làm theo video rồi, nhưng vẫn chưa được.
Tên của sheet không chắc là giống nhau hết (do có nhiều bạn làm chương trình lưu không đồng nhất tên), dữ liệu của A2 và G thì format của file excel là merge lại, dữ liệu Cột A không phải là số mà là chữ kết hợp với số.
Bạn có thể xem qua dùm mình được không.
Cảm ơn Bạn.
Bài đã được tự động gộp:

Con số này lớn thật ấy. Mà giờ mới bắt đầu thì quả thật là... Không biết dùng từ gì luôn
Chào Bạn,
Thường thì các chương trình, sẽ có một file để kiểm soát, nhưng file này chỉ kiểm soát những thông tin chung chung,
Hiện tại, do cần các thông tin chi tiết hơn nên mình cần tổng hợp lại tất cả dữ liệu để trích lọc thông tin để làm công việc khác.
Cảm ơn.
 

File đính kèm

  • Sum_V1.xlsm
    35.1 KB · Đọc: 11
Upvote 0
Chào bạn snow25,
Mình có làm theo video rồi, nhưng vẫn chưa được.
Tên của sheet không chắc là giống nhau hết (do có nhiều bạn làm chương trình lưu không đồng nhất tên), dữ liệu của A2 và G thì format của file excel là merge lại, dữ liệu Cột A không phải là số mà là chữ kết hợp với số.
Bạn có thể xem qua dùm mình được không.
Cảm ơn Bạn.
Bài đã được tự động gộp:


Chào Bạn,
Thường thì các chương trình, sẽ có một file để kiểm soát, nhưng file này chỉ kiểm soát những thông tin chung chung,
Hiện tại, do cần các thông tin chi tiết hơn nên mình cần tổng hợp lại tất cả dữ liệu để trích lọc thông tin để làm công việc khác.
Cảm ơn.
File cần tổng hợp chỉ có 1 sheets duy nhất à.
 
Upvote 0
Mình làm việc với dữ liệu gần 40 năm mà chưa biết đến con số này. Đúng là hậu sinh khả úy.

View attachment 281315
Em chào Anh VetMini,
Chương trình SMT, bên em chạy rất nhiều, thực tế hơn 3000 chương trình riêng biệt,
Trước đây, hệ thống cũ, sử dụng mã linh kiện là một mã nhận dạng cho tất cả các nhà cung cấp, hiện tại, chuyển qua hệ thống mới, hơi ngược, có nghĩa là từng nhà cung cấp linh kiện sẽ có một mã riêng và đưa nó vào chung một mã đại điện, nên số lượng chương trình sẽ bị nhân lên nếu sử dụng trộn nhiều nhà cung cấp cho một sản phẩm.
Em cảm ơn.
Bài đã được tự động gộp:

File cần tổng hợp chỉ có 1 sheets duy nhất à.
Đúng rồi bạn, tổng hợp tất cả dữ liệu vào một file "Sum_V1"
 
Upvote 0
Chương trình SMT, bên em chạy rất nhiều, thực tế hơn 3000 chương trình riêng biệt,
Trước đây, hệ thống cũ, sử dụng mã linh kiện là một mã nhận dạng cho tất cả các nhà cung cấp, hiện tại, chuyển qua hệ thống mới, hơi ngược, có nghĩa là từng nhà cung cấp linh kiện sẽ có một mã riêng và đưa nó vào chung một mã đại điện, nên số lượng chương trình sẽ bị nhân lên nếu sử dụng trộn nhiều nhà cung cấp cho một sản phẩm.
Quản lý dữ liệu tầm cỡ này ngoài khả năng của tôi.
Người quản lý là dân chuyên nghiệp về Data Mining.

Nếu mỗi file 100 dòng thì 10000 file sẽ vượt qua giới hạn 1 sheet của Excel.

Nếu mỗi file đọc mất 1 giây thì cỡ 3 tiếng đồng hồ mới làm xong.
Nên dùng phần mềm khác. Lisp hay Python chẳng hạn.
 
Upvote 0
Em chào Anh VetMini,
Chương trình SMT, bên em chạy rất nhiều, thực tế hơn 3000 chương trình riêng biệt,
Trước đây, hệ thống cũ, sử dụng mã linh kiện là một mã nhận dạng cho tất cả các nhà cung cấp, hiện tại, chuyển qua hệ thống mới, hơi ngược, có nghĩa là từng nhà cung cấp linh kiện sẽ có một mã riêng và đưa nó vào chung một mã đại điện, nên số lượng chương trình sẽ bị nhân lên nếu sử dụng trộn nhiều nhà cung cấp cho một sản phẩm.
Em cảm ơn.
Bài đã được tự động gộp:


Đúng rồi bạn, tổng hợp tất cả dữ liệu vào một file "Sum_V1"
Thử code vì 2 cột G và H không biết điền cái gì.
Mã:
Sub TongHop()
    Dim cn As Object, SQL As String, duonglinh, arr, SMTLineName As String ,ketqua,b as long
    Dim FinishedMaterial As String, SubAssyMaterial As String, PCBName As String, SeriesNumber As String, tensheet, s As String
    Dim cat As Object, ten
    Dim  j As Integer, a As Long, i As Long, lr As Long
    Set cat = CreateObject("ADOX.Catalog")
    Set cn = CreateObject("ADODB.Connection")  'khai báo cho ADO
    Application.ScreenUpdating = False 'Tat cap nhap man hinh
    With Sheets("sheet1")
        lr = .Range("A" & Rows.Count).End(xlUp).Row 'xác dinh dong cuoi cua bang tong hop
        If lr > 1 Then .Range("A2:O" & lr).ClearContents 'neu dong cuoi lon hon 15 thi xoa
    End With
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True 'cho chon nhieu file
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1 'chi hien cac duoi excel
        If Not .Show = -1 Then  'Kiêm tra xem da chon file chua
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
        For Each duonglinh In .SelectedItems
            cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & duonglinh & ";Extended Properties=""Excel 12.0;HDR=No"";" ' mo file excel
            Set cat.ActiveConnection = cn
           ' ten = cat.tables.Name
            For Each ten In cat.tables
            If Right(ten.Name, 1) = "$" Or Right(ten.Name, 2) = "$'" Then
                tensheet = Replace(ten.Name, "'", "")
             
            SQL = "SELECT * FROM [" & tensheet & "A3:G3] " 'cau lenh sql de lay du lieu vung
            arr = chuyenmang(cn.Execute(SQL).getrows) 'lay du lieu vào mang
            'tenshop = arr(1, 2) 'gán vào bien
            'mashop = arr(2, 2)
            'ngaythang = Format(arr(3, 2), "MM-DD-YYYY")
            SMTLineName = Empty: FinishedMaterial = Empty: SubAssyMaterial = Empty: PCBName = Empty: SeriesNumber = Empty
            If Not IsNull(arr(1, 1)) Then SMTLineName = arr(1, 1)
            If Not IsNull(arr(1, 4)) Then FinishedMaterial = arr(1, 4)
            If Not IsNull(arr(1, 5)) Then SubAssyMaterial = arr(1, 5)
            If Not IsNull(arr(1, 6)) Then PCBName = arr(1, 6)
            If Not IsNull(arr(1, 7)) Then SeriesNumber = arr(1, 7)
                   
            SQL = "SELECT * FROM [" & tensheet & "A7:H5000] where f8 is not null"   'cau lênh sql de lay du lieu khác Null o cot A
            arr = chuyenmang(cn.Execute(SQL).getrows)
           redim ketqua(1 to ubound(arr),1 to 16)
            For i = 1 To UBound(arr) - 1 'vong lap for i de chay cac dong
                If arr(i, 7) <> "No. of comp.ts" Then
                a = a + 1
                b=b+1
                'ketqua(a, 1) = b  'STT
                'ketqua(a, 2) = mashop 'ma shop
                'ketqua(a, 3) = tenshop 'gan ten shop vao mang
                'ketqua(a, 4) = ngaythang 'gan ngay thang vao mang
             
                ketqua(a, 1) =b  'STT
                ketqua(a, 2) = SMTLineName 'SMTLineName
                ketqua(a, 3) = FinishedMaterial 'FinishedMaterial
                ketqua(a, 4) = SubAssyMaterial 'gan SubAssyMaterial vao mang
                ketqua(a, 5) = PCBName 'gan PCBName vao mang
                ketqua(a, 6) = SeriesNumber 'gan SeriesNumber vao mang
                For j = 1 To UBound(arr, 2) 'vong lap for j de chay cac cot
                    ketqua(a, j + 8) = arr(i, j) 'gan cac gia tri tu mang sang mang
                Next j
                End If
            Next i
            End If
            Next
    With Sheets("sheet1")
        lr=.range("A" & rows.count).end(xlup).row+1
        If a Then .Range("A" & lr).Resize(a,16).Value = ketqua
    End With
   Erase ketqua
   a=0
            cn.Close 'dong file
        Next
    End With

    Application.ScreenUpdating = True 'bat cap nhap man hinh
    Set cn = Nothing
    Set cat = Nothing
End Sub
Private Function chuyenmang(ByVal arr) As Variant
    Dim kq(), i As Long, j As Long
    ReDim kq(1 To UBound(arr, 2) + 1, 1 To UBound(arr, 1) + 1)
    For i = LBound(arr, 2) To UBound(arr, 2)
        For j = LBound(arr, 1) To UBound(arr, 1)
            kq(i + 1, j + 1) = arr(j, i)
        Next j
    Next i
    chuyenmang = kq
End Function
Bài đã được tự động gộp:

Cỡ này thì Python thôi.
Thì Python bây giờ nó mạnh nhất mà anh.
Quản lý dữ liệu tầm cỡ này ngoài khả năng của tôi.
Người quản lý là dân chuyên nghiệp về Data Mining.

Nếu mỗi file 100 dòng thì 10000 file sẽ vượt qua giới hạn 1 sheet của Excel.

Nếu mỗi file đọc mất 1 giây thì cỡ 3 tiếng đồng hồ mới làm xong.
Nên dùng phần mềm khác. Lisp hay Python chẳng hạn.
Có thể chia nhỏ ra từng lần rồi copy rồi đẩy vào Access được không anh.
Anh VietMini cho em hỏi cái là giờ nó có 1 sheets mà mình muốn lấy tên sheets thì câu lệnh nào anh nhỉ
 
Lần chỉnh sửa cuối:
  • Yêu thích
Reactions: th7
Upvote 0
Thử code vì 2 cột G và H không biết điền cái gì.
Mã:
Sub TongHop()
    Dim cn As Object, SQL As String, duonglinh, arr, SMTLineName As String ,ketqua,b as long
    Dim FinishedMaterial As String, SubAssyMaterial As String, PCBName As String, SeriesNumber As String, tensheet, s As String
    Dim cat As Object, ten
    Dim  j As Integer, a As Long, i As Long, lr As Long
    Set cat = CreateObject("ADOX.Catalog")
    Set cn = CreateObject("ADODB.Connection")  'khai báo cho ADO
    Application.ScreenUpdating = False 'Tat cap nhap man hinh
    With Sheets("sheet1")
        lr = .Range("A" & Rows.Count).End(xlUp).Row 'xác dinh dong cuoi cua bang tong hop
        If lr > 1 Then .Range("A2:O" & lr).ClearContents 'neu dong cuoi lon hon 15 thi xoa
    End With
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True 'cho chon nhieu file
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1 'chi hien cac duoi excel
        If Not .Show = -1 Then  'Kiêm tra xem da chon file chua
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
        For Each duonglinh In .SelectedItems
            cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & duonglinh & ";Extended Properties=""Excel 12.0;HDR=No"";" ' mo file excel
            Set cat.ActiveConnection = cn
           ' ten = cat.tables.Name
            For Each ten In cat.tables
            If Right(ten.Name, 1) = "$" Or Right(ten.Name, 2) = "$'" Then
                tensheet = Replace(ten.Name, "'", "")
           
            SQL = "SELECT * FROM [" & tensheet & "A3:G3] " 'cau lenh sql de lay du lieu vung
            arr = chuyenmang(cn.Execute(SQL).getrows) 'lay du lieu vào mang
            'tenshop = arr(1, 2) 'gán vào bien
            'mashop = arr(2, 2)
            'ngaythang = Format(arr(3, 2), "MM-DD-YYYY")
            SMTLineName = Empty: FinishedMaterial = Empty: SubAssyMaterial = Empty: PCBName = Empty: SeriesNumber = Empty
            If Not IsNull(arr(1, 1)) Then SMTLineName = arr(1, 1)
            If Not IsNull(arr(1, 4)) Then FinishedMaterial = arr(1, 4)
            If Not IsNull(arr(1, 5)) Then SubAssyMaterial = arr(1, 5)
            If Not IsNull(arr(1, 6)) Then PCBName = arr(1, 6)
            If Not IsNull(arr(1, 7)) Then SeriesNumber = arr(1, 7)
                 
            SQL = "SELECT * FROM [" & tensheet & "A7:H5000] where f8 is not null"   'cau lênh sql de lay du lieu khác Null o cot A
            arr = chuyenmang(cn.Execute(SQL).getrows)
           redim ketqua(1 to ubound(arr),1 to 16)
            For i = 1 To UBound(arr) - 1 'vong lap for i de chay cac dong
                If arr(i, 7) <> "No. of comp.ts" Then
                a = a + 1
                b=b+1
                'ketqua(a, 1) = b  'STT
                'ketqua(a, 2) = mashop 'ma shop
                'ketqua(a, 3) = tenshop 'gan ten shop vao mang
                'ketqua(a, 4) = ngaythang 'gan ngay thang vao mang
           
                ketqua(a, 1) =b  'STT
                ketqua(a, 2) = SMTLineName 'SMTLineName
                ketqua(a, 3) = FinishedMaterial 'FinishedMaterial
                ketqua(a, 4) = SubAssyMaterial 'gan SubAssyMaterial vao mang
                ketqua(a, 5) = PCBName 'gan PCBName vao mang
                ketqua(a, 6) = SeriesNumber 'gan SeriesNumber vao mang
                For j = 1 To UBound(arr, 2) 'vong lap for j de chay cac cot
                    ketqua(a, j + 8) = arr(i, j) 'gan cac gia tri tu mang sang mang
                Next j
                End If
            Next i
            End If
            Next
    With Sheets("sheet1")
        lr=.range("A" & rows.count).end(xlup).row+1
        If a Then .Range("A" & lr).Resize(a,16).Value = ketqua
    End With
   Erase ketqua
   a=0
            cn.Close 'dong file
        Next
    End With

    Application.ScreenUpdating = True 'bat cap nhap man hinh
    Set cn = Nothing
    Set cat = Nothing
End Sub
Private Function chuyenmang(ByVal arr) As Variant
    Dim kq(), i As Long, j As Long
    ReDim kq(1 To UBound(arr, 2) + 1, 1 To UBound(arr, 1) + 1)
    For i = LBound(arr, 2) To UBound(arr, 2)
        For j = LBound(arr, 1) To UBound(arr, 1)
            kq(i + 1, j + 1) = arr(j, i)
        Next j
    Next i
    chuyenmang = kq
End Function
Bài đã được tự động gộp:


Thì Python bây giờ nó mạnh nhất mà anh.

Có thể chia nhỏ ra từng lần rồi copy rồi đẩy vào Access được không anh.
Anh VietMini cho em hỏi cái là giờ nó có 1 sheets mà mình muốn lấy tên sheets thì câu lệnh nào anh nhỉ
Cảm ơn Bạn snow25 đã hỗ trợ mình bài viết này nha,
Cột G và H với thông tin giá trị nằm ở ô F6, H6 và F64, H64 trong file ví dụ "CCB200PS56"
F6, H6 thì cố định trên tất cả các file, còn F64 và H64, tùy thuộc vào từng chương trình, có thể nhảy ở một số ở dòng khác.
 
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn Bạn snow25 đã hỗ trợ mình bài viết này nha,
Cột G và H với thông tin giá trị nằm ở ô F6, H6 và F64, H64 trong file ví dụ "CCB200PS56"
F6, H6 thì cố định trên tất cả các file, còn F64 và H64, tùy thuộc vào từng chương trình, có thể nhảy ở một số ở dòng khác.
Thử code.
Mã:
Sub TongHop()
    Dim cn As Object, SQL As String, duonglinh, arr, SMTLineName As String, ketqua, b As Long
    Dim FinishedMaterial As String, SubAssyMaterial As String, PCBName As String, SeriesNumber As String, tensheet, s As String
    Dim cat As Object, ten, cotg As Long, coth As Double
    Dim j As Integer, a As Long, i As Long, lr As Long
    Set cat = CreateObject("ADOX.Catalog")
    Set cn = CreateObject("ADODB.Connection")  'khai báo cho ADO
    Application.ScreenUpdating = False 'Tat cap nhap man hinh
    With Sheets("sheet1")
        lr = .Range("A" & Rows.Count).End(xlUp).Row 'xác dinh dong cuoi cua bang tong hop
        If lr > 1 Then .Range("A2:O" & lr).ClearContents 'neu dong cuoi lon hon 15 thi xoa
    End With
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True 'cho chon nhieu file
        .Filters.Add "Microsoft Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm", 1 'chi hien cac duoi excel
        If Not .Show = -1 Then  'Kiêm tra xem da chon file chua
            MsgBox "Ban da khong chon tong hop", vbInformation, "Thông Báo"
            Exit Sub
        End If
        For Each duonglinh In .SelectedItems
            cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & duonglinh & ";Extended Properties=""Excel 12.0;HDR=No"";" ' mo file excel
            Set cat.ActiveConnection = cn
           ' ten = cat.tables.Name
            For Each ten In cat.tables
            If Right(ten.Name, 1) = "$" Or Right(ten.Name, 2) = "$'" Then
                tensheet = Replace(ten.Name, "'", "")
            
            SQL = "SELECT * FROM [" & tensheet & "A3:G3] " 'cau lenh sql de lay du lieu vung
            arr = chuyenmang(cn.Execute(SQL).getrows) 'lay du lieu vào mang
            'tenshop = arr(1, 2) 'gán vào bien
            'mashop = arr(2, 2)
            'ngaythang = Format(arr(3, 2), "MM-DD-YYYY")
            SMTLineName = Empty: FinishedMaterial = Empty: SubAssyMaterial = Empty: PCBName = Empty: SeriesNumber = Empty
            If Not IsNull(arr(1, 1)) Then SMTLineName = arr(1, 1)
            If Not IsNull(arr(1, 4)) Then FinishedMaterial = arr(1, 4)
            If Not IsNull(arr(1, 5)) Then SubAssyMaterial = arr(1, 5)
            If Not IsNull(arr(1, 6)) Then PCBName = arr(1, 6)
            If Not IsNull(arr(1, 7)) Then SeriesNumber = arr(1, 7)
                  
            SQL = "SELECT * FROM [" & tensheet & "A6:H5000] where f8 is not null"   'cau lênh sql de lay du lieu khác Null o cot A
            arr = chuyenmang(cn.Execute(SQL).getrows)
           ReDim ketqua(1 To UBound(arr), 1 To 16)
            For i = 1 To UBound(arr) - 1 'vong lap for i de chay cac dong
                If arr(i, 7) <> "No. of comp.ts" Then
                a = a + 1
                b = b + 1
                ketqua(a, 1) = b 'STT
                ketqua(a, 2) = SMTLineName 'SMTLineName
                ketqua(a, 3) = FinishedMaterial 'FinishedMaterial
                ketqua(a, 4) = SubAssyMaterial 'gan SubAssyMaterial vao mang
                ketqua(a, 5) = PCBName 'gan PCBName vao mang
                ketqua(a, 6) = SeriesNumber 'gan SeriesNumber vao mang
                ketqua(a, 7) = cotg
                ketqua(a, 8) = coth
                For j = 1 To UBound(arr, 2) 'vong lap for j de chay cac cot
                    ketqua(a, j + 8) = arr(i, j) 'gan cac gia tri tu mang sang mang
                Next j
                Else
                If IsNull(arr(i, 6)) Then cotg = Empty Else cotg = arr(i, 6)
                coth = arr(i, 8)
                End If
            Next i
            End If
            Next
    With Sheets("sheet1")
        lr = .Range("A" & Rows.Count).End(xlUp).Row + 1
        If a Then .Range("A" & lr).Resize(a, 16).Value = ketqua
    End With
   Erase ketqua
   a = 0
            cn.Close 'dong file
        Next
    End With

    Application.ScreenUpdating = True 'bat cap nhap man hinh
    Set cn = Nothing
    Set cat = Nothing
End Sub
Private Function chuyenmang(ByVal arr) As Variant
    Dim kq(), i As Long, j As Long
    ReDim kq(1 To UBound(arr, 2) + 1, 1 To UBound(arr, 1) + 1)
    For i = LBound(arr, 2) To UBound(arr, 2)
        For j = LBound(arr, 1) To UBound(arr, 1)
            kq(i + 1, j + 1) = arr(j, i)
        Next j
    Next i
    chuyenmang = kq
End Function
 
  • Yêu thích
Reactions: th7
Upvote 0
Tổng hợp thế này người ta gom các files vào 1 folder, rồi chọn folder đó, chứ ai lại đi chọn files.
Các file, em tổng hợp vào một folder, em sử dụng file "Manager_Explorer" cả tác giả HeSanbi,
Nếu các file đã gom vào một folder rồi thì quét chọn cũng không sao Anh ạ.
 

File đính kèm

  • Manager_Explorer.xlsm
    171.9 KB · Đọc: 10
Upvote 0
Tổng hợp thế này người ta gom các files vào 1 folder, rồi chọn folder đó, chứ ai lại đi chọn files.
Hơn 10000 files lận. Chọn từng file mới phê.

Chú: bạn đừng vẽ kiệu cho quan đòi cỡi chứ. Bài tới đòi code xếp 10000 files vào từng folder bi chừ.

Chú 2: bài này là vấn đề của quản lý files. Tại thớt nhìn nó thành vấn đề gom dữ liệu. Nhưng cũng có lẽ là do chỉ có GPE mới có người sẵn sàng làm giùm a đến z như vậy. Mấy diễn đàn Python hay Unix nhờ vậy hổng ai làm đâu.
 
Upvote 0
Web KT

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

Back
Top Bottom