Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ergebnisse auswerten

Ergebnisse auswerten
13.04.2009 13:47:37
Markus
Hallo zusammen,
ab Zeile 5 stehen in den Spalten E bis G Ergebnisse, wie folgt aufgebaut:
E F G
2 : 1
0 : 3
1 : 1
usw. usw.
Ich würde gerne jetzt eine Auswertung machen, wie oft jedes Ergebnis vorgekommen ist. Platz hierfür wäre ab Spalte P / Zeile 6.
Bin auf Zählenwenn gekommen, allerdings muss ich dann jedes Ergebnis vorgegeben, was blöd ist.
Hat jemand eine Idee, wie man das anstellen könnte?
Vielen Dank!
Viele Grüße
Markus

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Tabelle
13.04.2009 13:53:32
Daniel
Hi
fasse die Ergebnisse in einer Spalte zusammen (=E1&F1&G1), dann kannst du die Auswertung mit einer Pivot-Tabelle machen.
Die Spalten brauchen dann allerdings in der ersten Zeile eine Überschrift.
Gruß, Daniel
AW: Pivot-Tabelle
13.04.2009 14:26:29
Markus
Hallo Daniel,
das habe ich befürchtet. Ich hasse Pivottabellen. :-(
Keine andere Lösung möglich?
AW: Pivot-Tabelle
14.04.2009 01:23:33
Daniel
HI
möglich schon, aber umständlich.
wird höchste Zeit, deinen Hass gegen Pivot-Tabellen abzulegen.
schneller und einfacher kann man in den meisten Fällen Daten nicht auswerten.
Gruß, Daniel
@ Tino : Kannst Du mir helfen?
14.04.2009 11:25:21
markus
Hallo Tino,
in dieser Datei hattest Du mir schon einmal geholfen. Jetzt stellt sich das neu geschilderte Problem. Kannst Du mir hier auch eine Lösung zaubern? Ansonsten muss ich wie Daniel schreibt auf die Pivottabellen zurückgreifen. Grummel grummel.
Danke!
Viele Grüße
Markus
Anzeige
AW: @ Tino : Kannst Du mir helfen?
14.04.2009 12:18:03
Tino
Hallo,
kenne mich im Fußball nicht besonders gut aus,
wenn ich Frage dazu habe gehe ich immer bei zu meiner Oma. ;-)
Wann ist das Ergebnis gleich?
Ich bin erst mal davon ausgegangen, dass 2:1 ungleich 1:2 ist.
 EFGHIJKLMNOP
12:1        1
20:3        1
31:1        2
41:1        2
51:2        1

Formeln der Tabelle
ZelleFormel
P1=SUMMENPRODUKT(($E$1:$E$100=$E1)*($G$1:$G$100=$G1))
P2=SUMMENPRODUKT(($E$1:$E$100=$E2)*($G$1:$G$100=$G2))
P3=SUMMENPRODUKT(($E$1:$E$100=$E3)*($G$1:$G$100=$G3))
P4=SUMMENPRODUKT(($E$1:$E$100=$E4)*($G$1:$G$100=$G4))
P5=SUMMENPRODUKT(($E$1:$E$100=$E5)*($G$1:$G$100=$G5))

Gruß Tino
Anzeige
AW: @ Tino : Kannst Du mir helfen?
14.04.2009 12:35:43
markus
Hallo Tino,
danke für die schnelle Rückmeldung. Du brauchst Dich nicht gut auskennen. :-)
Ich hätte gerne eine Auswertung, wie oft ein Ergebnis gekommen ist. So stehen die Ergebnisse ja drin:
2:1
0:1
1:1
2:1
0:1
2:1
Die Auswertung sähe dann so aus:
2:1 x 3
0:1 x 2
1:1 x 1
Viele Grüße
Markus
AW: @ Tino : Kannst Du mir helfen?
14.04.2009 13:52:37
Tino
Hallo,
teste mal diesen Code.
Ich verwende am Ende der Tabelle eine Hilfsspalte, diese wird am Ende wieder gelöscht.
Zudem gehe ich davon aus, dass sich in der Zeile 1 eine Überschrift befindet.
Des weiteren gehe ich auch noch davon aus, dass die Ergebnisse ab Zeile 2 stehen und zwischen den Ergebnissen sich keine leeren Zellen befinden.
Sub Test()
Dim Bereich As Range, tempZelle As Range
Dim LRow As Long, A As Long
Dim myAr() As String

Application.ScreenUpdating = False

Set Bereich = Range("E2", Cells(Rows.Count, 5).End(xlUp))
Set Bereich = Bereich.Offset(0, Columns.Count - Bereich.Column)
LRow = Cells(Rows.Count, 5).End(xlUp).Row

