Làm thế nào tìm số lớn nhất trong một bảng tính (3 người xem)

  • Thread starter Thread starter knightcm
  • Ngày gửi Ngày gửi
Liên hệ QC

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

knightcm

Thành viên mới
Tham gia
9/2/12
Bài viết
9
Được thích
0
Làm thế nào tìm số lớn nhất trong một bảng tính.Ai biết chỉ dùm mới với.
Số lớn nhất trong bảng (không phải 1 cột hay 1 hàng nha ).bảng tính của mình 60x60
và nhờ anh em bày hộ bài toán tìm số trong bảng A sau thõa mãn điều kiên sau :
thuộc cột có giá trị tuyệt đối G max và hàng mà bi/Aij nhỏ nhất và >0 .
vd : như bảng sau giá trị cần tìm là số 6
z1 z2 z3 z4 z5 biz
2 6 1 0 0 36
z4 5 2 0 1 0 27
z5 8 3 0 0 1 40
G 40 50 0 0 0 0
 

File đính kèm

Lần chỉnh sửa cuối:
Dùng MAX(vùng dữ liệu) được không bạn?
 
Làm thế nào tìm số lớn nhất trong một bảng tính.Ai biết chỉ dùm mới với.
Số lớn nhất trong bảng (không phải 1 cột hay 1 hàng nha ).bảng tính của mình 60x60
và nhờ anh em bày hộ bài toán tìm số trong bảng A sau thõa mãn điều kiên sau :
thuộc cột có giá trị tuyệt đối G max và hàng mà bi/Aij nhỏ nhất và >0 .
vd : như bảng sau giá trị cần tìm là số 6
z1 z2 z3 z4 z5 biz
2 6 1 0 0 36
z4 5 2 0 1 0 27
z5 8 3 0 0 1 40
G 40 50 0 0 0 0
Bạn giải thích rõ lại dòng tô đậm bên trên đi. bi/Aij là gì?
 
như file excel mình gửi đó vd như bảng trên số cân tìm thuộc cột 2 do có giá trị G max và trong cột 2 đố lấy lấy các tỉ số bi chia cho các số cột 2 (hàng G không tính ) : 36/6 , 27/2 ;40/3 thì 36/6 nhỏ nhất nên số cần tìm là số 6
a/b z1 z2 z3 z4 z5 bi
z
3 2 6 1 0 0 36
z4 5 2 0 1 0 27
z5 8 3 0 0 1 40
G 40 50 0 0 0 0
 
Lần chỉnh sửa cuối:
như file excel mình gửi đó vd như bảng trên số cân tìm thuộc cột 2 do có giá trị G max và trong cột 2 đố lấy lấy các tỉ số bi chia cho các số cột 2 (hàng G không tính ) : 36/6 , 27/2 ;40/3 thì 36/6 nhỏ nhất nên số cần tìm là số 6

Vậy dùng công thức này đi

PHP:
=INDEX(B3:F5,MATCH(MIN(G3:G5/INDEX(B3:F5,0,MATCH(MAX(B6:F6),B6:F6,0))),G3:G5/INDEX(B3:F5,0,MATCH(MAX(B6:F6),B6:F6,0)),0),MATCH(MAX(B6:F6),B6:F6,0))

vì là công thức mảng nên nhớ kết thúc bằng CTRL+SHIFT+ENTER

nhớ lần sau giải thích rõ đâu là bi, Aij chứ giải thích kiểu như trên thì ai mà đoán được?
 
Thử công thức mảng này xem:
Mã:
=INDEX(OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0)),MATCH(MIN($G$3:$G$5/$B$3:$F$5 OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0))),$G$3:$G$5/$B$3:$F$5 OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0)),0))
Nhấn Ctrl-shift-enter nhé
 
thanks pro bebo021999.bạn có thể giải thích câu lệnh trên cho mình được không bạn .để biết bữa sau còn áp dụng nhìn hiểu được khúc đầu ,còn từ khúc bắt đầu từ chữ Min ..........................................................0 ,match chỗ này không hiểu lắm .thank bạn

