Seite 1 von 1
[SOLVED] - Automatisches Füllen einer Data Range
Verfasst: Do, 16.08.2012 20:22
von toad
Ich habe eine Tabellenkalkulation mit 58 sheets, wovon die ersten 50 Info enthalten, die in den letzten 8 schön gesammelt werden soll.
Ich möchte, dass ich auf sheet Nummer 51 zum Beispiel in Spalte A eine Auflistung des Feldes A12 sämtlicher sheets habe. Also gebe ich =sheet1.A12 in A1 und =sheet2.A12 in A2 ein und versuche dann die Spalte bis =sheet50.A12 füllen.
Aber irgendwie krieg ich das nicht hin. Habe bereits google und das Hilfesystem bemüht, komme aber auf keinen grünen Zweig - kann natürlich auch daran liegen, dass ich nicht das Richtige suche...
Das Ganze manuell zu machen würde bedeuten, über 3000 Felder einzugeben - allein die Fehlerquote macht mir dabei Angst, an das Debuggen will ich gar nicht erst denken...
Wenn jemand mir also weiterhelfen oder zumindest in die richtige Richtung schubsen könnte, wäre ich mehr als dankbar!
EDIT: habe das Ganze noch einmal gelesen und hoffe, dass es jetzt verständlich ist
Re: Automatisches Füllen einer Data Range
Verfasst: Do, 16.08.2012 22:46
von F3K Total
Da deine Frage unverständlich ist, kann man Dir nicht helfen.
toad hat geschrieben:Ich habe eine Tabellenkalkulation mit 58, wovon die ersten 50 Info enthalten, die in den letzten 8 schön gesammelt werden soll.
58 was?
ersten 50 wovon?
letzten 8?
toad hat geschrieben:sheet Nummer 51 zum Beispiel =sheet2.A12 in A1 und =sheet3.A12 in A2 eingebe und dann die data range bis =sheet50.A12 füllen
data range bis =sheet50.A12 füllen
Ja, verdammt nochmal, womit denn?
Keine vernünftige Frage, keine Antwort!
R
Re: Automatisches Füllen einer Data Range
Verfasst: Fr, 17.08.2012 07:02
von toad
Hm, war wohl sehr müde. Danke für den Hinweis und ich hoffe, dass es jetzt verständlicher ist!
Re: Automatisches Füllen einer Data Range
Verfasst: Fr, 17.08.2012 11:38
von komma4
Moderation,4: Crossposting ohne Referenz ist unhöflich!
http://user.services.openoffice.org/en/ ... =9&t=55724
Re: Automatisches Füllen einer Data Range
Verfasst: Fr, 17.08.2012 12:03
von toad
Ja, hab ich getan. Dachte, andere Sprache, anderes Forum, andere Leser. Kämpfe gerade mit paljass' Vorschlag, hab ihn aber noch nicht zum Laufen gebracht - ergo: muss mehr lesen...
Sieht Hagar Delest anscheinend auch so, fahr also weiterhin vorerst zweigleisig.
Re: Automatisches Füllen einer Data Range
Verfasst: Fr, 17.08.2012 15:04
von toad
paljass hat geschrieben:Hi,
probier mal
Das Ganze ist nach unten Kopierbar.
Gruß
paljass
Vielen Dank, paljass. Habe das hier gefunden, um einen Einblick in die Indirect Funktion zu erhalten
http://www.openofficetips.com/blog/arch ... uncti.html
Leider aber verstehe ich die Syntax noch nicht. Wenn du sagst =INDIREKT("Sheet"&ZEILE()&".A12"), dann tue ich das in B2 von sheet58, aber wie holt sich das dann den Wert von sheet1.A12? Im Augenblick spuckt es #Name? aus...
Re: Automatisches Füllen einer Data Range
Verfasst: Fr, 17.08.2012 17:20
von lorbass
toad hat geschrieben:Leider aber verstehe ich die Syntax noch nicht.
Die Namen deiner Arbeitsblätter bestehen aus dem fixen Teil »
sheet« gefolgt von einer »
laufenden Nummer«. Für die »
laufende Nummer« hat paljass die Calc-Funktion ZEILE() verwendet, die den Wert der aktuellen Zeile annimmt. Die beiden Komponenten werden mit dem Operator »&« verkettet ("konkateniert").
"sheet" & ZEILE() ergibt also in Zeile 1 eines Blattes den Wert "sheet1", in Zeile 2 "sheet2", usw.
Der so zusammengefügte Name des Arbeitsblattes wird noch mit dem Namen der Zelle "A12" zur der in einer Datei eindeutigen
Adresse der Zelle verkettet. Schließlich ermittelt die Funktion INDIREKT("sheet" & ZEILE() & ".A12") den Wert der auf diese Weise eindeutig adressierten Zelle.
Wenn du diese Funktion in die Zelle B
2 eines Arbeitsblattes der Datei eintragen, aber sheet
1.A12 auslesen möchtest, musst du noch korrigieren:
- =INDIREKT("sheet" & (ZEILE()-1) & ".A12")
Diese kannst du dann bis nach B51 nach unten ziehen und ermittelst die Werte der Zellen
sheet1.A12 bis
sheet50.A12.
btw:
- Groß-/Kleinschreibung des Blattnamens ist – anders als im AOO Community Forum behauptet angedeutet – völlig irrelevant.
- Sofern du mit einem englischsprachigen Calc arbeitest, benutzte die angepasste Formel
- =INDIRECT("sheet" & (ROW()-1) & ".A12")
Gruß
lorbass
Re: Automatisches Füllen einer Data Range
Verfasst: Mo, 20.08.2012 19:14
von toad
Wow, vielen Dank, lorbass. War weg am WE, deshalb die späte Antwort. Beste Erklärung, über die ich bisher gestolpert bin! Jetzt fängt alles an, zumindest ein wenig Sinn zu machen.
Habe jetzt erst mal sheet2-50 gelöscht, so dass ich nur noch sheet1 (mit Daten) und Transport (Sammelsheet) habe.
Wenn ich jetzt in Transport.A4
eingebe, kriege ich immer noch #NAME?
Soll wohl heißen, dass er immer noch nicht auf sheet1.A10 zurückgreift.
lorbass hat geschrieben:Wenn du diese Funktion in die Zelle B
2 eines Arbeitsblattes der Datei eintragen, aber sheet
1.A12 auslesen möchtest, musst du noch korrigieren:
- =INDIREKT("sheet" & (ZEILE()-1) & ".A12")
Das verstehe ich noch immer nicht - wie wird der Zeilenteil dieser Funktion definiert? Fängt der nicht automatisch bei 1 an oder ist der irgendwie relativ?
Auf jeden Fall vielen Dank die Unterstützung. Ich werde die Lösung, sobald ich sie denn habe, auch im englischen Forum samt Erklärung posten.
Re: Automatisches Füllen einer Data Range
Verfasst: Mo, 20.08.2012 20:14
von lorbass
toad hat geschrieben:kriege ich immer noch #NAME?
Ja klar, weil du einen bunten Sprachenmix pflegst.
lorbass hat geschrieben:- Sofern du mit einem englischsprachigen Calc arbeitest, benutzte die angepasste Formel
- =INDIRECT("sheet" & (ROW()-1) & ".A12")
Wenn du also durchgängig die englischen Namen verwendest, also
INDIRECT statt
INDIREKT schreibst, sollte dieses Problem behoben sein.
Gruß
lorbass
Re: Automatisches Füllen einer Data Range
Verfasst: Di, 21.08.2012 19:21
von toad
lorbass hat geschrieben:Ja klar, weil du einen bunten Sprachenmix pflegst.
Ähem, sehr peinlich, aber Recht hast Du! Der folgende Code passt:
Hab jetzt leider keine Zeit, weiter zu experimentieren (erst wieder morgen Abend), aber das ist schon mal ein großes Erfolgserlebnis

