• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

2. Versuch fürs Exceltabellenwertherausholproblem

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Nachdem mein Thema AppleSkript für Excel keine Antwortflut nach sich zog, versuch ichs nochmal leicht verändert. Ich denke es geht vielleicht auch wenn man ein Makro schreibt.
Hier also nochmal selbiges Problem mit Excel für Mac 2004:

Ich habe eine sehr lange Tabelle (800 Seiten) mit Zahlenwerten. In dieser Tabelle befinden sich die von mir gewollten Daten in einer Diagonalen Linie über 800 Seiten. Wie kann ich es mit einem Makro bewerkstelligen, dass mir nur diese Werte auf einem anderen Arbeitsblatt ausgegeben werden?
Was ich nicht herausfinden kann ist, ob man die Tabellenfelder (Zellen) als eine "Abhängigkeit" darstellen kann wie z.B. Der 1.Wert ist in A1, zweiter Wert B1+1 (also B2). So in der Art nur dass halt A und B auch noch durch Zahlen ersetzt werden sollten, so dass ich mit einem recht kurzen Makro ohne jede Zelle einzeln von Hand ansprechen zu müssen, alle Werte auf einem anderen Sheet ausgeben lassen kann.

Sollte jemand nicht verstehen was ich meine dürft Ihr gerne nachfragen.

Hoffe diesmal gibts ein paar mehr Antworten.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Schreib mal in die Zellen der ersten Spalte auf dem zweiten Blatt die Formel
Code:
=INDEX(<Bereich>;CELL("row");CELL("row"))
Das sollte die Diagonale extrahieren, tut's zumindest bei meinem Ooo. Mit <Bereich> ist der Matrixbereich gemeint, aus dem Du die Diagonale entnehmen willst.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Meinst Du die erste Zelle oder Zellen des 2. Blattes meiner Datenmatrix?
Und den Bereich sol ich als A1-X800 hineinschreiben?

Danke schon mal und was ist eigentlich Ooo?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Ooo = OpenOffice.org ;)

Ein Bildchen sagt mehr als 1000 Worte:
ooogk6.png

In allen drei Zellen E1 bis E3 steht die Formel
Code:
=INDEX($A$1:$C$3;CELL("row");CELL("row"))
drin. Das musst Du natürlich für Deine Zwecke entsprechend anpassen.

Zur Erläuterung: Mit CELL("row") holt man sich die Zeilennummer der aktuellen Zelle. Mit INDEX kann man Zellenreferenzen innerhalb eines Bereichs zusammenbauen, mittels Zeilen-/Spaltennummer. Auf der Diagonale sind diese natürlich gleich.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Also mein Befehl sähe jetzt so aus: =INDEX(Tabelle1!ZS+Tabelle1!Z(41)S(5)+Tabelle2!Z(41)S(5);CELL("row");CELL("row"))
da ichs von Tabelle1 in Tabelle2 kopieren lassen wollte.
Funktionieren tuts natürlich nicht.
Weitere Tipps?
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Sorry Deine Antwort zu spät gesehen.
Nächster Versuch.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Dann steht bei mir in den Zellen, also bei deinem Beispiel E1 bis E3: #Name!
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Kann sein, dass Du bei Excel die Semikolons Semikola durch Kommas Kommata ersetzen musst, bin mir aber nicht sicher. :innocent:
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Das scheint nicht der Fehler zu sein. Die gewählte Datenmatrix wird erkannt, aber mit dem Nachfolgenden stimmt was nicht. Wenn ich Kommas reinmache kommt eine Fehlermeldung. Was macht denn dieses Cells? Heisst das vielleicht anders in Excel? Kanns nirgendwo finden.

Übrigens meines Wissens darf man laut Duden auch Kommas und Semikolons sagen bzw. schreiben, falls nicht dann Asche auf mein Haupt.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Schon wieder sorry, hab Deine Erklärung oben für CELLS überlesen.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Was macht denn dieses Cells? Heisst das vielleicht anders in Excel? Kanns nirgendwo finden.
CELL müsste das heißen, ohne s. Schreib doch in eine X-beliebige Zelle einfach mal
Code:
=CELL("row")
rein. Kommt dann bei Dir auch die entsprechende Zeilennummer raus? Alternativ kannst Du glaube ich auch Folgendes probieren:
Code:
=ZEILE()
Geht das wenigstens? Dann sieht's im Beispiel so aus:
Code:
=INDEX($A$1:$C$3;ZEILE();ZEILE())