=INDEX(OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0)),MATCH(MIN($G$3:$G$5/$B$3:$F$5 OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0))),$G$3:$G$5/$B$3:$F$5 OFFSET($A$3:$A$5,,MATCH(MAX($B$6:$G$6),$B$6:$G$6,0)),0))
 
Lần chỉnh sửa cuối:
Vậy dùng công thức này đi

PHP:
=INDEX(B3:F5,MATCH(MIN(G3:G5/INDEX(B3:F5,0,MATCH(MAX(B6:F6),B6:F6,0))),G3:G5/INDEX(B3:F5,0,MATCH(MAX(B6:F6),B6:F6,0)),0),MATCH(MAX(B6:F6),B6:F6,0))

vì là công thức mảng nên nhớ kết thúc bằng CTRL+SHIFT+ENTER

nhớ lần sau giải thích rõ đâu là bi, Aij chứ giải thích kiểu như trên thì ai mà đoán được?

thanks pro vodoi2x bạn có thể giải thích câu lệnh trên cho mình được không bạn .để biết bữa sau còn áp dụng nhìn hiểu được khúc đầu ,còn từ khúc bắt đầu từ chữ Min .................................................. ........0 ,match chỗ này không hiểu lắm .thank bạn
 
bạn nào có team viewer rảnh cho mình hỏi tí nữa được không thanks .nhiều .yahoo :huyenvochannhan_cm .thanks các bạn đã giúp đỡ
 
Hình như mấy công thức mảng vẫn chưa đáp ứng yêu cầu:
thuộc cột có giá trị tuyệt đối G max và hàng mà bi/Aij nhỏ nhất và >0
Như vậy trong bảng vẫn có giá trị dương và âm?
Thử hàm tự tạo xem sao:
PHP:
Public Function GPE(Rng As Range) As Double
Dim sArr(), dArr(), I As Long, J As Long, Tem As Double, MaxG As Long, eCol As Long, Rw As Long, Col As Long
sArr = Rng.Value
eCol = UBound(sArr, 2)
Rw = UBound(sArr, 1)
Tem = 10 ^ 10
For J = 1 To eCol
    If Abs(sArr(Rw, J)) > MaxG Then
        MaxG = Abs(sArr(Rw, J))
        Col = J
    End If
Next J
For I = 1 To Rw - 1
    If sArr(I, Col) > 0 Then
        If sArr(I, eCol) / sArr(I, Col) < Tem Then
            Tem = sArr(I, eCol) / sArr(I, Col)
            GPE = sArr(I, Col)
        End If
    End If
Next I
End Function
 

File đính kèm

có mod nào đi ngang qua, dọn rác dùm bài này

cám ơn nhiều
 
Lần chỉnh sửa cuối:
thanks pro vodoi2x bạn có thể giải thích câu lệnh trên cho mình được không bạn .để biết bữa sau còn áp dụng nhìn hiểu được khúc đầu ,còn từ khúc bắt đầu từ chữ Min .................................................. ........0 ,match chỗ này không hiểu lắm .thank bạn


Muốn hiểu bạn bôi đen từng đoạn công thức và bấm F9 sẽ hiểu,

Tuy nhiên như bác bate nói trên công thức chưa xét đến trường hợp bi/Aij>0 và |G| Nên bạn cân nhắc lại cách sử dụng - hoặc tự bổ sung thêm cho hợp lý.



Hình như mấy công thức mảng vẫn chưa đáp ứng yêu cầu:

Như vậy trong bảng vẫn có giá trị dương và âm?
Thử hàm tự tạo xem sao:
............
vậy thì phải xét điều kiện này mới đúng
sArr(I, eCol) / sArr(I, Col)>0
chứ bác????
 
Lần chỉnh sửa cuối:
Muốn hiểu bạn bôi đen từng đoạn công thức và bấm F9 sẽ hiểu,

Tuy nhiên như bác bate nói trên công thức chưa xét đến trường hợp bi/Aij>0 và |G| Nên bạn cân nhắc lại cách sử dụng - hoặc tự bổ sung thêm cho hợp lý.




vậy thì phải xét điều kiện này mới đúng
sArr(I, eCol) / sArr(I, Col)>0
chứ bác????

