Xin nhờ giúp đỡ về chuỗi số liệu sau (1 người xem)

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

Status
Không mở trả lời sau này.

black_coffee

Thành viên mới
Tham gia
22/6/11
Bài viết
24
Được thích
0
chào a chị e trên 4rum hiện e có 1 vấn đề hơi khó về excel đó là tìm ra các số max liên tiếp trong các ngày và tháng. Cụ thể ở đây là tìm ra trong các trận mưa trong 1 năm. những trận nào có lượng mưa lớn nhất trong năm. gồm : 2 trận mưa liên tiếp lớn nhất, 3 trận mưa liên tiếp lớn nhất. 5 trận mưa liên tiếp lớn nhất. ( Tính cả trường hợp trận mưa ở ngày 30 31 của tháng này nếu có và tiếp đến là ngày mùng 1 mùng 2 mùng 3 của tháng kế tiếp nếu có mưa và là trận mưa lớn nhất. ) Vậy có cách gì hay phân mềm nào đó trong excel có thể tìm ra nhanh chóng các trận mưa lớn nhất trong 2 ngày max 3 ngày max và 5 ngày max này ko ạ. Chứ ngồi nhìn nhìn dò dò cái mớ này với khooảng vài chục năm thì e chết mất @@ . e gửi các pro 1 bảng excel số liệu và kết quả mẫu e dò bằng mắt cho các bác dễ hiểu. mong mọi người giúp đỡ. THanks all e cũng đang cần gấp :(
 

File đính kèm

Lần chỉnh sửa cuối:
không hiểu ý bạn hỏi sao luôn,ngày 17/7 lượng mưa chỉ 5.3 sao lại đưa vô phần 5 ngày max, cái này bạn ví dụ hay dòng nào gần lượng mưa max trong tháng thì lấy
 
không hiểu ý bạn hỏi sao luôn,ngày 17/7 lượng mưa chỉ 5.3 sao lại đưa vô phần 5 ngày max, cái này bạn ví dụ hay dòng nào gần lượng mưa max trong tháng thì lấy

à vấn đề là chỗ này đây ạ. lượng mưa 2 ngày 3 ngày hoặc 5 ngày phải là những ngày liên tục có mưa. và có tổng lượng mưa lớn nhất. bảng số liệu trên e bị sai :( e xin up lại file này mới đúng e se up lai ca tren #1 các bác down bản : so lieu sua.xls giúp e nhe )
Ví dụ như bảng số liệu mới này : 2 ngày mưa max là ngày 29 và 30 của tháng 7 ( phải là 2 ngày mưa liên tục cạnh nhau) là 248 va 83,4 cộng lại 331,4 số 331,4 này phải là tổng lớn nhất. và không có 2 ngày mưa nào liên tục cộng lại lớn hơn 2 ngày này. Tương tự như vậy cho 3 ngày và 5 ngày max. Ở đây 5 ngày max thì lại rơi vào tháng 8 các ngày 15, 16 ,17 ,18 ,19 vì chỉ có 5 ngày mưa liên tục này trong năm cộng lại có tổng lớn nhất là 300,7 . Lưu ý phải là các ngày mưa liên tục ko ngắt quãng. :D MOng các pro giúp đỡ :D
 

File đính kèm

ồ không có ai giup mình sao :(

làm bằng vba nha, hàm tôi nghĩ nát óc từ tối đến giờ vẫn chưa ra

cho họỏi thêm cái này
trường hợp các ngày mưa liên tiêp rơi vào cuối tháng này đâu tháng kia thì có tính ko? ví dụ 30 tháng 1, rồi 2,3 tháng 2
hay chỉ tính trong từng tháng?
===========

bạn tham khảo link sau, xem có sài được ko
http://www.giaiphapexcel.com/forum/...nhất-của-tổng-3-ngày-và-chỉ-ra-đó-là-ngày-nào

hoặc gõ từ khoá "ngay mua lien tiep nhieu nhat" vào cái ô tìm kiếm tìn xem
 
Lần chỉnh sửa cuối:
à vấn đề là chỗ này đây ạ. lượng mưa 2 ngày 3 ngày hoặc 5 ngày phải là những ngày liên tục có mưa. và có tổng lượng mưa lớn nhất. bảng số liệu trên e bị sai :( e xin up lại file này mới đúng e se up lai ca tren #1 các bác down bản : so lieu sua.xls giúp e nhe )
Ví dụ như bảng số liệu mới này : 2 ngày mưa max là ngày 29 và 30 của tháng 7 ( phải là 2 ngày mưa liên tục cạnh nhau) là 248 va 83,4 cộng lại 331,4 số 331,4 này phải là tổng lớn nhất. và không có 2 ngày mưa nào liên tục cộng lại lớn hơn 2 ngày này. Tương tự như vậy cho 3 ngày và 5 ngày max. Ở đây 5 ngày max thì lại rơi vào tháng 8 các ngày 15, 16 ,17 ,18 ,19 vì chỉ có 5 ngày mưa liên tục này trong năm cộng lại có tổng lớn nhất là 300,7 . Lưu ý phải là các ngày mưa liên tục ko ngắt quãng. :D MOng các pro giúp đỡ :D
Bài này bạn có thể dùng thêm cột phụ cho nhanh, ví dụ dữ liệu năm 2013. S1=1/1/2013, fill xuống S365=31/12/2013. Công thức ở T1 là =OFFSET($A$1,DAY(S1),MONTH(S1)) fill xuống. Công thức U1=(T1+T2)*(T1*T2>0) fill xuống. Dùng auto fighter ở cột U, kéo xuống dòng dưới cùng sẽ thấy Max=331.4 và ngày 29/8/2013. Nếu tính 5 ngày thì sửa công thức ở cột U.
 
ồ không có ai giup mình sao :(

chờ bạn trả lời sao lâu quá, thui làm luôn
hàm tự tạo, nếu excel 2003 thì vào Tool==>macro==>security==>hạ xuống mức low hoặc Med
exxcel 2007 thì khi mở file nhớ "enable macro"

Mã:
Function Max_NgMuaLienTiep(rng As Range, n As Byte, kieu As String, stt As Byte)
Dim SoLieu As Variant, tam(), kq(), i, j, k, T_tam, T_kq As Long
SoLieu = rng.Value
ReDim tam(1 To UBound(SoLieu, 2) * UBound(SoLieu), 1 To 2)
For i = 1 To UBound(SoLieu, 2)
    For j = 1 To UBound(SoLieu)
        k = k + 1
        tam(k, 1) = SoLieu(j, i)
        tam(k, 2) = Format(i & "/" & j, "dd/mm")
    Next j
Next i
ReDim kq(1 To n, 1 To 2)
For i = 1 To UBound(tam) - n
    T_tam = 0
    For j = 0 To n - 1
        If tam(i + j, 1) = 0 Then GoTo thoatvonglap
        T_tam = T_tam + tam(i + j, 1)
    Next j
    If T_tam > T_kq Then
    T_kq = 0
        For j = 1 To n
            kq(j, 1) = tam(i + j - 1, 1)
            T_kq = T_kq + kq(j, 1)
            kq(j, 2) = tam(i + j - 1, 2)
        Next j
    
    End If
thoatvonglap:
 Next i
 If UCase(kieu) = "SO" Then no = 1
 If UCase(kieu) = "N" Then no = 2
Max_NgMuaLienTiep = kq(stt, no)

Erase SoLieu, tam, kq
End Function

cthức
Mã:
=Max_NgMuaLienTiep([COLOR=#0000cd]$B$2:$M$32[/COLOR],[COLOR=#ff0000]5[/COLOR],"SO",ROW(1:1))
với
màu xanh là vùng dữ liệu
mà đỏ là số ngày
muốn xuất số liệu thì "so"
muốn xuất ngày thì "N"
 

File đính kèm

Hàm của bác Let's Gâu có vấn đề: ví dụ max tổng 2 ngày liên tiếp khi chọn kiểu số chỉ ra kết quả là ô đầu tiên (=248), đáng lẽ kết quả phải là tổng 2 ô (= 248 + 83.4 = 331.4). Vấn đề nữa là bác coi lượng mưa ngày 31 của các tháng có <31 ngày bằng 0 nên kết quả sẽ không chính xác. Ví dụ lượng mưa các ngày 29/4 là 0, 30/4 là 1000, 1/4 là 1, các ngày khác như đề bài thì hàm của bác sẽ không tìm được kết quả là 1001 do vẫn coi ngày 31/4 là 0.
Em cũng thử làm tí VBA: tính max tổng 2 ngày mưa liên tiếp điền vào ô V1 và liệt kê tất cả các ngày phù hợp (có thể xảy ra trường hợp nhiều cặp ngày thỏa mãn điều kiện, khi đó Sub sẽ điền ngày đầu trong các cặp ngày đó vào ô từ V2 trở đi). Thủ tục cần nhập số năm để xác định xem ngày cuối cùng tháng 2 là 28 hay 29.
Mã:
Sub a()
Dim arr(), arr1(1 To 365) As Double, LN As Double, d As Long, i As Long, k As Long, n As Long, m As Date
n = InputBox("Year?")
arr = Range("B2:M32").Value
d = DateSerial(n + 1, 1, 1) - DateSerial(n, 1, 1)
LN = 0
For i = 1 To d - 1
m = DateSerial(n, 1, 1) + i - 1
If arr(Day(m), Month(m)) * arr(Day(m + 1), Month(m + 1)) > 0 And arr(Day(m), Month(m)) + arr(Day(m + 1), Month(m + 1)) > LN Then
LN = arr(Day(m), Month(m)) + arr(Day(m + 1), Month(m + 1))
arr1(i) = LN
Else
arr1(i) = 0
End If
Next
[V1] = LN
k = 2
For i = 1 To d - 1
If arr1(i) = LN Then
Range("V" & k) = DateSerial(n, 1, 1) + i - 1
k = k + 1
End If
Next
End Sub
 
làm bằng vba nha, hàm tôi nghĩ nát óc từ tối đến giờ vẫn chưa ra

cho họỏi thêm cái này
trường hợp các ngày mưa liên tiêp rơi vào cuối tháng này đâu tháng kia thì có tính ko? ví dụ 30 tháng 1, rồi 2,3 tháng 2
hay chỉ tính trong từng tháng?
===========

bạn tham khảo link sau, xem có sài được ko
http://www.giaiphapexcel.com/forum/...nhất-của-tổng-3-ngày-và-chỉ-ra-đó-là-ngày-nào

hoặc gõ từ khoá "ngay mua lien tiep nhieu nhat" vào cái ô tìm kiếm tìn xem
CÓ bác ạ th ngày mưa rơi từ cuối tháng này liên tiếp sang đầu tháng kia vẫn tính
 
Status
Không mở trả lời sau này.

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

Back
Top Bottom