Come contare due colonne diverse?


-1

Ho davvero bisogno del tuo aiuto per quanto riguarda la tabella qui sotto, ho bisogno di una formula per mostrarmi quante in sospeso / chiuse per ogni progetto.

Project Status                      Project    Pending  Closed
VIVA    closed                      VIVA         1       2
ZAIN    closed                      ZAIN         1       1
VIVA    PENDING                     WATANIA      1       0
WATANIA closed              
ZAIN    PENDING             
VIVA    closed      

3
Assicurati di utilizzare la formattazione corretta quando fai domande, molto difficili da leggere altrimenti. Inoltre, cosa vuoi esattamente da questo? Hai più progetti con lo stesso nome in base ai tuoi dati. Per esempio; VIVAappare 3 volte, due volte viene etichettato come closed, una volta etichettato comePENDING
Jonny Wright il

Risposte:


0

Conosco solo VBa (non conosco davvero le funzioni della cartella di lavoro) quindi, poiché non specifichi quale vuoi, questo VBa dovrebbe fare quello che vuoi

Sub UpdateStatus()

Dim row As Integer
row = 2 ' sets the starting row    

Dim statisticRow As Integer
statisticRow = 2

Do While (True) ' we must reset everything before we go on our quest. Be gone foul witch

If Range("F" & statisticRow).Value = "" Then
Exit Do
End If

Range("F" & statisticRow).Value = ""
Range("G" & statisticRow).Value = ""
Range("H" & statisticRow).Value = ""
statisticRow = statisticRow + 1
Loop

Do While (True)

Dim currentValue As String
currentValue = Range("A" & row).Value

Dim otherValue As String

    If currentValue = "" Then
        Exit Do
    End If

Dim otherRow As Integer
otherRow = 2 ' sets the starting row where the results are


Do While (True) ' find it or add it        

    otherValue = Range("F" & otherRow).Value
    Dim currentValueStatus As String
    If otherValue = "" Then             

        currentValueStatus = Range("B" & row).Value

        Range("F" & otherRow).Value = currentValue

         If currentValueStatus = "closed" Then
            Range("H" & otherRow).Value = 1
        End If

        If currentValueStatus = "PENDING" Then
            Range("G" & otherRow).Value = 1
        End If

        Exit Do
    End If

    If currentValue = otherValue Then ' Good news sire, I found it

        currentValueStatus = Range("B" & row).Value

        If currentValueStatus = "closed" Then
            Range("H" & otherRow).Value = Range("H" & otherRow).Value + 1
        End If

        If currentValueStatus = "PENDING" Then
            Range("G" & otherRow).Value = Range("G" & otherRow).Value + 1
        End If

    Exit Do

    End If
    otherRow = otherRow + 1
    Loop
    row = row + 1

Loop    

End Sub

Prima

inserisci qui la descrizione dell'immagine

E dopo che eseguo la macro

inserisci qui la descrizione dell'immagine

Come puoi vedere, inserirà automaticamente i nomi delle aziende per te e determinerà quanti di ciascuno esiste. Ciò significa che se hai aggiunto una nuova società ed eseguito di nuovo la macro, questa verrà aggiornata con i nuovi dettagli senza alcuna modifica al codice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.