Viết 1 hàm lọc lấy 1 giá trị từ 1 bảng có nhiều giá trị giống nhau?? (1 người xem)

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

thanhtamxdd

Thành viên mới
Tham gia
21/3/16
Bài viết
6
Được thích
0
nhờ mấy bạn chỉ mình viết 1 hàm như thế này:
VD: Mình có 1 cột giá trị
L50X50
L200X15
L75X5
L50X5
L60X5
-Viết 1 hàm trong execl quét chọn cột đó với điều kiện là L50X5, l200x15......L60x5, xong enter kéo từ trên xuống dưới nó lọc ra và bỏ các thanh trùng nhau ta có 1 cột mới:
L50X5
L200X15
L60X5


THANK
 
bạn có thể mở rộng cho mình như thế này được ko
 

File đính kèm

bạn có thể mở rộng cho mình như thế này được ko
Bạn có thể dùng công cụ Consolidate cho dữ liệu của bạn. Cách làm như sau:
+) Đặt con trỏ chuột tại J11
+) Vào Data ---> Consolidate.
Tại cửa sổ Function: Chọn Sum
Tại cửa sổ Reference: Quét chọn vùng B11:C16
+) Tích vào Top Row & Left Column
+) OK
 
Muốn Code VBA thì bạn tham khảo:
PHP:
Sub abc()
    Dim i As Long, k As Long, v As Long, a, b, Dic As Object
    Set Dic = CreateObject("Scripting.dictionary")
    With Sheet1
        a = .Range("B12", .Range("B12").End(xlDown)).Resize(, 2).Value
    End With
    ReDim b(1 To UBound(a), 1 To 2)
    For i = 1 To UBound(a)
        If Not Dic.exists(a(i, 1)) Then
            k = k + 1
            Dic(a(i, 1)) = k
            b(k, 1) = a(i, 1): b(k, 2) = a(i, 2)
        Else
            v = Dic.Item(a(i, 1))
            b(v, 2) = b(v, 2) + a(i, 2)
        End If
    Next
    Range("F12").Resize(k, 2) = b
    Set Dic = Nothing
End Sub
 
Bài 4 khác bài 1 mà
Vậy bạn thử file này xem sao
Trình tự
(1). Chọn vùng dữ liệu
(2). Nhập số thứ tự cột chứa mã lọc trong vùng dữ liệu
(3). Nhập số cột cần tính tổng khối lượng trong vùng dữ liệu
(4). chọn ô trả kết quả
 

File đính kèm

@PacificPR
Bài này viết hàm được chứ. Đưa kết quả của hàm là 1 mảng kết quả.
Công thức ở bảng tính dùng index(mangKetqua,...) để đưa ra từng ô.
 
Anh ơi em chưa biết cách này. Anh hướng dẫn cho em với
PHP:
Function vidu(byval Txt as string)
vidu=Split(Txt," ")
End Function
Trong bảng tính:
A1="Đây là một ví dụ"
B1=INDEX(vidu($A$1),ROW(Z1))
Kéo fill công thức xuống.
Đại khái như thế. :eek:
 
Muốn Code VBA thì bạn tham khảo:
PHP:
Sub abc()
    Dim i As Long, k As Long, v As Long, a, b, Dic As Object
    Set Dic = CreateObject("Scripting.dictionary")
    With Sheet1
        a = .Range("B12", .Range("B12").End(xlDown)).Resize(, 2).Value
    End With
    ReDim b(1 To UBound(a), 1 To 2)
    For i = 1 To UBound(a)
        If Not Dic.exists(a(i, 1)) Then
            k = k + 1
            Dic(a(i, 1)) = k
            b(k, 1) = a(i, 1): b(k, 2) = a(i, 2)
        Else
            v = Dic.Item(a(i, 1))
            b(v, 2) = b(v, 2) + a(i, 2)
        End If
    Next
    Range("F12").Resize(k, 2) = b
    Set Dic = Nothing
End Sub
Cách bỏ vào bảng excel sao đây???
 
nhờ mấy bạn chỉ mình viết 1 hàm như thế này:
VD: Mình có 1 cột giá trị
L50X50
L200X15
L75X5
L50X5
L60X5
-Viết 1 hàm trong execl quét chọn cột đó với điều kiện là L50X5, l200x15......L60x5, xong enter kéo từ trên xuống dưới nó lọc ra và bỏ các thanh trùng nhau ta có 1 cột mới:
L50X5
L200X15
L60X5


THANK


Đây là dạng bài lọc trùng cơ bản, thông thường có phương hướng giải quyết:

1. Với dữ liệu lớn, dùng các công cụ có sẵn trong excel ( Remove duplicate, Advanced filer,consolidảte,); chuyên nghiệp hơn thì sẽ dùng VBA
2. Để học tập, vận dụng các hàm trong excel, có thể dùng công thức mảng cho bài này. cụ thể như sau:
- Khi nói đến yếu tố trùng lặp phải nghĩ ngay đến hàm countif, match, index.....; Giả sử tôi có dữ liệu ở cột A, tại cột D,
Công thức cho ô D1: = A1
Công thức cho ô C2 =IFERROR(INDEX($A$1:$A$486,MATCH(0,COUNTIF(D$1:D1,$A$1:$A$486),0)),"") <-- kết thúc lệnh = ctrl+shift +enter ( nếu không muốn dùng tổ hợp ctrl +shift +enter, bạn có thể đặt 1 name)
- tính tổng, cộng dồn, bạn có thể dùng không thức sumif(..) ;
 

File đính kèm

Đây là dạng bài lọc trùng cơ bản, thông thường có phương hướng giải quyết:

1. Với dữ liệu lớn, dùng các công cụ có sẵn trong excel ( Remove duplicate, Advanced filer,consolidảte,); chuyên nghiệp hơn thì sẽ dùng VBA
2. Để học tập, vận dụng các hàm trong excel, có thể dùng công thức mảng cho bài này. cụ thể như sau:
- Khi nói đến yếu tố trùng lặp phải nghĩ ngay đến hàm countif, match, index.....; Giả sử tôi có dữ liệu ở cột A, tại cột D,
Công thức cho ô D1: = A1
Công thức cho ô C2 =IFERROR(INDEX($A$1:$A$486,MATCH(0,COUNTIF(D$1:D1,$A$1:$A$486),0)),"") <-- kết thúc lệnh = ctrl+shift +enter ( nếu không muốn dùng tổ hợp ctrl +shift +enter, bạn có thể đặt 1 name)
- tính tổng, cộng dồn, bạn có thể dùng không thức sumif(..) ;
hàm bác lập hợp với ý e rồi đó THANK BÁC, bác chắc đang làm cho tư vấn 1 không biết bác có file thiết kế tính toán dàn trụ cổng không cho e xin tham khảo với nha bác:D:D:D
 
Lần chỉnh sửa cuối:
hàm bác lập hợp với ý e rồi đó THANK BÁC, bác chắc đang làm cho tư vấn 1 không biết bác có file thiết kế tính toán dàn trụ cổng không cho e xin tham khảo với nha bác:D:D:D
Cho mình xin hình ảnh "dàn trụ cổng " để kiểm chứng xem cái mình đang có, có giống cái bạn đang nghĩ không ?
 
Cho mình xin hình ảnh "dàn trụ cổng " để kiểm chứng xem cái mình đang có, có giống cái bạn đang nghĩ không ?
Hi, cái dàn trụ cổng như thế này bác nè, mà bác có file tính toán dàn trụ cổng loại nào cũng được thì cho mình xin tham khảo với nha, thank bác
etwGs

http://imgur.com/a/etwGs
 

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

Back
Top Bottom