Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
472to476
472to476
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zusammengesetzte Bezeichnung beim Index-Befehl

Zusammengesetzte Bezeichnung beim Index-Befehl
25.08.2004 11:49:01
Sascha
Hallo,
ich habe folgendes Problem:
Bei der Verwendung des Index-Befehls wird meine Formel aufgrund der verwendeten sehr langen Pfadangaben zu groß für die Zelle ("Formel zu lang"). Meine Idee war jetzt, dass ich den Pfad in eine andere Zelle (z.B. A4) schreibe und die Matrix beim Index-Befehl dann aus zum Beispiel A4 und $E$332:$AK$360 zusammensetze. Nach längerem Probieren ist mir dies aber bisher nicht gelungen.
Hat jemand eine Idee, wie dies funktionieren könnte?
Danke im Voraus,
Sascha.

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Theoretisch mit INDIREKT, praktisch aber...
Boris
Hi Sascha,
...wohl nicht möglich, da dafür die Quelldatei geöffnet sein muss.
Alternativ:
Verknüpfe die Quelldatei in einem separaten Blatt in deiner Mappe und greife darauf mit der INDEX-Funktion zurück.
Grüße Boris
AW: Theoretisch mit INDIREKT, praktisch aber...
25.08.2004 12:02:44
Sascha
Die Angabe der Matrix erfolgt im Index-Befehl ja in der Form 'G:\...\...\...\...\[Zieldatei.xls]Blatt4'!$E$332:$BK$360
Ist es jetzt nicht möglich, in A4 'G:\...\...\...\...\[Zieldatei.xls]Blatt4'! zu schreiben und im Index-Befehl dann so in etwa A4&$E$332:$BK$360 !?
Sascha.
Hast du mein Antwort gelesen?
Boris
Hi Sascha,
ich schrieb: Theoretisch mit INDIREKT (das ist eine Funktion), praktisch muss dafür aber die Quellmappe geöffnet sein - und daher scheidet diese Möglichkeit in 99% aller Fälle aus.
Falls du zu dem 1% gehörst, dann lass es mich wissen.
Grüße Boris
Anzeige
nein - mit Indirekt (aber...)
Günther
Hi Sascha
wie Boris geschrieben hat müsste die Formel:
=Index(indirekt(A4&&$E$332:$BK$360)... lauten
jedoch funktionieren Indirekt-Funktionen nur bei geöffneter Zieldatei
Günther
AW: nein - mit Indirekt (aber...)
25.08.2004 12:10:27
Sascha
Vielen Dank erstmal für die Antworten. Ansonsten gibt es da keine weiteren Möglichkeiten !?
Sascha
Du liest wohl wirklich nicht...
Boris
Hi Sascha,
...was man dir schreibt, oder?
Das Wort Alternativ in meiner ersten Antwort impliziert doch sowas wie eine weitere Möglichkeit...
Grüße Boris
AW: Du liest wohl wirklich nicht...
Sascha
Doch, das mache ich schon, nur würde diese alternative Möglichkeit mein File auf eine Größe von etwa 15Mb aufblähen, was es ein wenig unhandlich macht. Dass ich auf diese Möglichkeit nicht eingegangen bin, sollte indes implizieren, dass ich diese Variante für leider nicht praktikabel hielt. Danke trotzdem für die Hilfe.
Sascha.
Anzeige
Dann schreib das doch direkt so
Boris
Hi Sascha,
denn dann weiss ich auch, warum das für dich kein gangbarer Weg ist.
Alternativen ohne VBA gibt es nur noch eine:
Schaufel deine Datei näher an die Festplatte, damit der Pfad nicht mehr so lang ist.
Oder schreib mal genau, wie deine Formel aussieht. Möglicherweise gibt´s auch ne einfachere Lösung, die trotz der langen Pfade nicht an die Zeichengrenze von 1024 pro Zelle stößt.
Grüße Boris
Es gibt noch ne Möglichkeit
Boris
Hi Sascha,
...aber möglicherweise hast du sie schon umgesetzt:
Schreib wie Formeln und halte dabei die Quelldatei geöffnet.
Hat den Vorteil, dass die ganzen Pfadangaben zunächst mal nicht mit in die Formel übernommen werden.
Anschließend kannst du die Quelldatei schließen.
Die Formeln enthalten dann auch die Pfade - und sie funktionieren, obwohl die maximale Zeichenzahl von 1024 überschritten ist.
Ab dann solltest du die Formel aber nicht mehr editieren - dann dann gibt´s Mecker von Excel...
Grüße Boris
Anzeige
AW: Es gibt noch ne Möglichkeit
25.08.2004 12:58:23
Sascha
Danke für die Antworten.
@Beate: ich werde das gleich mal ausprobieren
@Boris: bin gerade dabei, das so zu machen. Leider kann man dann die Verknüpfungen nicht schnell mal ändern.
Danke nochmals.
Sascha.
AW: Es gibt noch ne Möglichkeit
25.08.2004 13:04:16
Sascha
Ist es möglich, einem Wert während einer Berechnung eine Variable zuzuweisen, so dass man sich im weiteren Verlauf (in der gleichen Formel) auf diese Variable berufen kann, ohne noch einmal den Wert berechnen zu müssen!? (Dies würde meine Formel nämlich erheblich verkürzen)
Sascha.
Arbeite mit Hilfsspalten
Boris
Hi Sascha,
in denen du Teilberechnungen durchführst. Darauf kannst du dann einfach referenzieren.
Grüße Boris
Anzeige
AW: Arbeite mit Hilfsspalten
25.08.2004 13:32:15
Sascha
Hm, aber leider habe ich eine Matrix mit etwa 50 Spalten, wenn ich da hinter jede eine Hilfsspalte setze, dann wird es schwierig, Teile des Arbeitsblattes einfach mal zu kopieren...
Vielen Dank trotzdem,
Sascha.
Sorry - ohne VBA keine weitere Idee...
Boris
Hi Sascha,
...zumindest solange du nix zu deinen eigentlichen Formeln sagst.
Grüße Boris
AW: Sorry - ohne VBA keine weitere Idee...
25.08.2004 14:16:27
Sascha
Also, ich versuche noch einmal, das Problem umfassend zu erklären:
Ausgangssituation ist wie folgt - ich habe ein Tabellenblatt, in das ich mir per Index-Befehl mit Vergleich aus einer anderen Datei die Zellenwerte für eine Matrix der Größe 100x50 besorge. Hierbei darf ich den Speicherort der anderen Datei nicht ändern. Mein Befehl für diese Aktion sieht also beispielsweise so aus:
=INDEX('G:\03_Pfadangabe1\Unterverzeichnis1\Unterverzeichnis2\Unterverzeichnis3\[Zieldatei.xls]Summary'!$E$332:$BK$360;VERGLEICH($B19;'G:\03_Pfadangabe1\Unterverzeichnis1\Unterverzeichnis2\Unterverzeichnis3\[Zieldatei.xls]Summary'!$C$332:$C$360;FALSCH);VERGLEICH(H$2;'G:\03_Pfadangabe1\Unterverzeichnis1\Unterverzeichnis2\Unterverzeichnis3\[Zieldatei.xls]Summary'!$E$3:$BK$3;FALSCH))
Mit ein paar WENN() abfragen komme ich so sehr schnell auf 1024 Zeichen. Ich suche jetzt nach einer Möglichkeit, die lange Pfadangabe in der Formel zu vermeiden, so dass ich die 1024 Zeichen nicht erreiche. Dies geht, wie du schon sagtest, durch das gleichzeitige Offenhalten der Zieldatei bei der Eingabe der Formel, aber halt auch nur für diese Zeit. Wenn man später einmal die Verknüpfung ändern möchte, dann schlackert Excel mit den Ohren.
Hoffe, dass du mit der Beschreibung etwas anfangen kannst.
Danke im Voraus.
Sascha.
Anzeige
Nix Neues von meiner Seite her...
meiner
Hi Sascha,
...habe dir inzwischen alle für mich denkbaren Ansätze beschrieben.
Da wohl jede Lösung für sich gewisse Einbußen an Komfort mit sich bringt, musst du das für dich kleinste Übel heraussuchen:
Entweder Hilfsspalten und Probleme beim Kopieren, Verknüpfungen und Probleme mit der Dateigröße, INDIREKT und die Notwendigkeit der zu öffnenden Quelldatei, nicht mehr editierbare Formeln etc...
Oder eben mit VBA hantieren oder oder oder...
Grüße Boris
AW: Nix Neues von meiner Seite her...
25.08.2004 14:33:19
meiner
Okay, vielen Dank an alle für die Hilfe.
Ich werde mal schauen, wie sich das Problem am günstisten lösen lässt. Vielleicht fällt mir auch noch etwas völlig Revolutionäres ein ;-)
Sascha.
Anzeige
Warum nicht so eine einfache Lösung?
Beate
Hallo Sascha,
probier doch mal folgendes:
Makro, dass automatisch alle verknüpften Dateien öffnet ins Codefenster "dieseArbeitsmappe" (deiner Datei mit der INDIREKT-FORMEL) einfügen :

Private Sub Workbook_Open()
Dim arLinks As Variant
Dim intIndex As Integer
Application.ScreenUpdating = False
arLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(arLinks) Then
For intIndex = LBound(arLinks) To UBound(arLinks)
ActiveWorkbook.OpenLinks arLinks(intIndex)
Next intIndex
Else
MsgBox "The active workbook contains no external links."
End If
Application.ScreenUpdating = True
End Sub

Desweiteren hier ein Makro, was vor dem Schließen der aktiven Datei alle anderen Dateien ohne Speichern schließt (mit Ausnahme der Arbeitsmappe, aus der das Makro ausgeführt wird) - muss ins gleiche Codefenster :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:=False
End If
Next w
End Sub

Dann kannst ohne Probleme deine INDIREKT-Formel behalten und deine Datei bleibt klein,
Die Makros wirst du doch kopiert kriegen.
Gruß,
Beate
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige