Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable Formeln mit Text

Variable Formeln mit Text
Enrico
Sehr geehrte Forumsmitglieder,
ich komme leider ohne Hilfe nicht weiter und meine Suche war bisher auch erfolglos...
Ich hab eine Datei, in der jeden Monat ein Tabellenblatt angelegt wird, z.B: "2010-12"
Desweiteren habe ich eine Uebersichtstabelle, in der eine Formel auf genau dieses Tabellenblatt 'ziehlt', in meinem Fall eine SumIf (SummeWenn).
Beispiel Formel: SUMIF('2010-12'!$E$7:$E$114,LUP!$A7,'2010-12'!$AL$7:$AL$114)
Da die Tabellenblaetter der verschiedenen Monate immer identisch sind, macht es keinen Spass in jeder Formel das Tabellenblatt neu anzugeben....
Gibt es eine Moeglichkeit die obige Formel so variabel zu gestalten, dass ich nur noch das Jahr und den Monat aus einer anderen Zelle vorgebe und die Formel dann den Baustein "'Jahr-Monat'!" variabel inne hat und auch berechnet wird?
Mit Concatenate (ich glaube verketten in deutsch), bekomme ich zwar den richtigen String hin, aber ich schaffe es nicht, dass Excel dann aus dem String die Formel "erkennt" und berechnet...
mit indirect() ist es mir mittlerweile gelungen auf andere zellen zuzugreifen, wenn ich den Namen (2010-12) in einer Zelle stehen habe...ich moechte aber an die Funktion diesen Namen uebergeben.
Fuer eure Hilfe danke ich schon mal im Voraus!!
Falls ich mich uunverstaendlich ausgedrueckt habe, einfach noch mal kurz melden....
Gruesse aus Shanghai,
Enrico
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variable Formeln mit Text
30.03.2010 04:34:02
Enrico
Noch eine Anmerkung:
Wenn man aus der Verkettungsformel das Ergebnis via "Kopieren, Einfuegen Wert" nimmt, dann berechnet er auch alles richtig....nun gilt es also nur zu klaeren, ob man diesen laestigen Schritt zwischendrin weg lassen kann ;-)
AW: Variable Formeln mit Text
30.03.2010 05:42:56
Enrico
So, mittlerweile bin ich soweit, dass man durch verschachtelung verschiedener concatenate-funktionen einen richtig schoenen "funktionsstring" zusammengebaut bekommt.
jetzt fehlt nur noch das einfuegen in die zelle und ausfuehren der funktion, am liebsten ohne laestiges kopieren und "F2-Enter"-Druecken. In Vba koennte ich das umsetzen, aber rein in excel bekomm ich es nicht hin...
wenn jemand nen Tipp hat, waer ich sehr dankbar :)
mein formel hat mittlerweile folgendes ausmass und funktioniert theroetisch auch mit dem extra schritt:
=CONCATENATE(CONCATENATE("=IF(ISERROR(SUMIF('",M36,"-",M37,"'!",M38,",",M40,"!",M39,",'",M36,"-",M37,"'!",M42,") "),CONCATENATE("/SUMIF('",M36,"-",M37,"'!",M38,",",M40,"!",M39,",'",M36,"-",M37,"'!",M41,"))=TRUE,") ,CONCATENATE(M35,",SUMIF('",M36,"-",M37,"'!",M38,",",M40,"!",M39,",'",M36) ,CONCATENATE("-",M37,"'!",M42,") /SUMIF('",M36,"-",M37,"'!",M38,",",M40,"!",M39,",'",M36,"-",M37,"'!",M41,"))"))
Anzeige
AW: Variable Formeln mit Text
30.03.2010 08:45:14
fcs
Hallo Enrico,
mit der Funktion INDIREKT kannst du auf die Zellbereich zugreifen, die SUMMEWENN verwenden soll.
Die Fehlerprüfung kanst du ggf. etwas verweinfachen, um Division durch 0 und fehlendes Tabellenblatt abzufangen.
Gruß
Franz
Tabelle1

 ABCD
1JahrMonatKriteriumErgebnis
2201001H10,2381
3201001H10,2381
4201002H0

