Trích xuất dữ liệu từ sheet khác với điều kiện không trùng lặp (1 người xem)

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

Status
Không mở trả lời sau này.

roocbuon

Thành viên mới
Tham gia
9/10/15
Bài viết
19
Được thích
0
Chào GPX !
Mình muốn tổng hợp lại tên vật tư trong sheet tổng hợp từ sheet data nhưng vấn đề là tên vật tư ở sheet date bị trùng lặp. Mong các bạn giúp mình giải quyết vấn đề này.
 

File đính kèm

Chào GPX !
Mình muốn tổng hợp lại tên vật tư trong sheet tổng hợp từ sheet data nhưng vấn đề là tên vật tư ở sheet date bị trùng lặp. Mong các bạn giúp mình giải quyết vấn đề này.
Dữ liệu ít thì dùng file này cho đơn giản, bạn có thể SORT lại cột tên vật tư theo ABC sau khi có kết quả lọc.
 

File đính kèm

chào gpx !
Mình muốn tổng hợp lại tên vật tư trong sheet tổng hợp từ sheet data nhưng vấn đề là tên vật tư ở sheet date bị trùng lặp. Mong các bạn giúp mình giải quyết vấn đề này.
Mã:
=iferror(index(data!$a$2:$a$104,match(0,countif($b$2:b2,data!$a$2:$a$104),0),0),"")
cái này quá nhiều trên diễn đàn rồi (bạn vào search cả đống), kết thúc công thức Ctrl+shift+enter
Nếu dữ liệu thì dùng vba, pivot tables, Remove Duplicates,
 
Cảm ơn các bạn đã giúp đỡ.
Mình mới tập tành excel nên chỉ biết vài công thức và chưa ứng dụng được nhiều, GPX giúp mình đình hướng nên bắt đầu từ đâu và tìm hiểu những vấn đề gì được không?
 
Chào GPX !
Mình muốn tổng hợp lại tên vật tư trong sheet tổng hợp từ sheet data nhưng vấn đề là tên vật tư ở sheet date bị trùng lặp. Mong các bạn giúp mình giải quyết vấn đề này.

Lọc không trùng, Sort dữ liệu,... dùng công thức chắc "tẻo tèo teo".
Dùng PivotTable, VBA... thôi.
Bấm vào cái hình cho "chú tiểu" gõ 1 phát là xong.
 

File đính kèm

Thế hoamattroicoi có thể chiến 1 phát cho mình học với, được hông nhỉ?
Lại trễ đò :D :D :D :

Mã:
Sub LockTrung()Dim i As Long, k As Long
Dim Dic As Object
Dim sArr(), dArr()
Set Dic = CreateObject("Scripting.dictionary")
sArr = Sheet1.Range("A2:D" & Sheet1.[D65536].End(xlUp).Row).Value
ReDim dArr(1 To UBound(sArr), 1 To 3)
For i = 1 To UBound(sArr)
    If sArr(i, 1) <> "" Then
        If Not Dic.exists(sArr(i, 1)) Then
            k = k + 1
            Dic.Add sArr(i, 1), k
            dArr(k, 1) = sArr(i, 1)
            dArr(k, 2) = sArr(i, 2)
            dArr(k, 3) = sArr(i, 4)
        Else
            dArr(Dic.Item(sArr(i, 1)), 3) = dArr(Dic.Item(sArr(i, 1)), 3) + sArr(i, 4)
        End If
    End If
Next
If k Then
    Sheet2.[B3:D1000].ClearContents
    Sheet2.[B3].Resize(k, 3) = dArr
    Sheet2.Range("B3:D1000").Sort [B2], 1
End If


Set Dic = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Bate cho mình hỏi nêu dữ liệu ở file data không cố định ( tên vật tư có thể 100, 200, 4 , 1000 ...) thì có dùng được file của bate không?
 
Trễ cũng hông có sao đâu, miễn đừng nhầm đò là được ( dễ bị chìm). Cơ mà cho hỏi thêm là Sort bằng DIC luôn được hông ta.
Thực ra sort bằng DIC thì mình chưa có nghe, hỏng biết chơi được không nhưng sẽ tìm hiểu xem sao - chắc là có bạn mới nói??? Nhưng Sort Array 2 chiều thì có nghe rồi và thấy các sư phụ cũng viết code rồi nhưng nhìn đống code ấy mình muốn Ẹ luôn á. Thời gian tìm hiểu mấy cái code đó thui để dành thời gian tìm bạn zai cho nó nhanh à, :D :D :D
 
Đùa Ba Tê chút __--__. Tự mò mẫn excel thì nên mò những gì vậy? Ba Tê cho mình một vài lời khuyên đi.

Muốn mò mẫm, rờ rẫm, sờ sẫm... Excel thì vào đây:
http://www.giaiphapexcel.com/forum/showthread.php?7971-Tra-Cứu-Hàm-Excel&p=54708#post54708
Muốn vào "con đường đau khổ" thì bắt đầu ở đây:
http://www.giaiphapexcel.com/forum/...-mới-bắt-đầu-tái-bản-2015&p=558203#post558203
Tha hồ mà "mò".
 
Trễ cũng hông có sao đâu, miễn đừng nhầm đò là được ( dễ bị chìm). Cơ mà cho hỏi thêm là Sort bằng DIC luôn được hông ta.
bạn hoamattroicoi đã ngỏ ý rồi
Thực ra sort bằng DIC thì mình chưa có nghe, hỏng biết chơi được không nhưng sẽ tìm hiểu xem sao - chắc là có bạn mới nói??? Nhưng Sort Array 2 chiều thì có nghe rồi và thấy các sư phụ cũng viết code rồi nhưng nhìn đống code ấy mình muốn Ẹ luôn á. Thời gian tìm hiểu mấy cái code đó thui để dành thời gian tìm bạn zai cho nó nhanh à, :D :D :D
thì anh GiangLeLoi đẹp trai ga la còn chờ chi nữa , vung tay biểu diễn thoy . hi hi
 
Dùng Collection để sort cũng là 1 giải pháp
Mã:
Sub FilterSort()
Dim Arr(), i As Long, Temp, Res


Arr = Sheets("DATA").Range("A2:A" & Sheets("DATA").Range("A65536").End(3).Row).Value
With CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(Arr)
        If IsNumeric(Arr(i, 1)) = False Then .Add Arr(i, 1)
    Next
    .Sort
    Temp = .ToArray
End With
    ReDim Res(0 To UBound(Temp), 1 To 1)
    For i = 0 To UBound(Temp)
        Res(i, 1) = Temp(i)
    Next
    Sheets("TH").Range("B3").Resize(i) = Res
End Sub

Tình hình GPE có 2 thành viên nữ 一人で rồi đấy --=0.
 
Cảm ơn các bạn đã giúp đỡ.
Mình mới tập tành excel nên chỉ biết vài công thức và chưa ứng dụng được nhiều, GPX giúp mình đình hướng nên bắt đầu từ đâu và tìm hiểu những vấn đề gì được không?
http://www.giaiphapexcel.com/diendan/threads/94339.Ebook-Công-thức-và-hàm-Excel-97-2013
Ngay đầu trang chủ có cái ebook rất hay, bạn down về mà tham khảo thêm
Những nhóm hàm logic: If, and, or
Nhóm hàm thống kê: sum, max, average
Thống kê có điều kiện: countif, sumif, countifs, sumifs
Nhóm hàm tham chiếu: vlookup, hlookup
Nhóm hàm ngày tháng: date, month, day, weekday
Nhóm hàm về tách chuỗi: len, mid, right, left
Bạn tìm hiểu về cách sử dụng địa chỉ tuyệt đổi, tương đối. Nắm được địa chỉ là bước đầu đi đến thành công của Excel cơ bản rồi.
Còn định dạng kiểu dữ liệu (Ctrl+1) nữa,
Xong mấy cái này có thê tìm hiểu thêm một số chức năng và công cụ tổng hợp trong Excel: Auto Filter, Advanced Filter, Data Validation, Consolidate, Pivot Tables, Conditional Formating.
Trong ebook có bài tập thực hành mẫu, bạn làm dần, mắc ở đâu thì lên diễn đàn hỏi
Đây là hàm dùng phổ biến thường xuyên, học xong cái này thì dần nâng cao thêm.
 
Lần chỉnh sửa cuối:
bạn hoamattroicoi đã ngỏ ý rồi

thì anh GiangLeLoi đẹp trai ga la còn chờ chi nữa , vung tay biểu diễn thoy . hi hi

Không dễ xơi đâu như vậy đâu người đẹp doveandrose à, thực ra cuối cùng bài toán cũng quy về thuật toán sort mảng 2 chiều thôi, vẫn đổ dữ liệu ra sheet rồi call thủ tục sort (sort string lại Unicode hoặc TCVN3 nữa, rồi các thể loại). Có lẽ cách hay hơn cả là dùng Sort của Excel chứ cái code sort viết đọc cũng muốn buồn nôn à.

Biển dốt mênh mông, quay đầu là bờ. :D
Mã:
Sub LockTrung()Dim i As Long, k As Long
Dim Dic As Object
Dim sArr(), dArr
Set Dic = CreateObject("Scripting.dictionary")
sArr = Sheet1.Range("A2:D104").Value
ReDim dArr(1 To UBound(sArr), 1 To 3)
For i = 1 To UBound(sArr)


        If Not Dic.exists(sArr(i, 1)) Then
            Dic.Add sArr(i, 1), sArr(i, 4)
        Else
            Dic.Item(sArr(i, 1)) = Dic.Item(sArr(i, 1)) + sArr(i, 4)
        End If


Next
dArr = Dic.keys
Call SortMang(dArr)
    For i = 0 To UBound(dArr)
        Cells(i + 3, 2) = dArr(i)
        Cells(i + 3, 4) = Dic(dArr(i))
    Next
Set Dic = Nothing
End Sub

'======================Bien dot menh mong quay dau la bo===============

Sub SortMang(sArr)
Dim CTren As Integer
Dim CDuoi As Integer
Dim Lo As Integer
Dim Mo As Integer
Dim Tmp As String


CTren = LBound(sArr)
CDuoi = UBound(sArr)
    For Lo = CTren To CDuoi - 1
        For Mo = Lo + 1 To CDuoi
            If sArr(Lo) > sArr(Mo) Then
                Tmp = sArr(Mo)
                sArr(Mo) = sArr(Lo)
                sArr(Lo) = Tmp
            End If
        Next Mo
    Next Lo
End Sub
 
Không dễ xơi đâu như vậy đâu người đẹp doveandrose à, thực ra cuối cùng bài toán cũng quy về thuật toán sort mảng 2 chiều thôi, vẫn đổ dữ liệu ra sheet rồi call thủ tục sort (sort string lại Unicode hoặc TCVN3 nữa, rồi các thể loại). Có lẽ cách hay hơn cả là dùng Sort của Excel chứ cái code sort viết đọc cũng muốn buồn nôn à. Biển dốt mênh mông, quay đầu là bờ. :D
ồ cám ơn bạn Hoamattroicoi đã chiếu cố đến mình , hân hạnh }}}}}}}}}}
Nhưng bạn làm mình bối rối quá , xin bạn chỉ điểm vài điều cho mình đỡ băn khoăn
Giải pháp ở #21 không sử dụng được ở bài này hả bạn ? sao chúng ta lại cần vẽ ra thêm hàm SortMang vậy bạn ?
 
