Wie kann ich Excel Formel Ergebnisse sortieren?

2 Antworten

ich nehme an, das Problem ist, dass Excel beim Sortieren die Formeln nicht verschiebt. Das ginge nur, wenn nicht die Werte, sondern auch die Zellen verschoben werden, und das geht (noch?) nur per Makro.
Ich hab da was geschrieben, das sortiert nach der ERSTEN Spalte einer ggf. mehrspaltigen, vielzeiligen Auswahl (kein zweit- und dritt-Kriterium) und nur Zahlenergebnisse.
Dabei schneidet es die markierten Zellen aus und setzt sie ganz oben wieder ein (schiebt dabei alles dazwischen eins nach unten.
Hinterher kannst du den Ergebnisblock wieder manuell nach unten schieben und die obersten Zeilen löschen oder den Block mit den Bezügen nach oben, wie du willst.

Basis ist die markierte Auswahl, wobei die erste Zelle LEER sein muss. Die Reihenfolge ist nach unten steigend, es kann aber umgepolt werden. (Anweisung dazu als µ-Kommentar)
Übe einfach ein bisschen mit einem einfachen Modell, mich hat das Erstellen auch zwei Stunden gekostet, dabei hatte ich schon eine Vorarbeit in petto. War aber eine lehrreiche Aufgabe!
Ich hab auch eine Modifikation, die ganze Zeilen versetzt, aber das hast Du ja nicht gefragt.
Hier das Makro:

Sub OrdnenSelMehrspaltigMaxUnten() 'Leitspalte links! ordnet Bereiche unter Aufrechterhaltung der Bezüge ' es tutet!
Dim Maxbereich As Range, MaxWert, MaxZell 'ggf alle Máx durch Mín ersetzen bzw umgekehrt (mit Mín könnte am Ende ein Fehler auftreten! einfach beenden, ist alles gelaufen!)
If Selection.Cells(1) <> "" Then MsgBox "die erste Zelle der Auswahl MUSS leer sein!": Exit Sub
Set Maxbereich = Selection
Do
On Error GoTo 0 'hebt On Error Resume Next wieder auf schickt xl bei Fehler ins Nirwana = FEHLER mit Meldung
MaxWert = Application.Worksheetfunction.Max(Maxbereich.Columns(1)) 'beachte Funktionsrückgabe MaxWert = !!! (wie bei input-box!
MaxZell = Application.Worksheetfunction.Match(MaxWert, Maxbereich.Columns(1), 0) 'Match = Fkt. Vergleich, Max=7, ist in 4.Zelle Maxbereich MsgBox MaxZell
Range(Chr(Maxbereich.Column + 64) & Maxbereich.Row + MaxZell - 1 & ":" & Chr(Maxbereich.Column + Maxbereich.Columns.Count + 63) & Maxbereich.Row + MaxZell - 1).Select
Selection.Cut
ActiveSheet.Rows("1:1").Cells(Maxbereich.Column).Select '<<bringt die ausgeschittenen Zellen ganz nach oben!
Selection.Insert Shift:=xlDown 'das Shift:=xlDown führt z.Löschung d.Zeile (2 Befehle vorher! u.z.Schaffung e.neuen am Einsetz-Ort)
On Error Resume Next 'wenn i.d.folgenden Zeilen keine gefüllte Zelle mehr, muss e.Fehler samt Meldung unterdrückt werden.
Loop Until Maxbereich.SpecialCells(xlCellTypeConstants).Count = 0
End Sub 'Einschränkg: geht nur für Bezüge auf Einzelzellen, nicht auf Bereiche!

zum Installieren des Makros kopierst du ab incl. Sub... bis ganz nach unten.
Dann gehst Du in Deine Datei, Rechtsklick auf die Blattnamensfahne unten, im Kontext-Menü "Code anzeigen" wählen.
Es öffnet sich der VBA-Editor.
Dort im Menü Einfügen "Modul" wählen, es erscheint ein leeres Modulblatt, wahrscheinlich steht oben Option Explizit (das heisst, dass du zur Vermeidung von Schreibfehlern die Variablen da drin deklarieren = anmelden musst. (wenn nicht, schadet es hier auch nicht, sie sind angemeldet)
Unterhalb davon den Inhalt der Zwischenablage einfügen.
Nun gehst Du in Dein Arbeitsblatt (speicherst am besten schon mal) und markierst den Bereich, den Du sortieren willst. Solltest Du einen mehrspaltigen Bereich sortieren wollen, achte drauf, dass die Leitspalte links ist.
Mit Makros anzeigen (ggf in die Symbolleiste für den Schnellzugriff schieben über Symbolleisten anpassen) siehst Du das Makro in m Dialogfeld, ggf aus mehreren auswählen und ausführen. Viel Erfolg!

0
@Iamiam

Noch ne Einschränkung:
wenn die Funktion =Zeile() oder =Zelle("Zeile";Bezug auf eine mitsortierte Zelle) oder sowas ähnliches vorkommt, versagt das Makro aus Prinzip: Beim Verschieben der Zellen wird ja die Zeile geändert!

Verdächtig sind auch die Funktionen =Vergleich(was, wo,Typ) und die damit oft verbundene Index-Formel, ggf.der S- & der HVerweis, die indirekte Adressierung, Rang und sicher noch ein paar andere.

Also mit Verstand anwenden!

0

Ein bisschen ist es durcheinander. Ich gehe mal davon aus, dass die 4 in B1! steht.
Dann diese Formel in B2 und runterkopieren:

=KGRÖSSTE($A$2:$A$5;ZEILE(A1))

Klappt es?

Wie kann man ein Eingabefeld gleichzeitig als Hyperlinkfeld per VBA definieren? --> Excel 2007.

Hallo Excel-Experten!

Ich gebe in A1 den Wert '1001' ein. In Feld B1 baue ich folgende Formel: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A1;Cluster_1!$1:$1;0));A1);"") ... um einen Hyperlink auf das Tabellenblatt 'Cluster_1' in Zeile 1 und der jeweiligen Spalte zu ermöglichen.

