Code lấy ra giá trị duy nhất và tìm số lượng lớn nhất của phần tử trong từng dòng

Liên hệ QC

domitory

Thành viên mới
Tham gia
10/10/12
Bài viết
23
Được thích
9
Chào các Bác,
Em có thắc mắc là làm sao để lấy ra giá trị duy nhất từ 1 vùng dữ kiện, tìm số lượng lớn nhất của phần tử trong từng dòng.
Ví dụ:
Ta có vùng dữ liệu:
A B C B
D C
C B A C C
Giá trị duy nhất từ vùng dữ liệu và số lượng lớn nhất của giá trị trên từng dòng là"
A max=1
B max=2
C max=3
D max=1
 
Tính như bạn í mới đúng
nó đúng khi cái trên kia chia làm 3 vùng còn cái trên kia trong một vùng thì chắc là không,thế nên còn phải xem nó là mấy vùng
Bài đã được tự động gộp:

1607356874390.png
Tính số lượng phần tử
 
Lần chỉnh sửa cuối:
Upvote 0
Chào các Bác,
Em có thắc mắc là làm sao để lấy ra giá trị duy nhất từ 1 vùng dữ kiện, tìm số lượng lớn nhất của phần tử trong từng dòng.
Ví dụ:
Ta có vùng dữ liệu:
A B C B
D C
C B A C C
Giá trị duy nhất từ vùng dữ liệu và số lượng lớn nhất của giá trị trên từng dòng là"
A max=1
B max=2
C max=3
D max=1
Giả sử dữ liệu bắt đầu từ A1 sheet1.
Mã:
Option Explicit

Sub abcd()
Dim Nguon
Dim Dieukien
Dim Thongke
Dim Kq
Dim i, j, k, x
Nguon = Sheet1.Range("A1").CurrentRegion
k = UBound(Nguon)
ReDim Thongke(1 To 4, 1 To k) 'A, B, C, D
ReDim Kq(1 To 4, 1 To 2)
Dieukien = Array("A", "B", "C", "D")
For i = 1 To k
    For j = 1 To UBound(Nguon, 2)
        For x = 0 To 3
            If Dieukien(x) = Nguon(i, j) Then
                Thongke(x + 1, i) = Thongke(x + 1, i) + 1
                Exit For
            End If
        Next x
    Next j
    For x = 1 To 4
        If Thongke(x, i) > Kq(x, 2) Then
            Kq(x, 2) = Thongke(x, i)
            Kq(x, 1) = Dieukien(x - 1)
        End If
    Next x
Next i
Sheet1.Range("G1").Resize(4, 2) = Kq
End Sub
 
Upvote 0
nó đúng khi cái trên kia chia làm 3 vùng còn cái trên kia trong một vùng thì chắc là không,thế nên còn phải xem nó là mấy vùng
Bài đã được tự động gộp:

View attachment 250762
Tính số lượng phần tử
Người ta nói cũng tương đối rõ mà.

Tiêu đề
Code lấy ra giá trị duy nhất và tìm số lượng lớn nhất của phần tử trong từng dòng

Nội dung
Em có thắc mắc là làm sao để lấy ra giá trị duy nhất từ 1 vùng dữ kiện, tìm số lượng lớn nhất của phần tử trong từng dòng

Vùng chỉ có 1 nhưng xét lần lượt từng dòng. Vd. 1 vùng 3 dòng như ở bài #1:
- dòng 1: A = 1, B = 2, C = 1, D = 0
- dòng 2: A = 0, B = 0, C = 1, D = 1
- dòng 3: A = 1, B = 1, C = 3, D = 0

Vậy Amax = 1 (đạt max ở dòng 1 và 3), Bmax = 2 (đạt max ở dòng 1), Cmax = 3 (đạt max ở dòng 3), Dmax = 1 (đạt max ở dòng 2)
 
Upvote 0
Giả sử dữ liệu bắt đầu từ A1 sheet1.
Mã:
Option Explicit

Sub abcd()
Dim Nguon
Dim Dieukien
Dim Thongke
Dim Kq
Dim i, j, k, x
Nguon = Sheet1.Range("A1").CurrentRegion
k = UBound(Nguon)
ReDim Thongke(1 To 4, 1 To k) 'A, B, C, D
ReDim Kq(1 To 4, 1 To 2)
Dieukien = Array("A", "B", "C", "D")
For i = 1 To k
    For j = 1 To UBound(Nguon, 2)
        For x = 0 To 3
            If Dieukien(x) = Nguon(i, j) Then
                Thongke(x + 1, i) = Thongke(x + 1, i) + 1
                Exit For
            End If
        Next x
    Next j
    For x = 1 To 4
        If Thongke(x, i) > Kq(x, 2) Then
            Kq(x, 2) = Thongke(x, i)
            Kq(x, 1) = Dieukien(x - 1)
        End If
    Next x
Next i
Sheet1.Range("G1").Resize(4, 2) = Kq
End Sub
Cám ơn bác nhiều nha.
Bài đã được tự động gộp:

Người ta nói cũng tương đối rõ mà.

Tiêu đề


Nội dung


Vùng chỉ có 1 nhưng xét lần lượt từng dòng. Vd. 1 vùng 3 dòng như ở bài #1:
- dòng 1: A = 1, B = 2, C = 1, D = 0
- dòng 2: A = 0, B = 0, C = 1, D = 1
- dòng 3: A = 1, B = 1, C = 3, D = 0

Vậy Amax = 1 (đạt max ở dòng 1 và 3), Bmax = 2 (đạt max ở dòng 1), Cmax = 3 (đạt max ở dòng 3), Dmax = 1 (đạt max ở dòng 2)
Bác phân tích đúng ý em rồi ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom