Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Am 12.01.2013 00:26, schrieb Sebastian:

ich brauche mal einen Ansatz wie ich einen Bereich auswählen kann welcher 
Relativ zu einer Übereinstimmung einer Anderen Zelle liegt und daraus in 
Übereinstimmung zu einer Anderen Zelle den Inhalt einer Zelle übernehmen.

Also ich habe ein Tabellenblatt mit Nahmen und einem Bereich darunter mit nach 
Monaten geordneten Zahlen.

Hmm; meinst Du so was?

        A       B       C       D
1               Anton   Berta   Cäsar
2       Jan     1       2       3
3       Feb     4       5       6
4       Mar     7       8       9

Jetzt will ich aus einem Anderem Tabellenblatt eine Zahl aus diesem 
Tabellenblatt je Name und Monat auswählen.
Tabelle 2 Zelle F12 soll Je nach Name in F11 und Monat in F5 aus Tabelle 1 
Denn Bereich A1:AA27 wählen 

Was meinst Du mit 'Tabelle2.F12 soll einen Bereich(!) wählen'? In eine
Tabellenzelle passt immer nur ein *Wert*, kein *Bereich*.

wenn Tabelle1.A1 = Tabelle2.F11 oder eben 
A31:AA57 wenn Tabelle1.A30 = Tabelle2.F11 und so fort bis 
A571:AA597 wenn Tabelle1.A5710 = Tabelle2.F11

Also wenn in Tabelle2.F11 z. B. 'März 2010' steht, sollen die Zeilen
'März 2010 - Mai 2012' o. ä. gewählt werden ...

Aus diesem Bereich dann
Tabelle1.E3 wenn Tabelle1.E2 = Tabelle2.F5 oder eben
Tabelle1.G3 wenn Tabelle1.G2 = Tabelle2.F5 und so fort bis
Tabelle1.AA3 wenn Tabelle1.AA2 = Tabelle2.F5

... und entsprechend wenn in Tabelle2.F5 z. B. 'Berta' steht, dann
sollen die Spalten 'Berta - Quasimodo' abgebildet werden.

Mit anderen Worten, Du willst einen bestimmten (zweidimensionalen)
Ausschnitt aus der Tabelle1 in einen Bereich von Tabelle2 abbilden, z.
B. Tabelle1.B12:G19 nach Tabelle2.F2:K9.

Da Du mehrere Zellen darstellen willst, würde ich mit einer versteckten
Spalte bzw. Zeile und VERSCHIEBEN arbeiten, das spart jede Menge
Rechenzeit gegenüber der Variante, daß Du in jeder Zelle die Quelle
separat berechnest.

Angenommen Dein Quellbereich sei (ohne Überschriften) Tabele1.B2:AA600,
und Dein Zielbereich sei Tabelle2.I3:L12. Die Auswahlkriterien stehen in
Tabelle2.F5 (Spalte) und Tabelle2.F11 (Zeile).

Dann würde ich es mir erst mal bequem machen, und für F5 und F11 eine
Gültigkeit definieren:

F5:     Daten => Gültigkeit => Kriterien => Zulassen: 'Zellbereich' =>
Quelle: '$Tabelle1.$B$1:$AA$1'

F11:    ... '$Tabelle1.$A$2:$A$600'

Als nächstes würde ich die Überschriften in Tabelle2.I1:L1 bzw.
Tabelle2.G3:G12 erzeugen. Dabei enthalten die Zeile 2 bzw. die Spalte H
Hilfszellen und werden später komplett ausgeblendet. Zuerst die
Spaltenüberschriften: Der Inhalt von I1 ist noch einfach:

I1:     =F5

Für den Rest benötigt man besagte Hilfszellen. Dazu muss man zuerst mal
ermitteln, welche Spaltennummer denn der in I1 angezeigte Wert hat. Dazu
kommt folgende Formel in I2:

I2:     =VERGLEICH(F5;Tabelle1.B1:AA1;0)

liefert den Index des Wertes in F5 innerhalb der Liste Tabelle1.B1:AA1,
also der Spaltenüberschriften. Der letzte Parameter bewirkt, daß die
Liste als unsortiert interpretiert wird. Andernfalls könnte die Suche
unter bestimmten Umständen vorzeitig abgebrochen und ein falsches
Ergebnis zurück geliefert werden.

Die Spaltennummern der weiteren Spalten ergeben sich dann sehr simpel:

I3:     =I2+1
I4:     =I3+1
I5:     =I4+1
 :        :

Nun kann man mit Hilfe dieser Spaltennummern in den Hilfszellen sehr
einfach auf die Spaltenüberschriften kommen:

J1:     =VERSCHIEBUNG($Tabelle1.$A$1;0;J$2)
K1:     =VERSCHIEBUNG($Tabelle1.$A$1;0;K$2)
L1:     =VERSCHIEBUNG($Tabelle1.$A$1;0;L$2)
 :        :

D. h. 'gehe von dem Ausgangspunkt (hier $Tabelle1.$A$1) 0 Schritte nach
unten und J$2 (K$2, ...) Schritte nach rechts, und liefere den Inhalt
dieser Zelle zurück'.

In gleicher Weise verfährt man dann auch mit den Zeilenüberschriften:

G3:     =F11
G4:     =VERSCHIEBUNG($Tabelle1.$A$1;$H4;0)
G5:     =VERSCHIEBUNG($Tabelle1.$A$1;$H5;0)
G6:     =VERSCHIEBUNG($Tabelle1.$A$1;$H6;0)
 :        :

H3:     =VERGLEICH(F11;Tabelle1.A2:A600;0)
H4:     =H3+1
H5:     =H5+1
H6:     =H6+1
 :        :

Und, Du ahnst es schon, genau so füllt man dann auch die eigentlichen
Datenzellen aus:

I3:     =VERSCHIEBUNG($Tabelle1.$A$1;$H3;I$2)
I4:     =VERSCHIEBUNG($Tabelle1.$A$1;$H4;I$2)
 :        :

Wenn vorher ein Anderer Bereich gewählt wurde natürlich entsprechend.

Ich dachte an irgendetwas wie suche in Tabelle1 X; nimm dann den Bereich 
Relativ - a Zeilen bis +b Zeilen und -c Spalten bis + d Spalten zur 
Übereinstimmung.

Und wie und wo möchtest Du das zwischenspeichern?

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt und Ihr könnt mir 
zumindest die möglichen Funktionen nennen um soetwas umzusetzen.

Das ganze könnte ich zwar auch statisch umsetzen doch müsste ich dann 4*12*20 
Felder jeweils separat verknüpfen. Da ja die Bezüge zueinander immer wieder 
gleich sind könnte ich es mir eventuell etwas vereinfachen. Leider sind die 
Bezüge nicht so gleich und das Bekomme ich auch nicht hin das durch kopieren 
die Veränderung automatisch mitgemacht wird.

Wenn Du im Editiermodus bist, und den Inhalt einer Zelle markierst und
in eine andere kopierst, dann wird dieser Inhalt auch genau so 'as is'
übernommen.

Wenn Du aber die *ganze* Zelle kopierst, also *nicht* aus dem
Editiermodus heraus, werden darin vorkommenden relativen Bezüge (für
absolute Bezüge s. u.) entsprechend angepasst. Du kannst dabei ggf. noch
über 'Bearbeiten => Inhalte Einfügen' (oder einfach nur EINFG)
bestimmen, ob alles oder nur bestimmte Teile der Zelle, z. B. nur
Formeln, aber keine Formate o. ä., kopiert werden sollen.

Wenn einem Spaltenbuchstaben und/oder einer Zeilennummer ein '$'
vorangeht (z. B. '$A1', 'B$2', '$C$3'), dann handelt es sich bei der
Spalte/Zeile/beidem nicht um einen *relativen* sondern um einen
*absoluten* Bezug, der dann entsprechend auch nicht angepasst wird (also
aus '$A1' kann nur '$A2', '$A3' usw. werden, aus 'B$2' nur 'C$2', 'D$3'
usw.).

Und der Vollständigkeit halber: Wenn Du eine Zelle nicht kopierst
sondern /verschiebst/, dann wird logischerweise /auch/ nix angepasst.

Wolf 'ich weiß, irgendwo in der OOO-Wiki auf http://www.ooowiki.de/
findet sich so was ähnliches sicherlich auch schon als schöne und
bebilderte Anleitung, aber bevor ich /da/ jetzt erst lang das Suchen
anfange ... :-/' gang
-- 


-- 
Informationen zum Abmelden: E-Mail an users+help@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.