singlecoil
Goto Top

Daten auslesen und in Diagramm wiedergeben

Hallo zusammen!

Da meine Excel Kenntnisse begrenzt sind, stehe ich vor folgendem Problem:

Ich habe ein Dokument, indem ein Komplettes Jahr in die einzelnen Kalenderwochen aufgeteilt ist. D.h. 54 Tabellen innehalb des Dokuments. Jetzt möchte ich gerne auf einer weiteren Tabelle einzelne inhalte aus den KWen auslesen, und dann in einem Diagramm wiedergeben.
Das ganze sollte nach möglichkeit so aussehen, dass man in einem Pulldown-Menü die gewünschte KW auswählen kann, und dann automatisch die richtigen Daten ausgelesen werden.

Die Daten, die ausgelesen werden müssen sind auf jeder tabelle an der gleichen Stelle, das einzige was sich ändert ist die Tabelle von der ausgelesen werden muss.

Ist das überhaupt möglich? Wie gesagt, sind meine Excel Kenntnisse nicht überragend, aber für den Alltag reichts.

Arbeite mit WinXP und Office 2003

Würde mich über Hilfe freuen!

Gruß

Singlecoil

Content-Key: 46868

Url: https://administrator.de/contentid/46868

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: bastla
bastla 15.12.2006 um 19:17:56 Uhr
Goto Top
Hallo Singlecoil und willkommen im Forum!

Du benötigst zur Umsetzung Deines Vorhabens die beiden Funktionen INDEX() und INDIREKT().

Vorgangsweise Kombinationsfeld:
  • Als Datenbereich für das Kombinationsfeld die Namen der Blätter in einer Spalte untereinander eintragen (zB K2:K55). Diese Liste kann natürlich (aus optischen Gründen) auch in einer anderen Tabelle platziert werden.
  • Symbolleiste "Formular" einblenden, "Kombinationsfeld" anklicken und in der Tabelle an der gewünschten Position mit der Maus einzeichnen.
  • Kombinationsfeld doppelklicken und im Register "Steuerung" den "Eingabebereich" auf die Blattliste setzen ($K$2:$K$55)
  • In "Zellverknüpfung" eine Zelle angeben, in welche die Nummer des gewählten Eintrages geschrieben wird, zB $C$2.
  • Tabelle anklicken, so dass das Kombinationsfeld nicht mehr markiert ist (wieder markieren lässt sich dieses durch Anklicken bei gedrückter Strg-Taste).

Wenn Du jetzt das Kombinationsfeld aufklappst, müsstest Du alle Blattnamen sehen. Bei Auswahl eines Blattes wird in C2 die laufende Nummer des von Dir gewählten Blattes eingetragen.

Zugriff auf Daten des gewünschten Blattes: Mit der Formel
=INDIREKT(INDEX($K$2:$K$55;$C$2;1)&"!" & "A3")  
kannst Du nun zB auf den Inhalt der Zelle A3 des im Kombinationsfeld gewählten Blattes zugreifen.

Erklärung:
  • Die INDEX()-Funktion holt anhand der Nummer in C2 aus der Blattliste K2:K55 den Blattnamen. Dieser wird verknüpft mit "!" und der Zelladresse ("A3").
  • INDIREKT() liefert den Inhalt der durch obige Kombination "Blattname" & "!" & "A3" (also zB KW12!A3) erstellten Zelladresse als Ergebnis zurück.

Erweiterungsmöglichkeit:
  • Liste der benötigten Zellen in eine Spalte schreiben (zB ab L2)
  • Die Formel ändern auf
=INDIREKT(INDEX($K$2:$K$55;$C$2;1)&"!" & L2)  

  • und nach unten kopieren.

HTH
bastla
Mitglied: Singlecoil
Singlecoil 15.12.2006 um 19:32:31 Uhr
Goto Top
WOW!

Danke für diese Perfekte anleitung! Ich werde es ausprobieren und bescheid geben wie's geklappt hat!

Vielen Dank!!!

Gruß

Singlecoil
Mitglied: Singlecoil
Singlecoil 18.12.2006 um 16:38:47 Uhr
Goto Top
Also:

Habe also das Kombinationsfeld gemacht, das hat soweit schon mal hingehauen! Jetzt hänge ich an der INDIREKT bzw INDEX Formel:
Ich bekomme immer einen Fehler: "Die angegebene Formel enthält einen Fehler"

Mein Dokument ist folgendermaßen aufgebaut:

Ich habe 53 Blätter/Tabellen. Diese heißen "KW 1" bis "KW 52", und eine "Diagramm".

Auf dem Blatt "Diagramm" ist B35 das Feld indem die Zahl des Kombinationsfeldes ausgegeben wird.

Und der Inhalt des Feldes C50 soll nun von den Blättern "KW 1" bis "KW 52" ausgelesen werden.

Die Blattliste befindet sich ebenfalls auf "Diagramm": A50:A101

Wie muss dann die Formel aussehen? Irgendwie bekomm ich das trotz der ausgezeichneten Erklärung nicht hin...

MfG

Singlecoil
Mitglied: Singlecoil
Singlecoil 18.12.2006 um 16:55:16 Uhr
Goto Top
Mitlerweile bekomme ich den Fehler "#Bezug"

Meine Formel sieht folgendermaßen aus:

=INDIREKT(INDEX($A$50:$A$101;$B$35;1)&"!" & "C50")
Mitglied: bastla
bastla 18.12.2006 um 20:06:35 Uhr
Goto Top
Hallo Singlecoil!

Leerstellen in Blattnamen sind meistens keine gute Idee - versuch mal "KW 1" auf "KW1" zu ändern (Blattname und Liste). Um alle Blätter in einem Rutsch von den Leerstellen zu befreien, könntest Du folgendes Makro verwenden:
Sub MakeKWNames()
Dim Blatt As Object
For Each Blatt In Worksheets()
    If UCase(Left(Blatt.Name, 2)) = "KW" Then Blatt.Name = "KW" & Trim(Right(Blatt.Name, 2))  
Next
End Sub

Grüße
bastla
Mitglied: Singlecoil
Singlecoil 18.12.2006 um 21:26:07 Uhr
Goto Top
Super! Danke!

Jetzt hats endlich geklappt! Vielen Dank nocheinmal für deine klasse Hilfe!!!

Grüße

Singlecoil