Meine Tab. (mit Wertanzeige) sieht wie folgt aus:

A1: 1001 B1: 1001

A2: 1002 B2: 1002

A3: 1003 B3: 1003

Meine Tab. (mit Formelanzeige) sieht also wie folgt aus:

A1: 1001

B1: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A1;Cluster_1!$1:$1;0));A1);"")

A2: 1002

B2: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A2;Cluster_1!$1:$1;0));A2);"")

A3: 1003

B3: =WENNFEHLER(HYPERLINK("#'Cluster_1'!"&ADRESSE(1;VERGLEICH(A3;Cluster_1!$1:$1;0));A3);"") u.s.w. Funktioniert einwandfrei!

Frage: Könnte man (für A1, A2, A3 usw.) einen VBA schreiben, der direkt einen Hyperlink ermöglicht. Der Hintergrund ist, das ich diese Tabelle einem Kunden zur Verfügung stellen will. Dieser muß dann jeweils die Spalte A pflegen. Nur dann kann er mit Hyperlink auf die Spalte B zu dem jeweiligen Wert springen. Komfortabel wäre es, wenn er gleich von seinem Eintrag aus (also in Spalte A) zu dem gewünschten Wert verlinken kann. Damit könnte man sich die Spalte B sparen.

Hat jemand eine Idee? Danke und herzliche Grüße

...zur Frage

Wenn A1=A2="X" Dann "Ja" sonst "nein" Excel Wenn dann formel?

Hallo ich möchte ein bisschen mit Excel rumprobieren und komme grad nicht weiter. Ich möchte ein Tikatoospiel erstellen die Frage ist nur wie sage ich das wen A1 und A2 und A3 X ist gewonnen wenn nicht leer machen kann. =WENN((A1=B2=C3)="X";"Gewonnen";"…") =WENN((A1&B2&C3)="X";"Gewonnen";"…") =WENN(A1=B2=C3="X";"Gewonnen";"…") =WENN(A1&B2&C3="X";"Gewonnen";"…") gehen alle nicht

...zur Frage

EXCEL - Anzahl der Zellen zwischen zwei Werten ermitteln

Hallo alle zusammen,

folgendes Problem:

Ich möchte die Anzahl der Zellen in einer Spalte zwischen zwei bestimmten Werten wissen. Ich versuche es mal an einem Beispiel zu erklären, damit es deutlicher wird:

A1: START

A2: 1

A3: 2

A4: 3

A5: ENDE

Nun möchte ich wissen, wie viele Zellen zwischen A1 und A5 liegen. Später noch in einem größeren Ausmaß, daher wäre eine Formel in Excel ganz hilfreich. :-)

Danke im Voraus

...zur Frage

Wie kann ich bei ziehen B1;C1;D1;E4; --> B1=A1;C1=A2;D1=A3;E1=A4 erreichen?

  1. in B1 möchte ich Wert von A1 haben (B1=A1)
  2. danach möchte ich nur die Zeile ziehen die den wert von A2,A3,A4 übernimmt.

A1=a B1=A1, C1=A2, D1=A3, E1=A4 -----> mit zeihen A2=b A3=c A4=d

Habe versucht mit $ an allen Stellen..... funktioniert nicht Spalte transformieren in die Zeile möchte ich nicht

Besten dank

...zur Frage

Was möchtest Du wissen?