Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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
Inhaltsverzeichnis

Alternative zu INDIREKT möglich?

Alternative zu INDIREKT möglich?
07.03.2017 09:03:45
erichm
Hallo,
ich habe eine Datei bei der ich sehr oft noch INDIREKT verwende (mit Hilfe des Forums hier konnte ich einen Teil bereits durch eine Alternative ersetzen).
Da die Datei jedoch sehr groß ist (hochgeladen habe ich nur einen reduzierten Teil) könnte ich sicherlich die Performance noch verbessern, wenn auch die restlichen INDIREKT zumindest weitgehend ersetzt werden können.
Ich habe eine Musterdatei hochgeladen.
Alle betroffenen Formeln habe ich hellblau markiert; ebenso die Tabellen hellblau markiert in denen solche Formeln enthalten sind. Die markierten Formeln werden immer nach unten kopiert, es reicht also wenn die oberste geändert werden kann.
Ich hoffe die Informationen reichen um Änderungsvorschläge zu ermöglichen; eine Beschreibung der Gesamtdatei wäre hier zu aufwändig.
http://filehorst.de/d/bydFuCGk
Besten Dank für eine Hilfe.
mfg

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alternative zu INDIREKT möglich?
07.03.2017 09:06:44
Der
Hallo,
beim Horst hole ich nix ab. Lade die Datei doch einfach hier hoch.
Gruß
Michael
AW: Alternative zu INDIREKT möglich?
07.03.2017 09:33:23
erichm
Danke Nik; die "einfachen" Änderungen hatte ich bereits umgesetzt. Ich scheitere an den Änderungen wenn die Formeln
Summe
Zählenwenn
MAX u.a.
enthalten sind; habe nochmals eine verkleinerte Datei hochgeladen.
mfg
Anzeige
AW: Alternative zu INDIREKT möglich?
07.03.2017 09:36:22
Daniel
Hi
Wenn du mit Indirekt die Zeilen- und Spaltennummern berechnet, kannst du es durch Index ersetzen.
Wenn du Tabellenblattnamen oder Namen als Zellbezug "berechnest", musst du bei Indirekt bleiben.
Gruß Daniel
AW: Alternative zu INDIREKT möglich?
07.03.2017 09:46:21
erichm
Danke - das konnte ich teilweise bereits umsetzen; wie vorhin beschrieben scheitere ich an bestimmten Formeln wie
Summe
Zählenwenn
Max u.a.
mfg
AW: Alternative zu INDIREKT möglich?
07.03.2017 11:00:26
Rainer
Hallo Erich,
das kannst du umgehen, wenn du das Konzept der Tabelle änderst.
Also die ZÄHLENWENN Auswertung in dem Blatt erledigst wo gezählt werden soll und dann das Ergebnis ins Zielblatt verknüpfst.
Gruß,
Rainer
Anzeige
AW: Alternative zu INDIREKT möglich?
07.03.2017 11:19:06
erichm
Danke Rainer; da besteht das Problem, dass die Anzahl der Spalten und Zeilen je nach Datenimport sehr unterschiedlich sind. Da kann ich die Zählenwenn-Formel (u.a.) nicht so fixieren dass die Berechnungen immer passen.
Habe jetzt eine Formel auf INDEX ändern können, Berechnungen stimmen - aber es gibt einen Hinweis "Zirkelbezug"?
Siehe Tabelle Auswahl, Spalte L:
https://www.herber.de/bbs/user/111993.xlsx
mfg
AW: Alternative zu INDIREKT möglich?
07.03.2017 14:06:26
Der
Ich habe mir die Datei mal angesehen. Was ich nicht ganz verstehe ist, dass Du anscheinend die Daten aus der Lasche "orig2" per SVERWEIS in die Tabelle "korr" holst.
Ich weiß zwar nicht, was Du genau damit bezwecken willst, da die Daten auf den ersten Blick identisch sind. Eventuell könnte man das ganze auch mit Power Query besser lösen.
Anzeige
AW: Alternative zu INDIREKT möglich?
07.03.2017 18:01:05
erichm
Hallo,
danke für die Rückmeldung.
korr steht für Korrektur, das bedeutet, dass für die endgültige Analyse der Zahlen aus der Tabelle org2 ab einer bestimmten Zeile die Daten übertragen werden. Ich habe das in der Anlagedatei entsprechend dargestellt. Durch den Beginn in A2 mit 4 aufsteigend, werden die Werte pro Zeile aus org2 geholt.
Das ist zwingend erforderlich für die Berechnungen.
In der Anlage habe ich bereits den Formelvorschlag von Daniel in der Tabelle Auswahl umgesetzt.
https://www.herber.de/bbs/user/112009.xlsx
Danke nochmal.
mfg
Anzeige
warum nicht gleich VBA?
07.03.2017 14:58:20
Michael
Hi,
mit ein paar Zeilen VBA läßt sich die Tabelle "korr" aus "orig2" erzeugen, wobei die Spaltensummen mitgeführt werden, um in "Auswahl" (im Moment in Spalte J - zum Vergleich) ausgegeben werden zu können.
In einem weiteren Rutsch werden die Überschriften & Spaltenbuchstaben aus "korr" in "Auswahl" eingetragen.
Ich mag jetzt nicht groß analysieren, was in "ident" und "senkr" für Berechnungen vorgenommen werden, aber prinzipiell müßte man die im Makro auch "mitführen" können: auf zwei, drei Arrays hin oder kommt soll es ja nicht ankommen.
Das Makro:
' allg. Modul, z.B. Modul1
Option Explicit
Sub o2k()
Dim oSh As Worksheet, kSh As Worksheet
Dim o, k, kA, kS ' Bereich in orig, in korr und Spalte A/Summe in korr
Dim z&, s&, i&, zMax&, sMax&
Dim w& ' ist das immer ganzzahlig? sonst double oder so
Set oSh = Worksheets("orig2")
Set kSh = Worksheets("korr")
' hier wird stillschweigend von einer lückenlosen
' Nummerierung von 1 bis n ausgegangen...
o = oSh.Range("A1").CurrentRegion.Offset(1, 2)
With kSh
zMax = .Range("A" & .Rows.Count).End(xlUp).Row
' ... während hier beliebige Nummern in Spalte A stehen können
kA = .Range("A2:A" & zMax)
End With
sMax = UBound(o, 2) - 2
ReDim k(1 To UBound(kA), 1 To sMax)
ReDim kS(1 To sMax, 1 To 1)
For s = 1 To sMax
w = 0
For z = 1 To UBound(kA)
k(z, s) = o(kA(z, 1), s)
w = w + k(z, s)
Next
kS(s, 1) = w
Next
kSh.Range("C2").Resize(UBound(kA), sMax) = k
Sheets("Auswahl").Range("J3").Resize(sMax) = kS
' Nun noch die Überschriften/Spaltenbuchstaben aus orig in Auswahl:
o = Intersect(oSh.Range("A1").CurrentRegion.Offset(, 2), _
oSh.Range("1:2")).Value
ReDim k(1 To UBound(o, 2) - 2, 1 To 2)
For i = 1 To UBound(k)
k(i, 1) = o(1, i)
k(i, 2) = Split(Cells(1, i + 2).Address, "$")(1)
Next
Sheets("Auswahl").Range("B3").Resize(UBound(k), 2) = k
End Sub

