Avatar billede faithless Praktikant
06. juli 2010 - 08:15 Der er 7 kommentarer og
1 løsning

Tæl sammenhængende NULL/0 celler

Hey

Er der en funktion som tæller sammenhængende NULL/0 celler i en record? Jeg kender countif, men der er der jo ikke et kriterie af, at de skal være ved siden af en anden NULL/0 celle.

Mvh
Thomas
Avatar billede faithless Praktikant
06. juli 2010 - 08:19 #1
Glemte lige at skrive at det er det højeste antal sammenhængende NULL/0 celler jeg vil ha returneret.
Avatar billede newbieatphp Nybegynder
06. juli 2010 - 10:06 #2
Hvis det må være en makro, så kan du måske bruge denne:

Sub nuller()
    Dim slut As Integer
    Dim this As Integer
    Dim top As Integer
   
    Range("A1").Select
    Selection.End(xlDown).Select
    slut = Selection.Row()
    this = 0
    For i = 1 To slut
        If Range("A" & i).Value = "NULL" Then
            this = this + 1
        Else
            this = 0
        End If
        If this > top Then
            top = this
        End If
    Next
    MsgBox "Højeste antal NULL'er: " & top, vbInformation, "Nullert"
End Sub

Hvor jeg har antaget at det der skal tjekkes er i kolonne A og der ikke er nogen tomme celler.
Ellers skal Selection.End(xlDown) bare laves om til noget andet.
Avatar billede faithless Praktikant
06. juli 2010 - 11:45 #3
Tjekket skal være horisontalt og det jeg skal bruge er maks antal NULL/0 pr række. Det må gerne være en macro, men der må da findes en funktion for dette. (c:
Avatar billede newbieatphp Nybegynder
08. juli 2010 - 14:46 #4
lad os antage at du har en række med følgende:

2-3-2-4-NULL-3-NULL-NULL-2-1-NULL-NULL-NULL-5

Det resultat du vil have udfra dette 3?

Er det kun en række du skal have tjekket? og vil du have tallet i en msgbox eller skal det smide i A-kolonnen udfor hvem række?
Avatar billede faithless Praktikant
08. juli 2010 - 17:28 #5
Yes, resultatet skrevet i kolonne A og det er 3 fra dit eksempel. Der er en del rækker og det kan variere lidt, så der skal nok være noget kode der finder last row.
Avatar billede newbieatphp Nybegynder
08. juli 2010 - 22:00 #6
Sub nuller()
    Dim slut As Integer
    Dim this As Integer
    Dim top As Integer
    Range("A:A").ClearContents
    Range("A1").Select
    While Not ActiveCell.Offset(0, 1) = ""
        Selection.End(xlToRight).Select
        Selection.End(xlToRight).Select
        slut = Selection.Column()
        this = 0
        top = 0
        For i = 1 To slut
            If ActiveSheet.Cells(Selection.Row(), i).Value = "NULL" Then
                this = this + 1
            Else
                this = 0
            End If
            If this > top Then
                top = this
            End If
        Next
        Range("A" & Selection.Row()).Value = top
        Range("A" & Selection.Row() + 1).Select
    Wend
End Sub
Avatar billede faithless Praktikant
10. juli 2010 - 18:02 #7
Tak for hjælpen. Hvordan giver jeg dig point, det er noget tid siden jeg har været her inde og kan sku ikke lige se det i det nye layout.
Avatar billede newbieatphp Nybegynder
11. juli 2010 - 10:42 #8
Jeg smider et svar, så kan du sætte flueben i accepter svar :)
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