Seite 1 von 1

Liste mit Hilfe einer Matrix-Formel

Verfasst: Di, 15.01.2008 14:59
von Bencomo
Hallo Leute,

ich bin kürzlich von EXCEL auf OpenOffice Calc umgestiegen und habe noch einige Probleme mit der unterschiedlichen Handhabung von Matrix-Funktionen.
Vielleicht kann mir jemand mit folgendem Problem helfen:

Ausgangssituation:
  • 5 Sheets enthalten eine begrenzte Anzahl (z.B. 20) Texteinträge, die teilweise gleich und teilweise unterschiedlich sind
Aufgabe:
  • die 5 Sheets müssen untereinander verglichen werden, um eine vollständige Liste der unterschiedlichen Texteinträge zu erzeugen (Mehrfachnennungen eliminieren)
Bisheriger Lösungsansatz:
  • es wird ein zusätzliches Sheet („Transmitter“) erzeugt, das zunächst die Mehrfachnennungen eliminiert und alle Einträge nummeriert
  • dabei werden für jedes zu untersuchende Sheet 2 Spalten erzeugt; also:
    A: Nummer; B: Texteinträge Sheet 1; C: Nummer; D: zusätzliche Texteinträge Sheet 2 (Liste enthält Lücken); E: Nummer; etc.
  • (die Erzeugung mehrerer Spalten im „Transmitter“ soll es mir zukünftig ermöglichen, die Länge der Listen zu variieren)
  • in einem weiteren Sheet („Auswertung“) habe ich eine fortlaufende Zahlenreihe in der ersten Spalte angelegt
  • nun sollten mittels einer Matrixformel die zu dem jeweiligen Zähler gehörenden Texteinträge aus "Transmitter" in Spalte B von "Auswertung" geschrieben werden
die (auf 2 zu vergleichende Spalten abgekürzte) EXCEL-Formel würde dazu so aussehen:

Code: Alles auswählen

=WENN(‘Transmitter’!$A$2:$A$21=$A4; ‘Transmitter’!$B$2:$B$21;WENN(‘Transmitter’!$C$2:$C21=$A4; ‘Transmitter’!$D$2:$D$21;”end”))
=> diese würde ich in EXCEL in die oberste freie Zelle (hier: B4) schreiben und durch einfaches Herunterziehen übertragen; dabei würde EXCEL den relativen Zellbezug auf $A4 automatisch hochzählen ($A5, $A6, etc.) und somit würde jede der fortlaufenden Nummern im Sheet „Auswertung“ mit allen Nummern der Texteinträge im Sheet „Transmitter“ verglichen werden

Problem:
  • Calc zählt die Zellbezüge nicht automatisch hoch, wenn ich die Formel in B4 herunterziehe
  • nachträglich kann ich an der Matrixformel nichts mehr ändern, es sei denn, die Änderung wird für alle Zellen im Sheet „Auswertung“ durchgeführt, die von der Matrix betoffen sind
Hat jemand eine hilfreiche Idee?

Lösung: Liste mit Hilfe einer Matrix-Formel

Verfasst: Do, 17.01.2008 12:14
von Bencomo
So, inzwischen habe ich mir eine Lösung gebastelt, nachdem mir Komma4 in einem anderen thread auf die Sprünge geholfen hat. Falls es jemanden interessiert, hier der Lösungsansatz:

Code: Alles auswählen

=WENN(ISTFEHLER(SVERWEIS($A4;$Transmitter.$A$2:$B$21;2;FALSCH));SVERWEIS($A4;$Transmitter.$C$2:$D$21;2;FALSCH);SVERWEIS($A4;$Transmitter.$A$2:$B$21;2;FALSCH))
=> Formel kann problemlos in eine Zelle eingegeben und dann "heruntergezogen" werden

  • Zunächst wird die Matrix A2:B21 im sheet "Transmitter" auf Übereinstimmung mit der Nummer in Zelle A4 (sheet "Auswertung") durchsucht
  • Wird die Nummer nicht gefunden (ISTFEHLER()=WAHR), wird die Matrix C2:D21im sheet "Transmitter" durchsucht, und der korrespondierende Text aus Spalte D (2. Spalte der Matrix) zurückgegeben
  • Wird die Nummer gefunden (ISTFEHLER()=FALSCH), wird der korrespondierende Text aus Spalte B im sheet "Transmitter" zurückgegeben
Das Ding lässt sich beliebig verschachteln, man muss nur beachten, dass neue WENN-Abfragen und SVERWEISE immer in die Mitte aufgenommen werden (als WAHR-Bedingungen). Folge: Die erste überprüfte Matrix A2:B21 taucht als SVERWEIS an letzter Stelle in der Formel wieder auf, die zweite Matrix an vorletzter Stelle usw. Alles klar?

Re: Liste mit Hilfe einer Matrix-Formel

Verfasst: Sa, 19.01.2008 18:23
von Gert Seler
Hallo Bencomo,
die Erklärung Erklärung der Funktion SVERWEIS ist so nicht stimmig, denn die Funktion hat folgenden Syntax :

=SVERWEIS(Suchkriterium;Matrix;Index;Sortiert)

Der Eintrag "WAHR" sollte nur bei aufsteigender Sortierung der gesuchten Werte der SVERWEIS_Matrix angeführt oder auch
weggelassen werden. Der Parameter "FALSCH" ist generell oder bei unsortierten Werten in der SVERWEIS_Matrix anzuwenden.
Siehe auch :
http://www.ooowiki.de/CalcFunktionenTab ... VERWEIS%29

mfg
Gert