Bereich.FormulaR1C1 = "=IF(SUMPRODUCT((RC5:R" & LRow & "C5=RC5)*(RC7:R" & LRow & "C7=RC7))=1,0,"""")"

If Application.WorksheetFunction.CountIfs(Bereich, 0) > 0 Then
 For Each tempZelle In Bereich.SpecialCells(xlCellTypeFormulas, 1)
  
  If A = 0 Then
   Bereich.FormulaR1C1 = "=SUMPRODUCT((R2C5:R" & LRow & "C5=RC5)*(R2C7:R" & LRow & "C7=RC7))"
  End If
    
    Redim Preserve myAr(A)
    myAr(A) = Cells(tempZelle.Row, 5) & ":" & Cells(tempZelle.Row, 7) & " X " & tempZelle
    A = A + 1
 
 Next tempZelle

End If

Range("P2").Resize(A) = Application.Transpose(myAr)
Columns(Columns.Count).Delete

Application.ScreenUpdating = True

End Sub


Gruß Tino

Anzeige
AW: @ Tino : Kannst Du mir helfen?
14.04.2009 15:01:13
Markus
Hmmm, das ist schlecht. Eigentlich ist keine Bedingung erfüllt.
Also:
Die Einträge beginnen ab Zeile 5.
Es ist keine Überschrift vorhanden.
Und leere Zeilen sind auch vorhanden (nicht immer, aber manchmal).
:-( :-( :-(
2. Versuch
14.04.2009 15:31:47
Tino
Hallo,
versuche es demnach mal hiermit.
Sub Test()
Dim Bereich As Range, tempZelle As Range
Dim LRow As Long, A As Long
Dim myAr() As String

Set Bereich = Range("E5", Cells(Rows.Count, 5).End(xlUp))

If Intersect(Bereich, Rows("1:4")) Is Nothing Then
    Application.ScreenUpdating = False
    
        Set Bereich = Bereich.Offset(0, Columns.Count - Bereich.Column)
        LRow = Cells(Rows.Count, 5).End(xlUp).Row
        
        Bereich.FormulaR1C1 = "=IF(AND(SUMPRODUCT((RC5:R" & LRow & "C5=RC5)*(RC7:R" & LRow & "C7=RC7))=1,OR(RC5<>"""",RC5<>"""")),0,"""")"
        
        If Application.WorksheetFunction.CountIfs(Bereich, 0) > 0 Then
         For Each tempZelle In Bereich.SpecialCells(xlCellTypeFormulas, 1)
          
          If A = 0 Then
           Bereich.FormulaR1C1 = "=SUMPRODUCT((R2C5:R" & LRow & "C5=RC5)*(R2C7:R" & LRow & "C7=RC7))"
          End If
            
            Redim Preserve myAr(A)
            myAr(A) = Cells(tempZelle.Row, 5) & ":" & Cells(tempZelle.Row, 7) & " X " & tempZelle
            A = A + 1
         
         Next tempZelle
        
        End If
        Range("P5", Cells(Rows.Count, 16)).Value = ""
        Range("P5").Resize(A) = Application.Transpose(myAr)
        Columns(Columns.Count).Delete

    Application.ScreenUpdating = True
End If

End Sub


Gruß Tino

Anzeige
hab vergessen...
14.04.2009 15:52:01
Tino
Hallo,
... die Formeln anzupassen, so müsste es gehe.
Sub Test()
Dim Bereich As Range, tempZelle As Range
Dim LRow As Long, A As Long
Dim myAr() As String

Set Bereich = Range("E5", Cells(Rows.Count, 5).End(xlUp))

