Tìm hướng có tốc độ gió max

Liên hệ QC

phulien1902

GPE - My love
Tham gia
6/7/13
Bài viết
3,543
Được thích
4,424
Chào các ACE trên diễn đàn
Mình có 1 vướng mắc trong việc tìm hướng gió xảy ra( xin mời xem file đính kèm)
Mình không biết phải làm như thế nào, mong nhận được sự giúp đỡ của mọi người.
Trân trọng cảm ơn.
 
Lần chỉnh sửa cuối:
Chào các ACE trên diễn đàn
Mình có 1 vướng mắc trong việc tìm hướng gió xảy ra khi có trạng thái mặt biển lớn nhất.
Trong file của mình có trạng thái mặt biển lớn nhất là 6, bây giờ phải chỉ ra nó có các hướng N,NE,S
Mình không biết phải làm như thế nào, mong nhận được sự giúp đỡ của mọi người.
Trân trọng cảm ơn.

ko hiểu???
vì sao C8=N
H17=S
M16=NE
quy luật là sao???
 
ko hiểu???
vì sao C8=N
H17=S
M16=NE
quy luật là sao???
Mình xin được trả lời bạn như sau: Trạng thái mặt biển lớn hay nhỏ phụ thuộc vào tốc độ gió. Gió lớn sẽ sinh ra trạng thái mặt biển lớn. Vậy có gió lớn thì đương nhiên là có hướng gió xảy.
 
Lần chỉnh sửa cuối:
3 vlookup()

;;;;;;;;;;; ;;;;;;;;;;; ;;;;;;;;;;;
%#^#$ %#^#$ %#^#$
 

File đính kèm

Nhờ mod xoá dùm

cám ơn
 
Lần chỉnh sửa cuối:
Trước hết em xin cảm ơn bác Hyen17 đã giúp đỡ.
Em cũng đã đọc file của bác gửi, em thấy vẫn chưa đúng ý của em. Vì em muốn xác định trạng thái mặt biển Max trong tháng vào 1 Cell, hướng xuất hiện sẽ vào 1 Cell khác.
Trạng thái thì chỉ có 1 giá trị, nhưng có nhiều hướng xuất hiện, em muốn liệt kê hết nó ra, không phải cập từng ngày.
Các bác nghiên cứu giúp em nhé.
 
[FONT="]Mình xin được trả lời bạn như sau: Trạng thái mặt biển lớn hay nhỏ phụ thuộc vào tốc độ gió. Gió lớn sẽ sinh ra trạng thái mặt biển lớn. Vậy có gió lớn thì đương nhiên là có hướng gió xảy.
Trong File của mình trạng thái biển lớn nhất là 6, đi kèm với hướng gió(bên cạnh).
Có 3 lần xuất hiện trạng thái mặt biển lớn nhất kèm theo 3 hướng gió khác nhau, giờ mình muốn liệt kê nó ra.
Các anh chị em nghiên cứu giúp mình nhé.[/FONT]
Xem thử kết quả trong file này coi sao.
 

File đính kèm

Nếu bạn tìm hiểu VBA thì tham khảo thử Code sau
Mã:
Sub Max()
    'Khai bao bien
    Dim Rng As Range
    Dim Cls As Range
    Dim MaxVBA As Long
    Dim HGio As String
    
    'Don cac vung rieng le thanh 1 range
    Set Rng = Union([B7:B37], [G7:G37], [L7:L37])
    'Buoc 1 tim Max
    For Each Cls In Rng
        If Cls > MaxVBA Then MaxVBA = Cls
    Next


    'Buoc 2 Tim huong gio
    For Each Cls In Rng
        If Cls = MaxVBA Then
            HGio = HGio & Cls.Offset(0, 1) & ","
        End If
    Next


    'Hien thi ket qua
    MsgBox "Max = " & MaxVBA & " <===> Huong gio: " & Left(HGio, Len(HGio) - 1)
End Sub
 
Nếu bạn tìm hiểu VBA thì tham khảo thử Code sau
Mã:
Sub Max()
    'Khai bao bien
    Dim Rng As Range
    Dim Cls As Range
    Dim MaxVBA As Long
    Dim HGio As String
    
    'Don cac vung rieng le thanh 1 range
    Set Rng = Union([B7:B37], [G7:G37], [L7:L37])
    'Buoc 1 tim Max
    For Each Cls In Rng
        If Cls > MaxVBA Then MaxVBA = Cls
    Next


    'Buoc 2 Tim huong gio
    For Each Cls In Rng
        If Cls = MaxVBA Then
            HGio = HGio & Cls.Offset(0, 1) & ","
        End If
    Next


    'Hien thi ket qua
    MsgBox "Max = " & MaxVBA & " <===> Huong gio: " & Left(HGio, Len(HGio) - 1)
End Sub

Cảm ơn cách làm của bạn, rất dễ hiểu cho những người ngu ngơ về VBA như mình.
Trong Code của bạn mình thêm dòng:
Mã:
Range("H590") = Left(HGio, Len(HGio) - 1)

vào là kết quả OK
 
Đây mới là cách giải quyết cho bài toán này, đó là dùng VBA, rất hay. Em cũng đang học về VBA, em sẽ nghiên cứu kỹ Code của bác . Xin trân trọng cảm ơn tới tất cả mọi người đã quan tâm giúp đỡ!
Bài trên tôi dùng Name GPE cho Công thức chớ có "miếng" VBA nào đâu.
Nếu bạn muốn VBA thì dùng hàm tự tạo ToTiTe này cho dễ chọn bảng dữ liệu và chọn Max(Khi đã có Max ở ô nào đó)
 

File đính kèm

Quả thật em nhầm, em xin rút kinh nghiệm,đó là Code của anh ndu, còn bác đặt Name
Cách thứ 2 dùng VBA của bác cũng rất hay.
Cảm ơn bác và mọi người đã quan tâm giúp đỡ
 
Web KT

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

Back
Top Bottom