Wie kto¶ może w jaki sposób zrobić tak± o to "dynamiszna operacje". Załużmy ze kolumna C odpowiada za przechowywanie liczb, w ostatniej komurce składowana jest ich ¶rednia. Chciałby teraz aby ta srednia nie zliczala całej komurki tylko, od wyrazu gdzie oprocz liczby wystepuje np * do nastepnego takiego, czyli np: 5 6* <- start 7 8 9 0* <- stop 1 2 ----- ¶rednia
Wie kto¶ jak takie cos zrobić ? :)
Nevillon Team LRU #343133
A czy nie byłoby pro¶ciej napisać formułę na ¶redni± od komórki z liczb± 6 do komórki z liczb± 0? Pozatym jezeli wstawisz * do komórki z liczb± exel traktuje to jako tekst i nie wliczy do ¶redniej.
Ja wpadłem na pomysł, że jedynym sposobem jest napisanie własej funkcji w VBA:) Naci¶nij alt+F11. Z menu insert wybierz Module. Wklej poniższy kod: Function srednia_zakres(r1 As Range, r2 As Range, char As String) As Double
'By Kodie 2004 KSE
'Dim r1, r2 As Range
Dim i1, i2, poz As Integer
Dim s1 As String
s1 = ""
Dim lc As Integer
Dim sum As Double
If (r1.Column = r2.Column) Then
If r1.Row > r2.Row Then
i1 = r1.Row
i2 = r2.Row
Else
i2 = r1.Row
i1 = r2.Row
End If
For i = i2 To i1
s1 = Cells(i, r2.Column).Value
poz = InStr(1, s1, char)
If (poz <> 0) Then
If (s1 <> "") Then
lc = lc + 1
sum = sum + CDbl(Left(s1, Len(s1) - poz + 1))
End If
End If
Next
srednia_zakres = sum / lc
End If
End Function
Od tej chwili funkcja będzie dostępna w tym dokumencie. Aby zliczyć komórki od A1 Do A4, które maj± na końcu * wpisujesz do komórki =srednia_zakres(A1;A4;"*"). Pamiętaj, że * musi być na końcu liczby, a zakresy pocz±tkowy i końcowy w jedej kolumnie. :D
Kodie
zanotowane.pldoc.pisz.plpdf.pisz.plmilosnikstop.keep.pl
|