chrisbiolog schrieb:
Übrigens meines Wissens darf man laut Duden auch Kommas und Semikolons sagen bzw. schreiben, falls nicht dann Asche auf mein Haupt.
Wollte ja nur ein wenig blödeln... :innocent:
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Ah ich glaub mein Excel spricht nur deutsch und der Befehl heisst dann ZELLE.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Ah ich glaub mein Excel spricht nur deutsch und der Befehl heisst dann ZELLE.
Das wird's sein. Geht es jetzt? Sorry, mein Office-Programm kann nur Englisch. :-[

Edit: Habe mein Open Office jetzt mal auf Deutsch umgestellt. Du hast Recht, es heißt da ZELLE statt CELL.
 
Zuletzt bearbeitet:

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Also mein Befehl sieht jetzt so aus: =INDEX($A$1:$F$42;ZELLE("ZEILE");ZELLE("ZEILE"))
Leider gehts immer noch nicht, denn es kommt nur die Zahle der Zelle A1 in jeder Zelle heraus.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Also mein Befehl sieht jetzt so aus: =INDEX($A$1:$F$42;ZELLE("ZEILE");ZELLE("ZEILE"))
Leider gehts immer noch nicht, denn es kommt nur die Zahle der Zelle A1 in jeder Zelle heraus.
Ich glaube, das was man dem ZELLE-Befehl übergibt, ist immer Englisch. Also
Code:
=INDEX($A$1:$F$42;ZELLE("row");ZELLE("row"))
oder einfach
Code:
=INDEX($A$1:$F$42;ZEILE();ZEILE())
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Ich glaube, das was man dem ZELLE-Befehl übergibt, ist immer Englisch. Also
Code:
=INDEX($A$1:$F$42;ZELLE("row");ZELLE("row"))
oder einfach
Code:
=INDEX($A$1:$F$42;ZEILE();ZEILE())[/COLOR]


oh wow mit dem 2. hats dann schlussendlich funktioniert. Du bist ein Schatz. Ups darf man fremden Menschen sowas schreiben-na egal.
Du ahnst ja nicht wieviel Arbeit du mir damit erspart hast vermutlich während meiner ganzen Doktorarbeit.

Vielen tausend Dank!!;)

Muss es jetzt nur noch mit der richtigen Tabelle testen war bisher nur ne einsietige Probetabelle.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Keine Ursache. :)

Kannst Dich ja nochmal melden, ob es mit der Originaltabelle auch klappt.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Wenn wir gerade noch dabei sind. Wie kann ich das denn jetzt auf einem anderen Tabellenblatt ausgeben lassen? Denn meine Tabelle braucht eh schon 3 Tabellenblätter und die sind alle bis zum Anschlag voll.

Oder kann ich das auch unter die Tabelle setzen?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Nimm einfach ein neues Tabellenblatt und schreibe das z.B. in die Zellen der ersten Spalte:
Code:
=INDEX(Tabellenblatt!$A$1:$F$42;ZEILE();ZEILE())
Druntersetzen geht natürlich auch, eventuell musst Du ZEILE() durch z.B. ZEILE()-42 oder Ähnliches ersetzen. Die Zeilenangabe im INDEX-Befehl ist relativ zum Bereich. D.h. die Zeile 1 ist immer die erste Zeile des Bereichs, auch wenn der erst in Zeile 17 anfängt.
 

chrisbiolog

Becks Apfel (Emstaler Champagner)
Registriert
13.11.06
Beiträge
329
Es sieht jetzt bei mir so aus: =INDEX(Tabelle1!$B$2:$IV$352;ZEILE();ZEILE()) und scheint zu funktionieren. Muss nur noch mal die Werte stichprobenartig überprüfen.