Làm Sao Gán Kết Qủa Xuống Từng Dòng Bằng Hàm Tự Tạo

Liên hệ QC

langkhachquaduong

Thành viên chính thức
Tham gia
23/7/19
Bài viết
50
Được thích
8
Mình có 1 hàm unique để lọc dữ liệu duy nhất.
Làm cách để khi ta gõ hàm unique vào ô b1 , kết qủa unique là 10 giá trị thì tự động hàm unique gán giá trị xuống ô b1 đến b10.
 

File đính kèm

  • unique.xlsm
    17.8 KB · Đọc: 39
N
Các Bạn cố giắng mà học cách điền kết quả ra Sheet kiểu Office 365 đi sẻ rất hay đấy ... Ngay cả khi Bạn xài Office 365 mà một số hàm Bill không hổ trợ thì viết lấy mà xài cho khỏe VD như: xài ADO lấy dữ liệu file Access Or Excel thì viết ADO bình thường như những hàm khác xong truyền SQL vào gõ trên Cells cái cộp là xong .... Minh họa như hình sau ( làm biếng úp Video lắm )

Nếu kẹt nữa thì Atools cũng là 1 giải pháp tốt cho Bạn :D

View attachment 246257
SQL này em thấy cũng hay nhưng chưa đụng đến .Làm báo cáo lấy dữ liệu cực kỳ nhanh.
 
Upvote 0
Các Bạn cố giắng mà học cách điền kết quả ra Sheet kiểu Office 365 đi sẻ rất hay đấy ... Ngay cả khi Bạn xài Office 365 mà một số hàm Bill không hổ trợ thì viết lấy mà xài cho khỏe VD như: xài ADO lấy dữ liệu file Access Or Excel thì viết ADO bình thường như những hàm khác xong truyền SQL vào gõ trên Cells cái cộp là xong .... Minh họa như hình sau ( làm biếng úp Video lắm )
...
ADO là COM của Windows, đâu phải hệ thống nào cũng xài được.
Mà đã xài tới 365 thì chả cần Sí-cồ Sí-kiếc gì cả. Truy vấn qua Power Query khoẻ và hợp tiêu chuẩn hơn nhiều.
 
Upvote 0
ADO là COM của Windows, đâu phải hệ thống nào cũng xài được.
Mà đã xài tới 365 thì chả cần Sí-cồ Sí-kiếc gì cả. Truy vấn qua Power Query khoẻ và hợp tiêu chuẩn hơn nhiều.
Biết mà nếu nhớ ko lầm thì Bạn có nói 1 lần trên GPE rồi mà ở thớt khác
Còn nếu Viết trên Delphi Thì Mạnh đoán thôi nhé nếu sai thì bỏ qua toàn bộ các dòng dưới đây

Delphi nó cho Hổ trợ Import các thư viện DLL của Bill thành các Unit đính kèm vào vậy nếu làm theo cách đó ko biết mang qua máy ko cài hệ điều hành của Windows thì điều gì sẻ xảy ra ... tại vì ko có cài hệ điều hành khác nên cũng ko có quậy được ====> nên nêu lên đại vậy ====> ai biết trả lời dùm ???!!!
 
Upvote 0
Xài 365 nói làm gì nữa.Nó tích sẵn luôn rồi bỏ tiền ra mua thôi.
Mình đang tự viết hàm giống với unique nhưng đến đoạn đỗ ra range thì chưa biết phải làm gì
Bài đã được tự động gộp:


Mình đã text thử ok đó.
Bài đã được tự động gộp:


Bác nhớ từ khóa tên gì không em muốn kham khảo.
"Application.Caller"
 
Upvote 0
a
Bài đã được tự động gộp:

Bạn kiểm tra thử xem,

Bỏ đoạn này vào ThisWorkbook module:
Mã:
Option Explicit
Public RangesToExpand As New Collection
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    Dim oneCell As Range
    Dim strFormula
    Application.EnableEvents = False
    For Each oneCell In RangesToExpand
        With oneCell
            strFormula = .Cells(1, 1).FormulaArray
            .CurrentRegion.ClearContents
            .FormulaArray = strFormula
            RangesToExpand.Remove .Address(, , , True)
        End With
    Next oneCell
    Application.EnableEvents = True
End Sub