ồ cám ơn bạn Hoamattroicoi đã chiếu cố đến mình , hân hạnh }}}}}}}}}}
Nhưng bạn làm mình bối rối quá , xin bạn chỉ điểm vài điều cho mình đỡ băn khoăn
Giải pháp ở #21 không sử dụng được ở bài này hả bạn ? sao chúng ta lại cần vẽ ra thêm hàm SortMang vậy bạn ?
Thực ra mình không thích xài cái CreateObject("System.Collections.ArrayList") đó thôi chứ không có gì cả doveandrose à vì có lần bác VetMini có viết thế này :
System.Collections.ArrayList là một class của .NET framework. Muốn dùng nó thì bắt buộc phải có .NET

Khi muốn viết code loại có thể sử dụng ở nhiều máy (portable), ngươi ta luôn luôn để ý cẩn thận với các class nhập từ các công cụ khác.

Tuy .NET nói chung là vô hại nhưng chưa chắc có những hệ thống người ta chấp nhận cài đặt. Người viết code có hi phải hy sinh tiện nghi và tốc độ để code có thể đại chúng hơn. Người viết code chuyên nghiệp có cách cô lập các loại code này riêng ra để áp dụng cho nhiều trường hợp khác nhau.
trong TOPIC này

Cái code đó mình dùng luôn Dic làm mảng kết quả với Keys làm tên vật tư và Items chứa Tổng vật tư cho DH quay về bài toán sort mảng 1 chiếu. Viết chơi chơi thôi, tác giả thích thì dùng, mà hỏng thích thì hỏng ép :v
 
Lần chỉnh sửa cuối:
bạn hoamattroicoi đã ngỏ ý rồi

thì anh GiangLeLoi đẹp trai ga la còn chờ chi nữa , vung tay biểu diễn thoy . hi hi
Muốn gì thì ta tự chủ động, hông cần mai mối đâu nha.
Biển dốt mênh mông, quay đầu là bờ. :D
Nghe danh đã lâu. Có nhã ý nên muốn thử vài chiêu. Khâm phục, khâm phục, thật là hiếm gặp. (cơ mà đợi "nàng" lâu quá, giờ say rồi nhìn code hoa hết mắt)/-*+//-*+//-*+/
P/s: Thấy "buồn nôn" thì kêu chàng "chim hồng (chuyên gia giả nai)" gỡ rối cho.
 
Lần chỉnh sửa cuối:
Nghe danh đã lâu. Có nhã ý nên muốn thử vài chiêu. Khâm phục, khâm phục, thật là hiếm gặp.

Thất lễ, thất lễ....sao lại thử ạ, tại hạ cũng là kẻ tầm thường thôi, lang thang phiêu bạc trên giang hồ GPE gần 4 năm rồi cũng học được ít bí kíp võ công của các sư phụ để lại, cốt là để giúp những người dân còn nghèo kiến thức Excel thôi chứ nào dám múa dìu qua mắt thợ trước các đại sư phụ. :D :D :D :D :D :D - "Vãi cả văn"
=====================

Cảm ơn bạn giangleloi, không hiểu sao đi Offline mấy anh chị ở Hải Phòng cứ hỏi mình giangleloi là nick ảo của hoamattroicoi à. Bạn lên tiếng chứng minh dùm mình cái :D, lần nào đi offline cũng mệt với câu hỏi này quá. Mà mình rất kết cái Avata của bạn, cái avata của bạn mà kết hợp với avata của anh huuthang_bd thì tuyệt với vì thành thành 2 chữ NHẪN-TÂM :D.

Còn người đẹp doveandrose kia á, cũng ấn tượng lắm, nhất là cái tên email đăng ký diễn đàn, rất cá tính. Xem ra cũng là 1 cao thủ giả ngây giả ngô đi lừa thiên hạ quá, khộ thân thiên hạ lắm doveandrose :D :D :D :D :D
 
Lần chỉnh sửa cuối:
Thất lễ, thất lễ....sao lại thử ạ, tại hạ cũng là kẻ tầm thường thôi, lang thang phiêu bạc trên giang hồ GPE gần 4 năm rồi cũng học được ít bí kíp võ công của các sư phụ để lại, cốt là để giúp những người dân còn nghèo kiến thức Excel thôi chứ nào dám múa dìu qua mắt thợ trước các đại sư phụ. :D :D :D :D :D :D - "Vãi cả văn"
=====================