bác làm rùi có thể thêm vào điều kiện bi/Aij > 0 và |G| max được không bạn
 
Hình như mấy công thức mảng vẫn chưa đáp ứng yêu cầu:

Như vậy trong bảng vẫn có giá trị dương và âm?
Thử hàm tự tạo xem sao:
PHP:
Public Function GPE(Rng As Range) As Double
Dim sArr(), dArr(), I As Long, J As Long, Tem As Double, MaxG As Long, eCol As Long, Rw As Long, Col As Long
sArr = Rng.Value
eCol = UBound(sArr, 2)
Rw = UBound(sArr, 1)
Tem = 10 ^ 10
For J = 1 To eCol
    If Abs(sArr(Rw, J)) > MaxG Then
        MaxG = Abs(sArr(Rw, J))
        Col = J
    End If
Next J
For I = 1 To Rw - 1
    If sArr(I, Col) > 0 Then
        If sArr(I, eCol) / sArr(I, Col) < Tem Then
            Tem = sArr(I, eCol) / sArr(I, Col)
            GPE = sArr(I, Col)
        End If
    End If
Next I
End Function


thank bác hàm này xài tốt .nhưng sau phép biến đổi nó lại không xác định đc số cần tìm .bảng 2 số cần tìm là số 7 mà nó lại tìm ra số 6 .mình gửi lại bản excel bạn xem thử
 

File đính kèm

Lần chỉnh sửa cuối:
bác làm rùi có thể thêm vào điều kiện bi/Aij > 0 và |G| max được không bạn

tôi nói rui: bạn cân nhắc lại cách sử dụng - hoặc tự bổ sung thêm cho hợp lý.

thank bác hàm này xài tốt .nhưng sau phép biến đổi nó lại không xác định đc số cần tìm .bảng 2 số cần tìm là số 7 mà nó lại tìm ra số 6 .mình gửi lại bản excel bạn xem thử

Đợi bác bate vậy
 
Lần chỉnh sửa cuối:
thank bác hàm này xài tốt .nhưng sau phép biến đổi nó lại không xác định đc số cần tìm .bảng 2 số cần tìm là số 7 mà nó lại tìm ra số 6 .mình gửi lại bản excel bạn xem thử
Chép cái này đè lên cái cũ coi sao:
PHP:
Public Function GPE(Rng As Range) As Double
Dim sArr(), dArr(), I As Long, J As Long, Tem As Double, MaxG As Long, eCol As Long, Rw As Long, Col As Long
sArr = Rng.Value
eCol = UBound(sArr, 2)
Rw = UBound(sArr, 1)
Tem = 10 ^ 10
For J = 1 To eCol - 1
    If Abs(sArr(Rw, J)) > MaxG Then
        MaxG = Abs(sArr(Rw, J))
        Col = J
    End If
Next J
For I = 1 To Rw - 1
    If sArr(I, eCol) / sArr(I, Col) > 0 Then
        If sArr(I, eCol) / sArr(I, Col) < Tem Then
            Tem = sArr(I, eCol) / sArr(I, Col)
            GPE = sArr(I, Col)
        End If
    End If
Next I
End Function
 
Chép cái này đè lên cái cũ coi sao:
PHP:
Public Function GPE(Rng As Range) As Double
Dim sArr(), dArr(), I As Long, J As Long, Tem As Double, MaxG As Long, eCol As Long, Rw As Long, Col As Long
sArr = Rng.Value
eCol = UBound(sArr, 2)
Rw = UBound(sArr, 1)
Tem = 10 ^ 10
For J = 1 To eCol - 1
    If Abs(sArr(Rw, J)) > MaxG Then
        MaxG = Abs(sArr(Rw, J))
        Col = J
    End If
Next J
For I = 1 To Rw - 1
    If sArr(I, eCol) / sArr(I, Col) > 0 Then
        If sArr(I, eCol) / sArr(I, Col) < Tem Then
            Tem = sArr(I, eCol) / sArr(I, Col)
            GPE = sArr(I, Col)
        End If
    End If
Next I
End Function

thank đã xài tốt pro.cảm ơn nhiều
 
Web KT

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

Back
Top Bottom