Bỏ đoạn này vào Module có tên "FUNCUNIQUE" hoặc một module mới.
Mã:
Function UNIQUES_COL(rng As Range) As Variant()
    Dim list As New Collection
    Dim Ulist() As Variant
    Dim Value, i As Long
    On Error Resume Next
    For Each Value In rng
        list.Add CStr(Value), CStr(Value)
    Next
    On Error GoTo 0
    ReDim Ulist(list.Count - 1, 0)
    For i = 0 To list.Count - 1
        Ulist(i, 0) = list(i + 1)
    Next
    If TypeName(Application.Caller) = "Range" Then
        If Application.EnableEvents Then
            With Application.Caller
                If .Rows.Count <> i Or .Columns.Count <> 1 Then

                    If ThisWorkbook.RangesToExpand Is Nothing Then
                        Set ThisWorkbook.RangesToExpand = New Collection
                    End If

                    With .Resize(i, 1)
                        ThisWorkbook.RangesToExpand.Add item:=.Cells, Key:=.Address(, , , True)
                    End With

                End If
            End With
        End If
    End If
    UNIQUES_COL = Ulist
End Function

Gõ vào F1:
Mã:
=UNIQUES_COL($A$1:$A$13)
If TypeName(Application.Caller) = "Range" Then
If Application.EnableEvents Then
With Application.Caller
If .Rows.Count <> i Or .Columns.Count <> 1 Then

If ThisWorkbook.RangesToExpand Is Nothing Then
Set ThisWorkbook.RangesToExpand = New Collection
End If

With .Resize(i, 1)
ThisWorkbook.RangesToExpand.Add item:=.Cells, Key:=.Address(, , , True)
End With

End If
End With
End If
End If
Mình tìm mọi cách để hiểu đoạn code trên mà chưa được. Mong bạn giải thích giúp mình. Mình cám ơn
 
Upvote 0
a
Bài đã được tự động gộp:


If TypeName(Application.Caller) = "Range" Then
If Application.EnableEvents Then
With Application.Caller
If .Rows.Count <> i Or .Columns.Count <> 1 Then

If ThisWorkbook.RangesToExpand Is Nothing Then
Set ThisWorkbook.RangesToExpand = New Collection
End If

With .Resize(i, 1)
ThisWorkbook.RangesToExpand.Add item:=.Cells, Key:=.Address(, , , True)
End With

End If
End With
End If
End If
Mình tìm mọi cách để hiểu đoạn code trên mà chưa được. Mong bạn giải thích giúp mình. Mình cám ơn
Chốc chốc lại thấy có anh gì lại úp quả vi đi ô rất là hoành trán nhưng không thấy mặt mũi cốt két thế nào? Bạn thử hỏi cách làm của anh ý xem.
Cách làm này của tôi có gì cao điêu đâu, anh ý cũng chỉ ra nhược điểm rồi mà.
 
Upvote 0
Chốc chốc lại thấy có anh gì lại úp quả vi đi ô rất là hoành trán nhưng không thấy mặt mũi cốt két thế nào? Bạn thử hỏi cách làm của anh ý xem.
Cách làm này của tôi có gì cao điêu đâu, anh ý cũng chỉ ra nhược điểm rồi mà.
Một bài toán nhiều phương án giải khác nhau đều sẽ có ưu nhược điểm riêng. Đối với bạn nó bình thường nhưng đối với mình thì nó cực kỳ hữu ích. Mình rất mong sự giải đáp từ bạn.
 
Upvote 0
Một bài toán nhiều phương án giải khác nhau đều sẽ có ưu nhược điểm riêng. Đối với bạn nó bình thường nhưng đối với mình thì nó cực kỳ hữu ích. Mình rất mong sự giải đáp từ bạn.
Bạn cứ bình tĩnh chờ đợi thêm các phương pháp như trong video của các anh ý đã, biết đâu được đến đó bạn sẽ thấy những cái đó hữu ích hơn rất nhiều.
Mình cũng đan chờ đợi những cái đó giống như cảm giác của bạn vậy :)
 
Upvote 0
Bạn cứ bình tĩnh chờ đợi thêm các phương pháp như trong video của các anh ý đã, biết đâu được đến đó bạn sẽ thấy những cái đó hữu ích hơn rất nhiều.
Mình cũng đan chờ đợi những cái đó giống như cảm giác của bạn vậy :)
Thôi đành ngậm ngùi vậy. Một chuyện tình dang dở.
 