Vielen Dank!
Re: Automatisches Füllen einer Data Range
Verfasst: Mi, 22.08.2012 22:31
von toad
So, das funktioniert einwandrei!
Leider kann ich mir das -3 noch immer nicht genau erklären und deswegen auch nicht weiter schreiben, was ich gemacht habe, aber nachdem ich die übrigen 49 Tabellen hinzugefügt hatte, konnte ich in den Sammeltabellen einfach =INDIRECT("sheet"&(ROW()-3)&".A10") eingeben, die Zelle nach Bedarf ändern und dann runterziehen. Grenzt an ein Wunder
Vielen, vielen Dank an alle, fantastische Community.
Re: Automatisches Füllen einer Data Range
Verfasst: Mi, 22.08.2012 23:48
von F3K Total
toad hat geschrieben:Leider kann ich mir das -3 noch immer nicht genau erklären
Ich versuche es mal
=INDIRECT("sheet"&(ROW()-3)&".A10")
1.)
ROW()
Der Befehl
ROW() gibt die Zeile der Zelle an, in die du gerade die Formel hineinschreibst, sagen wir Zelle A
4-> Zeile
4
d.h, das Formelergebnis der Formel
=ROW() in der Zelle A
4 ist die Zahl
4
2.)
Gänsefüßchen oben "sheet"
Durch umschließen mit den Gänsefüßchen erkennt das Programm das es sich um einen
Text handelt und nicht um eine Zahl oder Formel.
3.)
&
Dieses Zeichen ist das Verknüpfungszeichen z.B =(2*8)
&" Stück" ergibt den Text
16 Stück
4.)
Indirekt
Erzeugt aus einem Text eine Formel
So also haben wir in Zelle A
4
1.)
ROW()-3 =
4-3 =
1
2.)
"sheet"&
1&
".A10" =
sheet1.A10
3.) aus
=INDIRECT("sheet"&(ROW()-3)&".A10") wird also =INDIREKT (
sheet1.A10) ergibt also den Zellbezug zur Zelle A10 auf sheet 1
Gruß R