If Intersect(Bereich, Rows("1:4")) Is Nothing Then
    Application.ScreenUpdating = False
    
        Set Bereich = Bereich.Offset(0, Columns.Count - Bereich.Column)
        LRow = Cells(Rows.Count, 5).End(xlUp).Row
        
        Bereich.FormulaR1C1 = "=IF(AND(SUMPRODUCT((RC5:R" & LRow & "C5=RC5)*(RC7:R" & LRow & "C7=RC7))=1,OR(RC5<>"""",RC5<>"""")),0,"""")"
        
        If Application.WorksheetFunction.CountIfs(Bereich, 0) > 0 Then
         For Each tempZelle In Bereich.SpecialCells(xlCellTypeFormulas, 1)
          
          If A = 0 Then
           Bereich.FormulaR1C1 = "=SUMPRODUCT((R5C5:R" & LRow & "C5=RC5)*(R5C7:R" & LRow & "C7=RC7))"
          End If
            
            Redim Preserve myAr(A)
            myAr(A) = Cells(tempZelle.Row, 5) & ":" & Cells(tempZelle.Row, 7) & " X " & tempZelle
            A = A + 1
         
         Next tempZelle
        
        End If
        Range("P5", Cells(Rows.Count, 16)).Value = ""
        Range("P5").Resize(A) = Application.Transpose(myAr)
        Columns(Columns.Count).Delete

    Application.ScreenUpdating = True
End If

End Sub


Gruß Tino

Anzeige
AW: hab vergessen...
14.04.2009 16:35:29
Markus
Hallo Tino,
bekomme einen Laufzeitfehler 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht) in der Zeile
If Application.WorksheetFunction.CountIfs(Bereich, 0) ....
AW: hab vergessen...
14.04.2009 16:59:24
Markus
Hallo Tino,
bekomme einen Laufzeitfehler 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht) in der Zeile
If Application.WorksheetFunction.CountIfs(Bereich, 0) ....
AW: hab vergessen...
14.04.2009 17:31:28
Tino
Hallo,
ist wenn man mit xl2007 arbeitet.
Ersetze die Zeile durch diese
If Application.WorksheetFunction.CountIf(Bereich, 0) > 0 Then
Gruß Tino
Das sieht super aus. :-)
14.04.2009 17:43:35
Markus
Kriegst Du es vielleicht noch hin, das Ergebnis mit der höchsten Häufigkeit ganz oben darzustellen und dann runterzugehen.
Aber nur wenn Du nicht alles umkrempeln musst. Bin auch so sehr zufrieden.
Anzeige
AW: Das sieht super aus. :-)
14.04.2009 18:28:29
Tino
Hallo,
kann man auch noch einbauen, brauche aber eine zweite Hilfsspalte.
Sub Test()
Dim Bereich As Range, tempZelle As Range
Dim LRow As Long, A As Long
Dim myAr() As String, myAr2() As Long

Set Bereich = Range("E5", Cells(Rows.Count, 5).End(xlUp))

If Intersect(Bereich, Rows("1:4")) Is Nothing Then
    Application.ScreenUpdating = False
    
        Set Bereich = Bereich.Offset(0, Columns.Count - Bereich.Column)
        LRow = Cells(Rows.Count, 5).End(xlUp).Row
        
        Bereich.FormulaR1C1 = "=IF(AND(SUMPRODUCT((RC5:R" & LRow & "C5=RC5)*(RC7:R" & LRow & "C7=RC7))=1,OR(RC5<>"""",RC5<>"""")),0,"""")"
        
        If Application.WorksheetFunction.CountIfs(Bereich, 0) > 0 Then
         
            For Each tempZelle In Bereich.SpecialCells(xlCellTypeFormulas, 1)
             
             If A = 0 Then
              Bereich.FormulaR1C1 = "=SUMPRODUCT((R5C5:R" & LRow & "C5=RC5)*(R5C7:R" & LRow & "C7=RC7))"
             End If
               
               Redim Preserve myAr(A)
               Redim Preserve myAr2(A)
               myAr(A) = Cells(tempZelle.Row, 5) & ":" & Cells(tempZelle.Row, 7) & " X " & tempZelle
               myAr2(A) = tempZelle
               A = A + 1
            
            Next tempZelle
        
                Columns(Columns.Count).Delete
                Cells(1, Columns.Count - 1).Resize(A) = Application.Transpose(myAr)
                Cells(1, Columns.Count).Resize(A) = Application.Transpose(myAr2)
                Range(Cells(1, Columns.Count - 1), Cells(LRow, Columns.Count)).Sort Cells(1, Columns.Count), 1, , , , , , xlNo
                
                
                Range("P5", Cells(Rows.Count, 16)).Value = ""
                Range(Cells(1, Columns.Count - 1), Cells(Rows.Count, Columns.Count - 1).End(xlUp)).Copy Range("P5")
        
        End If

        
        Columns(Columns.Count).Delete
        Columns(Columns.Count - 1).Delete

    Application.ScreenUpdating = True
End If

End Sub


Gruß Tino

Anzeige
AW: Das sieht super aus. :-)
14.04.2009 18:53:15
Markus
Kannst Du die Sortierung noch ändern. Die höchsten stehen unten (andersrum wäre es schöner). Ansonsten sieht es gut aus (habe auch den Excel2007-Fehler ausgebaut). :-)
Sage schon einmal (mal wieder) tausend Dank!
AW: Das sieht super aus. :-)
14.04.2009 19:28:08
Tino
Hallo,
mach in der Zeile
Range(Cells(1, Columns.Count - 1), Cells(LRow, Columns.Count)).Sort Cells(1, Columns.Count), 1, , , , , , xlNo
aus der ein eine zwei.
Gruß Tino
Perfekt, herzlichen Dank und
14.04.2009 19:51:21
Markus
schönen Abend.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige