Microsoft Excel

Herbers Excel/VBA-Archiv

Sortierung mit Matrixformel

Betrifft: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 09:03:18

Hab zwei Datenfelder (A8:D451 und F8:I451) in einer Tabelle und will beide jeweils sortieren.
Anhand der Höhe des Betrags in Spalte D (und auch Spalte I dann), sollen die Zellen A-D (und auch F-I)
von oben nach unten absteigend angeordnet werden.

Wie kriege ich das in einer Matrixformel unter?
Bin natürlich für sonstige Lösungsvorschläge offen.

  

Betrifft: AW: Sortierung mit Matrixformel von: Harald Kapp
Geschrieben am: 11.04.2008 09:06:03

Hallo Maxi,
Markiere den Bereich A8:I451 und gehe in das Menü Daten - Sortieren nach Spalte D aufsteigend.


Gruß Harald


  

Betrifft: AW: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 09:13:40

Die Sache ist halt die: wenn ich sortiere nach der Funktionsleiste, verschiebt es mir einzig und allein die Zellen (Beträge) in Spalte D nicht jedoch die zugehörigen Zellen in Spalten A-C (Bezeichnung, Eigenschaft und Menge).
Dafür eine Lösung zu finden wäre super, vielleicht kann man die Zellen irgendwie gruppieren.
Besser sogar wäre eine automatische übernahme bei Änderung der Beträge in Spalte D, also ohne manuelle Funktionsbetätigung.

Danke trotzdem für die Hilfe

PS: könnte mir was mit Large Funktion vorstellen


  

Betrifft: AW: Sortierung mit Matrixformel von: Harald Kapp
Geschrieben am: 11.04.2008 09:30:27

Hallo Maxi,
verstehe ich nicht. Wenn Du alle Zellen des zu sortierenden bereiches markierst, dann nach Spalte D sortierst, dann werden alle Zeilen umsortiert, auch die in den anderen markierten Spalten. Du kannnst beim Sortieren sogar angeben, dass Du erst nach Spalte D sortieren möchtest, anschließend nach Spalte I.
Verwende dazu evtl nicht das Sortiersymbol aus der Symbolleiste, sondern den befehl Daten - Sortieren aus der Menüöeiste.

Gruß Harald


  

Betrifft: AW: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 09:47:30

Sorry hab mich sehr schlecht ausgedrückt. Da die Felder einen Bezug haben zu Feldern in einer anderen Tabelle reagiert er eigentlich garnicht. D.h. wenn ich über Daten,Sortieren,nach Spalte D_absteigend vorgehe reagiert er nicht.
Sortierung findet garnicht statt, ansonsten stimmt deine Vorgehensweise(bei unverlinkten Feldern) schon.


  

Betrifft: AW: Sortierung mit Matrixformel von: Harald Kapp
Geschrieben am: 11.04.2008 10:07:58

Hallo Maxi,
dann hilft wohl nur sortieren der Felder in den Quelltabellen.

Oder: Kopieren des Zellbereiches und Einfügen über "Inhalte Einfügen" als Werte, dann Sortierfunktion anwenden. Allerdings sind dann die Bezüge weg.


Gruß Harald


  

Betrifft: AW: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 10:52:39

Ok, habs raus wo der Fehler steckte war ein falsch kopierter Bereich.
Könnte ich vielleicht mit dem Makro recorder irgendwie meine schritte aufnehmen und dann wiedergeben lassen falls sich ein Betrag ändert?
D.h. wenn sich ein Betrag aus N8-N449 (oder S8-S449)ändert, markiere ich den Bereich K8:N449 (oder P8:S449) und sortiere absteigend nach Spalte N (oder aufsteigend nach Spalte S).


  

Betrifft: AW: Sortierung mit Matrixformel von: Harald Kapp
Geschrieben am: 11.04.2008 11:30:15

Hallo Maxi,
zeichne Dein Macro zum Sortieren auf, z.B. mit dem Namen "Mein_Macro()".
Dann füge folgenden Code in die Codemappe des Arbeitsblattes ein (rechte Maustaste auf den Tab des Arbeitsblattes, dann Code anzeigen):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Variant

Set isect = application.Intersect(Target, Range("N8:N449"))
If Not (isect Is Nothing) Then
    Call Mein_Macro
End If
End Sub



