Jak policzyć dwie różne kolumny?

-1

Naprawdę potrzebuję twojej pomocy w odniesieniu do poniższej tabeli, potrzebuję formuły, aby pokazać mi, ile oczekujących / zamkniętych dla każdego projektu.

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      
Ahmed
źródło
3
Upewnij się, że używasz właściwego formatowania, gdy zadajesz pytania, bardzo trudno przeczytać inaczej. Ponadto, czego dokładnie od tego chcesz? Masz wiele projektów o tej samej nazwie, zgodnie z danymi. Na przykład; VIVA pojawia się 3 razy, dwukrotnie jest oznaczony jako closed, raz oznaczony jako PENDING
Jonny Wright

Odpowiedzi:

0

Znam tylko VBa (tak naprawdę nie znam funkcji skoroszytu), więc ponieważ nie określasz, czego chcesz, ta VBa powinna robić, co chcesz

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

Przed

enter image description here

I po uruchomieniu makra

enter image description here

Jak widzisz, automatycznie wprowadzi dla ciebie nazwy firm i obliczy, ile z nich istnieje. Oznacza to, że jeśli dodałeś nową firmę i ponownie uruchomiłeś makro, zostanie ona zaktualizowana o nowe szczegóły bez żadnych zmian w kodzie.

Dave
źródło