Formeln der Tabelle
ZelleFormel
D2=WENN(ISTFEHLER(SUMMEWENN(INDIREKT("'"&A2&"-"&B2&"'!C2:C100"); C2;INDIREKT("'"&A2&"-"&B2&"'!D2:D100")) /SUMMEWENN(INDIREKT("'"&A2&"-"&B2&"'!C2:C100"); C2;INDIREKT("'"&A2&"-"&B2&"'!E2:E100")))=WAHR;;SUMMEWENN(INDIREKT("'"&A2&"-"&B2&"'!C2:C100"); C2;INDIREKT("'"&A2&"-"&B2&"'!D2:D100")) /SUMMEWENN(INDIREKT("'"&A2&"-"&B2&"'!C2:C100"); C2;INDIREKT("'"&A2&"-"&B2&"'!E2:E100")))
D3=WENN(ISTFEHLER(1 /SUMMEWENN(INDIREKT("'"&A3&"-"&B3&"'!C2:C100"); C3;INDIREKT("'"&A3&"-"&B3&"'!E2:E100")))=WAHR;;SUMMEWENN(INDIREKT("'"&A3&"-"&B3&"'!C2:C100"); C3;INDIREKT("'"&A3&"-"&B3&"'!D2:D100")) /SUMMEWENN(INDIREKT("'"&A3&"-"&B3&"'!C2:C100"); C3;INDIREKT("'"&A3&"-"&B3&"'!E2:E100")))
D4=WENN(ISTFEHLER(1 /SUMMEWENN(INDIREKT("'"&A4&"-"&B4&"'!C2:C100"); C4;INDIREKT("'"&A4&"-"&B4&"'!E2:E100")))=WAHR;;SUMMEWENN(INDIREKT("'"&A4&"-"&B4&"'!C2:C100"); C4;INDIREKT("'"&A4&"-"&B4&"'!D2:D100")) /SUMMEWENN(INDIREKT("'"&A4&"-"&B4&"'!C2:C100"); C4;INDIREKT("'"&A4&"-"&B4&"'!E2:E100")))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Anzeige
AW: Variable Formeln mit Text
30.03.2010 06:42:19
BoskoBiati
Hallo Enrico,
hier mal ein Ansatz:
Tabelle1

 ABC
1Januar10w
2Februar11x

Formeln der Tabelle
ZelleFormel
B1=SUMMEWENN(INDIREKT("'2010-"&TEXT(MONAT(A1&1); "00")&"'!B1:B5"); C1;INDIREKT("'2010-"&TEXT(MONAT(A1&1); "00")&"'!C1:C5"))
B2=SUMMEWENN(INDIREKT("'2010-"&TEXT(MONAT(A2&1); "00")&"'!B1:B5"); C2;INDIREKT("'2010-"&TEXT(MONAT(A2&1); "00")&"'!C1:C5"))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
2010-01

 BC
1w1
2e2
3t3
4w4
5w5


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Bosko
Anzeige
AW: Variable Formeln mit Text
30.03.2010 08:33:08
Enrico
Vielen Dank!!
Mit Hilfe deines Tipps bin ich auf meinen Fehler gestossen...Natuerlich muss man die Indirect-Funktionen auch noch verschachteln :-)
Auf jeden Fall funktioniert es jetzt so wie ich es gern haben wollte...
aus einem umstaendlichen 2-Schritt-System mit 2 Hammerformeln, hat man jetzt eine Formel, die durch einfach Eingabe noch angepasst werden kann.
Ergebnis-Formel:
=IF(ISERROR(SUMIF(INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$8),$A8,INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$10)) /SUMIF(INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$8),$A8,INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$9))) =TRUE,"",SUMIF(INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$8),$A8,INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$10)) /SUMIF(INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$8),$A8,INDIRECT("'"&$BJ$7&"-"&C$5&"'!"&$BJ$9)))
Gruesse aus Shanghai, wo der Feierabend bald beginnt ;-)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Formeln mit Variablen in Excel erstellen