Upvote 0
@>><M? đọc Comment của bạn không nhịn được cười@>><M?
xem thử vi deo của 1 bạn dấu tên xem có nghiệm ra được gì không
Tôi thấy có gì đáng buồn cười đâu.
Bạn ý không hiểu không biết vận dụng thì bạn ý hỏi thôi, hỏi không được thì bạn ý buồn thôi chứ có gì mà buồn cười.
Tôi thì không đủ khả năng để làm được như các video hay hình ảnh hoành tráng đó mà chỉ có thể tìm hiểu trên mạng rồi tùy biến lại theo nhu cầu người hỏi thôi, nhưng có vị cao siêu nhìn thấy nó tầm thường quá nên chê bơi nọ kia, nên tôi không dám to mồm nữa.
Đành im lặng mà xem các siêu sao đó biểu diễn thôi.
Chứ có gì đáng cười đâu.
 
Upvote 0
Tôi thấy có gì đáng buồn cười đâu.
Bạn ý không hiểu không biết vận dụng thì bạn ý hỏi thôi, hỏi không được thì bạn ý buồn thôi chứ có gì mà buồn cười.
Tôi thì không đủ khả năng để làm được như các video hay hình ảnh hoành tráng đó mà chỉ có thể tìm hiểu trên mạng rồi tùy biến lại theo nhu cầu người hỏi thôi, nhưng có vị cao siêu nhìn thấy nó tầm thường quá nên chê bơi nọ kia, nên tôi không dám to mồm nữa.
Đành im lặng mà xem các siêu sao đó biểu diễn thôi.
Chứ có gì đáng cười đâu.
Hihi Bạn không buồn cười nhưng tôi đọc cái câu này "Thôi đành ngậm ngùi vậy. Một chuyện tình dang dở. " tôi thấy nó tiếu lăm, nó hài hài nên tôi mắt cười thôi
 
Upvote 0
thì bài số 21 Mạnh có nói rồi còn gì ... cơ bản nó khác nhau cái gì... ???!!!
Còn nhìn thấy họ gõ hàm xong bấm vào vùng dữ liệu của hàm mà nó có kiểu như sau ... thì hahahaha ........... hehehehe -0-0-0- -0-0-0- -0-0-0- -0-0-0-
{=Ham(value1,value2)}
 
Upvote 0
Hàm tự co giãn biết viết và biết ứng dụng thì nó có sức mạnh và lợi ích vô cùng. Cũng phải biết cách viết chứ không đơn giản như Excel 365. Chúng ta chỉ nên dùng khi cần lấy mảng động và mảng đó phải phục vụ cho một báo cáo hoàn chỉnh hoặc là vùng đệm quan trọng cho các công cụ khác của Excel. Cách làm công thức Excel truyền thống để tạo báo cáo có cấu trúc mới là bất cập, tốc độ chạy chậm, người dùng phải làm công thức thừa, phải thêm chiều động tác đi filter để ẩn dòng thừa, tính tham chiếu ... làm cho Excel chạy chậm.
Nếu bạn nào muốn thử nghiệm những gì tôi nói thì xem video này, cài A-Tools, tải file báo cáo như trong video dưới đây chạy thử, không phải dùng VBA thì sẽ thấy lợi ích lớn thế nào
(Download file Excel thiết kế trong video trên: https://drive.google.com/file/d/1Wj57L02GMBN4U_nDz_3Czx_AaPZSgs47/view?usp=sharing )​
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này nó cũng co dãn được tẹo
Cái này bạn có thể ứng dụng nó viết ra đầy thứ như ai đấy

1/ Sử dụng ADO lấy dữ liệu Excel + Access
2/ Sử dụng ADO lấy dữ liệu Ms Server
3/ Viết Hàm xVlooup ..
5/ ....
6/ Miễn sao bạn tính toán mọi thứ xong cho vào 1 Array xong gán nó vào Hàm ResizeKQ là xong
đơn giản chỉ có thế còn vận dụng tùy biến yes Or No thì tùy vào khả năng của từng bạn -0-0-0-

Còn cái co và dãn thì nó cũng chỉ có vai trò là hình thức ... có là tốt ... chứ nó không phải là nội dung quyết định mọi vấn đề
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom