Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Παίδες τα φώτα σας!

 

Έχω κάποιες τιμές στο excel που αντιστοιχούν στο πότε ένα εργοστάσιο παράγει ή δεν παράγει υδρογόνο σε έναν χρόνο (8760 ώρες). Θέλω να μετρήσω το μέγιστο και το ελάχιστο διάστημα που δεν παράγει συνεχόμενα υδρογόνο (πχ. για 10 ώρες συνεχόμενα δεν παράγει). Δηλαδή όσο τα μηδενικά είναι συνεχόμενα προσθέτει +1 ώρα, όταν σταματάνε, σταματάει και αυτό το μέτρημα και ξαναρχίζει. Στο τέλος θέλω να πάρω τα λιγότερα και τα περισσότερα συνεχόμενα μηδενικά (δλδ τις ώρες, αφού κάθε καταχώρηση αντιστοιχεί σε 1 ώρα).

 

Ξέρετε πώς γίνεται αυτό; Ψάχνω για COUNT εντολές άλλα ακόμη στο ψάξιμο είμαι...

Δημοσ.

τελικά σκέφτηκα ότι με την παρακάτω απλή UDF (user defined function) ίσως κάνω τη δουλειά μου, επειδή όμως δεν έχω ξαναγράψει udf, ξέρει κανείς τι λείπει στον κώδικα για να δουλέψει;

 

>
j=0
k=0
for i = 2 to 8761
if C(i) = 0 then sum(j) = sum(j) + 1
else
print sum(j) at cell D(k)
j = j + 1
k = k + 1
end if
next i

Δημοσ.

Μπορεις να το κανεις και με function

βαλε στη D2: =IF(C2=1,"",1)

και στις D3 : =IF(C3=1,"",IF(D2<>"",D2+1,1))

....εως

D8761: : =IF(C8761=1,"",IF(D8760<>"",D8760+1,1))

 

στη D8762: =MAX(D2:D8761)

στη D8763: =MIN(D2:D8761)

 

Aν εν πασει περιπτωσει προτιμας VBA

 

>
Public Sub mycount()
   recs = 8761
   maxsum = 0
   minsum = recs
   Sum = 0
   For i = 2 To recs
    If Range("C" + CStr(i)).Value = 0 Then
	    Sum = Sum + 1
    Else
	    If maxsum < Sum Then maxsum = Sum
	    If Sum <> 0 Then
		    If minsum > Sum Then minsum = Sum
		    Range("D" + CStr(i - 1)).Value = Sum
	    End If
	    Sum = 0
    End If
   Next i
   Range("D" + CStr(recs + 1)).Value = maxsum
   Range("D" + CStr(recs + 2)).Value = minsum
End Sub

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...