Schritt-für-Schritt-Anleitung

  1. Tabellenblatt-Namen definieren: Erstelle eine Übersichtstabelle, in der Du das Jahr und den Monat in separaten Zellen (z.B. A1 für Jahr und B1 für Monat) eingibst.

  2. Verwenden der INDIRECT-Funktion: Nutze die Funktion INDIREKT, um auf das gewünschte Tabellenblatt zuzugreifen. Die Syntax sieht wie folgt aus:

    =INDIREKT("'"&A1&"-"&B1&"'!C2:C100")
  3. Verkettung der Formel: Um die Formel dynamisch zu gestalten, kannst Du die VERKETTEN-Funktion (oder CONCATENATE in Englisch) verwenden, um die Teile der Formel zusammenzufügen:

    =CONCATENATE("=SUMIF(",INDIREKT("'"&A1&"-"&B1&"'!C2:C100"),",C2,",INDIREKT("'"&A1&"-"&B1&"'!D2:D100"),")")
  4. Einfügen der Formel: Um die dynamische Formel in eine Zelle einzufügen, musst Du dies manuell tun oder VBA verwenden, da Excel keine Funktion bietet, um eine Formel direkt aus einer Zelle auszuführen.

  5. Formel testen: Stelle sicher, dass die Formel korrekt funktioniert, indem Du verschiedene Werte in den Zellen A1 und B1 eingibst.


Häufige Fehler und Lösungen

  • Fehler: #NAME?
    Lösung: Überprüfe, ob alle Zellbezüge korrekt sind und ob die INDIREKT-Funktion richtig angewendet wird.

  • Fehler: #BEZUG!
    Lösung: Stelle sicher, dass das angegebene Tabellenblatt existiert und die Zellbereiche korrekt definiert sind.

  • Fehler: Falsches Ergebnis
    Lösung: Überprüfe die Verkettung und stelle sicher, dass alle Teile der Formel gemäß Deinen Anforderungen korrekt zusammengefügt wurden.


Alternative Methoden

  • VBA-Lösungen: Wenn Du häufig dynamische Formeln einfügen musst, kann es hilfreich sein, ein Makro zu erstellen, das dies automatisiert. VBA bietet mehr Flexibilität, um die Formeln direkt in die Zellen einzufügen.

  • Verwendung der TEXT-Funktion: Manchmal kann die TEXT-Funktion nützlich sein, um Zahlen in Text umzuwandeln, bevor Du sie in Formeln einfügst.


Praktische Beispiele

  1. Beispiel für SUMIF:

    =SUMIF(INDIREKT("'"&A1&"-"&B1&"'!C2:C100"), C2, INDIRECT("'"&A1&"-"&B1&"'!D2:D100"))
  2. Kombination von Bedingungen:

    =IF(ISERROR(SUMIF(INDIRECT("'"&A1&"-"&B1&"'!C2:C100"), C2, INDIRECT("'"&A1&"-"&B1&"'!D2:D100"))), "Fehler", SUMIF(INDIRECT("'"&A1&"-"&B1&"'!C2:C100"), C2, INDIRECT("'"&A1&"-"&B1&"'!D2:D100")))

Tipps für Profis

  • Verwende die CONCATENATE-Funktion: Diese Funktion kann helfen, komplexe Formeln effizienter zu erstellen. In Deutsch heißt sie VERKETTEN.

  • Excel Text Variablen: Achte darauf, dass Du die Textvariablen korrekt anwendest, um sie in Formeln zu integrieren.

  • Regelmäßige Überprüfung: Überprüfe regelmäßig, ob die Tabellenblätter korrekt benannt sind und dass die Formeln wie gewünscht funktionieren, insbesondere nach Monatswechseln.


FAQ: Häufige Fragen

1. Wie kann ich eine dynamische Formel in Excel erstellen?
Verwende die INDIREKT-Funktion gemeinsam mit der VERKETTEN-Funktion, um die Formel basierend auf Zellinhalten zu erstellen.

2. Gibt es eine Möglichkeit, die Formel automatisch auszuführen?
Ohne VBA ist es nicht möglich, die Formel automatisch auszuführen. Du musst sie manuell eingeben oder ein Makro verwenden.

3. Wie kann ich sicherstellen, dass die Formeln immer korrekt sind?
Verwende IF- und ISERROR-Funktionen, um Fehler abzufangen und sicherzustellen, dass die Formeln auch bei Änderungen der Daten korrekt bleiben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige