[SOLVED] - Automatisches Füllen einer Data Range

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

[SOLVED] - Automatisches Füllen einer Data Range

Beitrag 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
Zuletzt geändert von toad am Mi, 22.08.2012 22:31, insgesamt 2-mal geändert.
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Füllen einer Data Range

Beitrag 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
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag von toad »

Hm, war wohl sehr müde. Danke für den Hinweis und ich hoffe, dass es jetzt verständlicher ist!
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Automatisches Füllen einer Data Range

Beitrag von komma4 »

Moderation,4: Crossposting ohne Referenz ist unhöflich!

http://user.services.openoffice.org/en/ ... =9&t=55724
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag von toad »

komma4 hat geschrieben:Moderation,4: Crossposting ohne Referenz ist unhöflich!

http://user.services.openoffice.org/en/ ... =9&t=55724
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.
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag von toad »

paljass hat geschrieben:Hi,
probier mal

Code: Alles auswählen

=INDIREKT("Sheet"&ZEILE()&".A12")
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...
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Automatisches Füllen einer Data Range

Beitrag 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 B2 eines Arbeitsblattes der Datei eintragen, aber sheet1.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
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag 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

Code: Alles auswählen

=indirekt("sheet"&ROW()&".A10")
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 B2 eines Arbeitsblattes der Datei eintragen, aber sheet1.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.
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Automatisches Füllen einer Data Range

Beitrag 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
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag von toad »

lorbass hat geschrieben:Ja klar, weil du einen bunten Sprachenmix pflegst.
Ähem, sehr peinlich, aber Recht hast Du! Der folgende Code passt:

Code: Alles auswählen

=INDIRECT("sheet"&(ROW()-3)&".A10")
Hab jetzt leider keine Zeit, weiter zu experimentieren (erst wieder morgen Abend), aber das ist schon mal ein großes Erfolgserlebnis :) Vielen Dank!
toad
Beiträge: 7
Registriert: Do, 16.08.2012 20:08

Re: Automatisches Füllen einer Data Range

Beitrag 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.
F3K Total
********
Beiträge: 3723
Registriert: Mo, 28.02.2011 17:49

Re: Automatisches Füllen einer Data Range

Beitrag 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 A4-> Zeile 4
d.h, das Formelergebnis der Formel =ROW() in der Zelle A4 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 A4
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
Antworten