Cảm ơn bạn giangleloi, không hiểu sao đi Offline mấy anh chị ở Hải Phòng cứ hỏi mình giangleloi là nick ảo của hoamattroicoi à. Bạn lên tiếng chứng minh dùm mình cái :D, lần nào đi offline cũng mệt với câu hỏi này quá. Mà mình rất kết cái Avata của bạn, cái avata của bạn mà kết hợp với avata của anh huuthang_bd thì tuyệt với vì thành thành 2 chữ NHẪN-TÂM :D.

Còn người đẹp doveandrose kia á, cũng ấn tượng lắm, nhất là cái tên email đăng ký diễn đàn, rất cá tính. Xem ra cũng là 1 cao thủ giả ngây giả ngô đi lừa thiên hạ quá, khộ thân thiên hạ lắm doveandrose :D :D :D :D :D
Gia cát dự một chút nhé, có phải chị Bé Còi tên thật là Giang, nhà ở đường Lê Lợi, Ngô Quyền, Hải Phòng? Nên đây có thể là nguyên nhân những ngưởi ở hải phòng nhầm nick với bạn giangleloi ở Đồng Nai
 
Lần chỉnh sửa cuối:
Này đúng là "Vãi cả văn kiếm hiệp" ấy chứ...Nàng hoamattroi này chắc là Fan của Kim Dung tiền bối chăng...???
Còn anh chàng quyến rũ doveandrose hôm nay bạn hoamattroi đã nhận ra là...anh ấy hay lừa tềnh rồi ...ah?híhí...anh ấy là "cao đại hiệp đó"
--------------------------------------------
Quay lại vấn đề sort trong DIC, lúc trước có topic kia mình có ý hỏi là làm sao để sort trong DIC (tất nhiên là trong mảng, mục đích để làm List khi add key trực tiếp vào Source của Data Validation cho nó đẹp ý mà) thế mà anh chàng doveandrose cũng im ru luôn..........có chăng là anh ấy biết mà giấu ta.........để đến hôm nay bé giangleloi khai khẩu thì có hoamatroi xuất chiêu.......... Vậy sao anh doveandrose "chim hồng" không cho thiên hạ biết code của anh ấy... nhỉ? anh ấy giấu kỹ quá.... --=0--=0--=0
bạn sai rồi hpKhuong à . Tôi im ru chỉ đơn giản vì ... tôi không biết làm . Đơn giản là vậy , mấy chữ "đại hiệp" xin trả lại ban tổ chức . hi hi . Bạn hpKhuong thấy đó , ngay cả cách sort cơ bản nhất tôi cũng không biết , mà bạn Hoamattroicoi xinh đẹp ấy còn đề phòng tới cả trường hợp máy người dùng không cài .Net Framework nữa kìa .Chính vì biết mình kém cõi nên mấy ngày gần đây tôi cố gắng tìm cách học tập bạn Hoamattroicoi , những mong bạn ấy thu nhận làm học trò đây. Nếu bạn gọi tại hạ như thế thì phải gọi nữ hiệp Hoamattroicoi là gì đây bạn ?
 
  1. Trong những chủ đề thảo luận nghiêm túc, tránh nói bâng quơ, sa đà vào chuyện riêng tu http://www.giaiphapexcel.com/forum/showthread.php?76052&tabid=143
  2. Phần II , hình thức bài viết đã nêu rõ


Em nghĩ các anh chị nên tập trung vào chuyên môn bài viết để giúp các thành viên, tránh sa đà vào việc cá nhân, làm loãng nội dung diễn đàn và của chủ topic
Đề nghị Mod và Admin đóng đề tài vì sa đà ko đáng có
 
Cám ơn mọi người đã tham gia thảo luận ở topic này. Mình xin phép được đóng topic tại đây.
Cảm ơn.

HMT.
 
Status
Không mở trả lời sau này.

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

Back
Top Bottom