Gruß Harald


  

Betrifft: AW: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 11:39:51

Da sich der Betrag in zwei Richtungen ändern kann, bräuchte ich diesen Makro 2 mal, also einmal falls der Betrag negativ wird P8:S449 sortieren und falls der Betrag positiv bleibt oder 0 wird soll K8:N449 sortiert werden aus


  

Betrifft: AW: Sortierung mit Matrixformel von: Harald Kapp
Geschrieben am: 11.04.2008 11:49:27

Hallo Maxi,
Du benötigst entsprechend viele Sortiermacros, die Du einfach als Mein_Macro_1(), Meikn_Macro_2() etc. aufzeichnest.
Dann erweiterst Du die Worksheet_Change Routine entsprechend für verschiedene Bereiche und für verschiedene Bedingungen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Variant

Set isect = application.Intersect(Target, Range("N8:N449"))
If Not (isect Is Nothing) Then
   if Cells(Target).Value > 0 then 
      Call Mein_Macro_1 'für positive Werte in der geänderten zelle
   else
      Call Mein_Macro_2 'für negative Werte in der geänderten zelle
End If
Set isect = application.Intersect(Target, Range("P8:P449"))
If Not (isect Is Nothing) Then
   if Cells(Target).Value > 0 then 
      Call Mein_Macro_3 'für positive Werte in der geänderten zelle
   else
      Call Mein_Macro_4 'für negative Werte in der geänderten zelle
End If

End Sub



Und so weiter und so fort, Deiner Programmierphantasie für zusätzliche Abfragen oder Makroaufrufe sind keine Grenzen gesetzt.


Gruß Harald


  

Betrifft: AW: Sortierung mit Matrixformel von: maxi
Geschrieben am: 11.04.2008 12:31:16

Mein Fehler, es müssen immer beide Bereiche sortiert werden, unabhängig davon in welchem Bereich sich was ändert d. h. ich müsste mit einem Makro auskommen der dann einsetzt,
wenn sich entweder in Spalte N oder Spalte S etwas ändert unabhängig davon ob der Betrag null, neg, pos wird oder sich nur vermindert oder vermehrt.

Vielen Dank aber für die ganzen Vorschläge, die waren eine riesen Hilfe soweit.


  

Betrifft: Hat dieser Thread was mit... von: Luc:-?
Geschrieben am: 11.04.2008 14:49:53

...dem hier zu tun, Maxi?
Gruß Luc :-?


  

Betrifft: AW: Hat dieser Thread was mit... von: maxi
Geschrieben am: 11.04.2008 15:25:52

Genau, bloß, dass ich das mit dem leere Zellen ausblenden zunächst ausgeklammert habe.


  

Betrifft: AW: Hat dieser Thread was mit... von: maxi
Geschrieben am: 11.04.2008 16:03:55

Ich wollte mich nur noch mal bedanken Harald, das Ding funktioniert perfekt bis auf die erste Zeile.
Die erste Zeile bleibtkostant und lässt sich nicht sortieren obwohl ich bei der Aufnahme sie mit markiert habe.
Noch eine letzte hilfestellung wäre optimal


  

Betrifft: Habe komplettes FmlBsp fertig! Sortierung... von: Luc:-?
Geschrieben am: 13.04.2008 03:33:49

...wie beschrieben, Maxi!
Bei Interesse melden (Anpassung musst du selber vornehmen)!
Gruß Luc :-?


  

Betrifft: Hier noch der Link zum... von: Luc:-?
Geschrieben am: 13.04.2008 21:31:32

Formelbeispiel...
Gruß Luc :-?


  

Betrifft: AW: Hat dieser Thread was mit... von: Harald Kapp
Geschrieben am: 14.04.2008 06:25:03

Hallo Maxi,
beim Sortieren darf _kein_ Häkchen bei "Datenbereich enthält Überschrift" links unten gemacjt sein. Sonst interpretiert Excel die erste Zeile als Überschrift, die es natürlich nicht einsortiert. Das ist so gewollt.

gruß Harald


  

Betrifft: AW: Hat dieser Thread was mit... von: maxi
Geschrieben am: 14.04.2008 08:51:47

Jetzt funktioniert alles Super!
Vielen Dank euch beiden


 

Beiträge aus den Excel-Beispielen zum Thema "Sortierung mit Matrixformel"