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
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
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 &
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
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--------------
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.