Seite 1 von 1

[Gelöst] Wie synchronisiert man zwei Bereiche (inkl. eingefügter Zeilen)

Verfasst: Sa 28. Mai 2016, 22:06
von Frank_M
Hallo,
ich habe noch eine Frage zur Synchronisierung von Tabellen:

Wenn ich in einer Tabelle z.B. nur Namen pflege, die ich in anderen Tabellen benutzen möchte, dann funktioniert das am einfachsten, indem ich in allen Ziel-Tabellen auf diese Namenstabelle (z.B. TabelleNamen) verweise. Dann kann ich Namen zentral in der Namenstabelle pflegen, quasi wie in einer relationalen Datenbank.

Das Problem taucht auf, sowie ich eine Zeile in TabelleNamen einfüge. Wenn ich z.B. Zeile 2 in TabelleName neu einfüge, um dort einen neuen Namen einzutragen, dann wird Calc in TabelleZiel nicht automatisch auch eine Zeile einfügen. Calc verweist dann TabelleZiel.A2=TabelleName.A3, weil in A2 Platz für einen neuen Inhalt geschaffen wurde. Ich müsste also in TabelleZiel händisch auch eine Zeile einfügen und alle Formeln dort entsprechend anpassen - sehr schmutzig und sicherlich dilettantisch ..

Bei der Funktion MTRANS() habe ich gesehen, dass die Funktion den ganzen Bereich sychronisiert: Wenn ich in die Namensspalte als Matrix in eine Zeile eines anderen Bereiches transformiere, dann werden neue Zeilen in der Spalte automatisch zu neuen Spalten in der (transformierten) Zeile.

Nachdem ich das bei MTRANS() gesehen habe frage ich mich natürlich, wie man die Inhalte zweier Bereiche "richtig" synchron hält, also auch, wenn im Quell-Bereich eine Zeile eingefügt wird. Kann mir jemand das Vorgehen nennen?

Freue mich über Aufkälrung und schönes Wochenende :-),

Frank

Lösung: Matrix benutzen

Verfasst: So 29. Mai 2016, 12:12
von Frank_M
Ich wusste bislang nur nicht, wie man mit Matrices umgeht. Am Ende war es super-einfach:

1. Zielbereich markieren,
2. wie gehabt, Formel mit "=" beginnen
3. wie gehabt, Quell-Bereich auswählen
4. anders als bisher: Mit Strg-Shift-Return bestätigen.

Daraufhin wird im Zielgebiet eine Matrix gebildet, in die sich keine Zeilen oder spalten einfügen lassen, die dafür aber neue Zeilen im Quell-Bereich automatisch übernehmen.

in der Formel ist die Matrix-Abhängigkeit an den geschweiften Klammern um die Formel zu erkennen. So steht jetzt im Zielbereich nicht "=<QuellTabelle>.<QuellSpalte><QuellZeile>" (also der direkte Verweis der einzelnen Zellen auf die einzelnen Quell-Zellen), sondern "{<
QuellTabelle>.<QuellBereich>}", eingerahmt von geschweiften Klammern, um deutlich zu machen, dass hier der ganze Quell-Bereich auf den Ziel-Bereich gemappt wird.

Grüße,
Frank

Re: [Gelöst] Wie synchronisiert man zwei Bereiche (inkl. eingefügter Zeilen)

Verfasst: So 29. Mai 2016, 13:02
von mikele
Hallo,

noch ein Tipp: Du brauchst gar nicht dne ganzen Zielbereich markieren. Es reicht wenn du die Matrixformel einfach in eine (die linke obere) Zelle schreibst.
Noch einfacher wird es, wenn du dem Bereich (angenommen TabelleName.A1:A100) einen Namen gibst (z. B. "Namenliste") dann kannst du in Formel einfach darauf verweisen, z. B.

Code: Alles auswählen

{=Namenliste}
und (noch wichtiger) wenn du in diesem Bereich eine Zeile einfügst wird er automatisch erweitert.

Re: [Gelöst] Wie synchronisiert man zwei Bereiche (inkl. eingefügter Zeilen)

Verfasst: So 29. Mai 2016, 15:24
von Frank_M
Hi,

dafür Bereichsnamen zu verwenden macht die Lösung natürlich sauberer. Dank Dir für den Hinweis!

Frank
mikele hat geschrieben:Hallo,

noch ein Tipp: Du brauchst gar nicht dne ganzen Zielbereich markieren. Es reicht wenn du die Matrixformel einfach in eine (die linke obere) Zelle schreibst.
Noch einfacher wird es, wenn du dem Bereich (angenommen TabelleName.A1:A100) einen Namen gibst (z. B. "Namenliste") dann kannst du in Formel einfach darauf verweisen, z. B.

Code: Alles auswählen

{=Namenliste}
und (noch wichtiger) wenn du in diesem Bereich eine Zeile einfügst wird er automatisch erweitert.