Die Datei: https://www.herber.de/bbs/user/112001.xlsm
Schöne Grüße,
Michael
Anzeige
AW: warum nicht gleich VBA?
07.03.2017 18:09:21
erichm
Danke Michael.
Ich befürchte das ist für VBA zu kompliziert. Die Tabelle korr wird immer wieder mal dadurch geändert, dass der Übertrag der Werte aus der Tabelle org2 nicht immer ab Zeile 2 beginnt.
Ich habe dies bei meiner Antwort an "Der Steuerfuzzi" kurz beschrieben mit einer entsprechend angepassten Datei:
https://www.herber.de/forum/messages/1546019.html
Bei der Vorgehensweise ist aber immer gleich: die Reihenfolge der zu übertragenden Zeilen ist immer von oben nach unten gleich. Lediglich der Beginn in "korr" ist eben unterschiedlich. In der Beispielsdatei beginnt dies mit 4 (in der Spalte A steht eigentlich ein Datum - aufsteigend oder absteigend; zwecks besserer Darstellung habe ich einfach durchnummeriert von 1 aufwärts).
mfg
Anzeige
AW: warum nicht gleich VBA?
07.03.2017 18:22:14
erichm
noch eingefallen:
Da die Spalte B in den Tabellen org2 und korr leer ist, könnte ich problemlos auch die Nummerierung belassen, nur eben in Spalte B, da in Spalte A jeweils "Datum xy" steht.
mfg
AW: warum nicht gleich VBA?
07.03.2017 18:42:00
Michael
Hi,
ich bin auf dem Sprung, also nur kurz: habe ich die Logik richtig verstanden, daß orig2 IMMER von 1 - n nummeriert ist (und zwar lückenlos), in korr die Zeilennummern aber mehrfach (oder meinetwegen auch gar nicht) vorkommen dürfen?
Dann ist die Anpassung auf (jeweils) Spalte B völlig unproblematisch.
Gruß,
M.
AW: warum nicht gleich VBA?
07.03.2017 23:11:58
erichm
Hallo Michael,
also ich habe die beiden Varianten ggü.-gestellt:
http://s1.bild.me/bilder/240416/5220944x.jpg
http://s1.bild.me/bilder/240416/3092078x.jpg
Es wäre aber kein Problem wenn man die leere Spalte B in org2 nutzt und von Zeile 2 abwärts durchnummeriert: 2 bis xy;
Dann könnte in Tabelle korr die Übertragung der Werte mit der Nummer erfolgen (mache ich per Formel mit SVERWEIS).
Danke nochmal.
mfg
Anzeige
AW: warum nicht gleich VBA?
08.03.2017 14:51:08
Michael
Hi,
es hat mich nur irritiert, daß in Deiner Originaldatei orig1 nur 10 Werte enthält, korr jedoch übereinstimmend 1-10, dann aber noch 20 mal 10...
Hier auf Spalte B geändert: nur in korr, es wird jeweils die Zeile mit dieser Nummer aus orig2 übernommen.
Warum noch SVerweis?
Datei: https://www.herber.de/bbs/user/112042.xlsm
Schöne Grüße,
Michael
AW: warum nicht gleich VBA?
12.03.2017 18:16:20
erichm
Hallo Michael,
wieder mal eine perfekte Lösung:
- in "korr" haben wir zu Beginn eingefügt, dass die Zellen geleert werden
- mit der Nummerierung haben wir noch mehr Flexibilität für bestimmte Prüfzwecke
- da wir einige indirekt-Formeln noch abändern konnten haben wir jetzt eine deutlich bessere Performance!!
- den meisten Zeitbedarf dürfte jetzt nur noch die Berechnung in der Tabelle "ident" haben; aber das ist in einem noch vertretbaren Rahmen
Unser Ziel haben wir hier auf alle Fälle schon erreicht.
Nochmals allerbesten Dank!!
mit den Rechenmöglichkeiten über VBA haben wir uns schon beschäftigt, aber da stehen wir noch ganz am Anfang :)
mfg
Anzeige
AW: Alternative zu INDIREKT möglich?
07.03.2017 15:19:01
Daniel
Hi
mal ein Beispiel:
die Formel
=SUMME(INDIREKT("korr!"&C3&":"&C3))

lässt sich so mit INDEX schreiben, allerdings muss in Zelle C3 die Spaltennummer stehen, nicht der Spaltenbuchstabe:
=SUMME(INDEX(korr!$1:$1048576;0;C3))
Gruß Daniel
AW: Alternative zu INDIREKT möglich?
07.03.2017 17:55:23
erichm
DANKE!
Damit habe ich eine Alternative bereits gefunden.
mfg
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige