21. april 2015 - 14:42 Der er 9 kommentarer og
2 løsninger

Antal blanke siden sidst udfyldte celle

Jeg har ledt forgæves efter svar på dette spørgsmål som jeg synes lyder let. Håber at der er en der kan hjælpe mig på vej.

DATO            MÅLING
01-01-2015    12,5
02-01-2015   
03-01-2015   
04-01-2015    9,5
05-01-2015    10,5
06-01-2015   
Osv.   
   

Det jeg gerne vil finde ud af er ud for hver linje med måling ENTEN at tælle hvor mange blanke der er mellem denne dato og sidste dato med måling ELLER bare at angive dato for sidste måling før denne. Jeg synes det lyder let men jeg kan i de formler jeg har afprøvet ikke finde ud af at håndtere et område der ikke er fast, altså det med at det er sidste celle med måling jeg skal finde og angive modsvarende dato.

Jeg har Excel 2010.

MVH
Mette
Avatar billede jens48 Ekspert
21. april 2015 - 16:01 #1
Hvis du har data stående i kolonnerne A og B kan du sætte denne formel ind i C3 og kopiere den nedefter. Den giver datoen for den seneste måling:

=IF(B3;OFFSET(A3;-IF(B2="";C1+1;1););"")
Avatar billede jens48 Ekspert
21. april 2015 - 16:05 #2
Det fik jeg ikke forklaret godt nok.
I kolonne C skal denne formel indsættes fra C2 og nedefter:

=IF(B2="";C1+1;1)

Og formelen:

=IF(B3;OFFSET(A3;-IF(B2="";C1+1;1););"")

skal indsættes i D3 og kopieres nedefter
Avatar billede jens48 Ekspert
21. april 2015 - 21:56 #3
Alternativt kan det laves med en makro. Nedenfor er der 2 makroer. Den første tæller antal tomme felter siden sidste måling og skriver det i kolonne C og den anden skriver dato for sidste måling i kolonne C.

Sub LatestMeasurement1()
'skriver antal tomme felter siden sidste måling i kolonne C
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 3 To LastRow
If Cells(x, 2) <> "" Then
For y = x - 1 To 2 Step -1
If Cells(y, 2) <> "" Then
Cells(x, 3) = x - y - 1
GoTo A:
End If
Next
End If
A:
Next
End Sub

Sub LatestMeasurement2()
'skriver dato for sidste måling i kolonne C
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 3 To LastRow
If Cells(x, 2) <> "" Then
For y = x - 1 To 2 Step -1
If Cells(y, 2) <> "" Then
Cells(x, 3) = Cells(x - y - 1, 1)
GoTo A:
End If
Next
End If
A:
Next
End Sub
Avatar billede jens48 Ekspert
21. april 2015 - 22:03 #4
Jeg er ikke så heldig med at lave det rigtigt første gang i dag. Du får lige makro 2 igen.

Sub LatestMeasurement2()
'skriver dato for sidste måling i kolonne C
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 3 To LastRow
If Cells(x, 2) <> "" Then
For y = x - 1 To 2 Step -1
If Cells(y, 2) <> "" Then
Cells(x, 3) = Cells(y, 1)
GoTo A:
End If
Next
End If
A:
Next
End Sub
21. april 2015 - 22:08 #5
Hej...
Tusind tak for hjælpen. Det virker næsten. Eneste problem er ved 2. måling som du kan se nedenfor. Der angiver den 2/1 i stedet for 1/1.Kan man løse det ?

01-01-2015    12,5       
02-01-2015        1   
03-01-2015    11,9    1    02-01-2015
04-01-2015        2   
05-01-2015    11,3    1    03-01-2015
06-01-2015        2   
07-01-2015        3   

MVH
Mette Rekve
Avatar billede jens48 Ekspert
21. april 2015 - 22:41 #6
Prøv med:

Sub LatestMeasurement1()
'skriver antal tomme felter siden sidste måling i kolonne C
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 2 To LastRow
If Cells(x, 2) <> "" Then
For y = x - 1 To 2 Step -1
If Cells(y, 2) <> "" Then
Cells(x, 4) = x - y - 1
GoTo A:
End If
Next
Else
Cells(x, 3) = ""
End If
A:
Next
End Sub

Sub LatestMeasurement2()
'skriver dato for sidste måling i kolonne C
LastRow = ActiveSheet.UsedRange.Rows.Count
For x = 2 To LastRow
If Cells(x, 2) <> "" Then
For y = x - 1 To 2 Step -1
If Cells(y, 2) <> "" Then
Cells(x, 3) = Cells(y, 1)
GoTo A:
End If
Next
Else
Cells(x, 3) = ""
End If
A:
Next
End Sub
Avatar billede jens48 Ekspert
21. april 2015 - 22:44 #7
Makro 1 fik jeg lavet til at sætte antal i kolonne D. Hvis du vil have det i kolonne C skal du ændre linien med

Cells(x, 4) = x - y - 1

til

Cells(x, 3) = x - y - 1
22. april 2015 - 08:02 #8
Hej...
Tusind tak for hjælpen. Det virker næsten. Eneste problem er ved 2. måling som du kan se nedenfor. Der angiver den 2/1 i stedet for 1/1.Kan man løse det ?

01-01-2015    12,5       
02-01-2015            1   
03-01-2015    11,9    1    02-01-2015
04-01-2015            2   
05-01-2015    11,3    1    03-01-2015
06-01-2015            2   
07-01-2015            3   

MVH
Mette Rekve
Avatar billede jens48 Ekspert
22. april 2015 - 09:00 #9
Du har skrevet det samme 2 gange. Virker det ikke med den nye makro?
22. april 2015 - 21:58 #10
Jeg kan ikke rigtig finde ud af det med makroer. Men tak fordi du prøvede at hjælpe :-)

MVH
Mette
Avatar billede jens48 Ekspert
23. april 2015 - 08:54 #11
Mht. makroer, så skal du kopiere den, højreklikke på fanebladet, vælge Vis Koder og indsætte den der. Du kan så enten køre den fra Vis Makro og klikke på den der, eller indsætte en knap og linke den til makroen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester