Forum: PC Hard- und Software Eine Frage an die Excellexperten (Sortierung)


von Icke_Wa (Gast)


Lesenswert?

Tach die Damen und Herren,

 mal schaun ob ich Antwort finde. Ich habe folgendes Problem.
 Im Excell hab ich nen Haufen Daten in zwei Spalten der FOrm

 30 45
 30 23
 30 58
 30 48
 30 40
 40 43
 40 22
 40 69
 40 49

 Jetzt hätte ich gerne eine Funktion mit der ich sagen kann: Wenn in 
Spalte Ax=30 steht, dann kopiere den Wert aus Bx nachz.B. D0 aufwärts 
(also wenn er einen dahin kopiert hat soll er hochzählen, also quasi 
einen Teil der Spalte kopieren). Steht da aber 40 hin, soll er den Wert 
bei Bx nach E0++ kopieren.

 GIbt es sowas im Excell??

 Besten Dank und schöne Grüße

von Guido C. (guidoanalog)


Angehängte Dateien:

Lesenswert?

Hallo,

das Stichwort heißt in diesem Fall "SummeWenn".

Formel für Zelle D1: "=SUMMEWENN(A:A;"=30";B:B)"
Formel für Zelle E1: "=SUMMEWENN(A:A;"=40";B:B)"

Im Anhang findest Du ein einfaches Beispiel.

Mit freundlichen Grüßen
Guido

von Icke_Wa (Gast)


Lesenswert?

Huch da hast du mich ja völlig falsch verstanden. Mir gehts um ne 
sortierung.

Ich will von:
 30 45
 30 23
 30 58
 30 48
 30 40
 40 43
 40 22
 40 69
 40 49

zu:


30 & 40
---------
45 & 43
23 & 22
58 & 69
48 & 49
40 &

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

Icke_Wa schrieb:
> Huch da hast du mich ja völlig falsch verstanden.

Stimmt. Mit Deinem letzten Beitrag ist mir die Problematik jetzt auch 
verständlich.

Mit freundlichen Grüßen
Guido

von Peter Balß (Gast)


Angehängte Dateien:

Lesenswert?

Hallo ...

... die Lösung die ich anbieten kann ist auf die Schnelle leider nicht 
sehr elegant, aber sie funktioniert.
Das vba-Makro sieht dazu so aus (die Zeilen sind praktisch 
selbsterklärend:

---------------------- SCHNIPP --------------------8<--------------

Sub TwinSort()
'
' Sortiert die Werte von 2 nebeneinander liegenden Spalten
' in aufsteigender Folge (Zick-Zack)
'
' Makro von Peter Balss - 06.12.2011
'
Dim AnzZeilen As Integer
Dim i As Integer
Dim WertLinks
Dim WertRechts
Dim WertRechtsOben
Dim ErsteZelle

WertLinks = 0
WertRechts = 0
WertRechtsOben = 0
ErsteZelle = "A1"       ' Liste beginnt hier auf Zelle "A1"

Range(ErsteZelle).Select

Range(Selection, Selection.End(xlDown)).Select
AnzZeilen = Selection.Rows.Count

For i = 1 To AnzZeilen
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Sort Key1:=Cells(1, 1), Order1:=xlAscending, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

    Selection.End(xlToRight).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Sort Key1:=Cells(1, 2), Order1:=xlAscending, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Range(Cells(i, 1), Cells(i, 2)).Font.Bold = True
    WertLinks = Cells(i, 1).Value
    WertRechts = Cells(i, 2).Value
    If WertLinks > WertRechts Then
        Cells(i, 1).Value = WertRechts
        Cells(i, 2).Value = WertLinks
    End If

    If i > 1 Then
        WertRechtsOben = Cells(i - 1, 2).Value

        If WertRechtsOben > WertLinks Then
            Debug.Print WertLinks
            Debug.Print WertRechtsOben
            Cells(i - 1, 2).Value = WertLinks
            Cells(i, 1).Value = WertRechtsOben
         End If

    End If

    Range(ErsteZelle).Select
    Selection(i, 1).Select
Next i


End Sub

---------------------- SCHNAPP -------------------->8--------------

von Guido C. (guidoanalog)


Lesenswert?

Hallo,

anbei noch ein weiterer Ansatz von mir. Das Zauberwort heißt in meinem 
Fall "Arrayformeln". Eine kurze Einleitung darüber findest Du hier:

http://office.microsoft.com/de-de/excel-help/richtlinien-und-beispiele-fur-arrayformeln-HA010228458.aspx

Mein Beispiel ist vielleicht nicht die genialste Anwendung dieser 
Formeln, ich habe es jedoch bewusst so gehalten, dass Du es recht 
einfach an Deine Bedürfnisse anpassen kannst. Stichwort: "Leichte 
Wartbarkeit von Code".

In den Spalten D und E findest Du die Arrayformeln ohne 
Fehlerbehandlung. In den Spalten G und H sind die entsprechenden Formeln 
mit Fehlerbehandlung.

Eine kleine "Unschönheit" verbleibt noch. Steht hinter dem Wert 30 oder 
40 in Spalte A kein zugehöriger Wert in Spalte B wird der Wert 0 
übernommen.

Mit freundlichen Grüßen
Guido

von Guido C. (guidoanalog)


Angehängte Dateien:

Lesenswert?

Hallo,

irgendwie wollte die Anhang nicht mit. Daher jetzt im zweiten Anlauf.

Mit freundlichen Grüßen
Guido

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.