WulfmanGER
Commander
- Registriert
- Juli 2005
- Beiträge
- 2.317
Hallo zusammen,
ich hab eine Excel-Tabelle (Excel 2013) die unter die Kategorie "Killer-App" fällt . Mein R7-2700X darf hier regelmäßig rödeln (bei jeder Änderung erstmal 30sek warten...). Die Ursache ist relativ schnell gefunden - die frage ist wie ich das ganze dann auf Performance optimiere:
Tabelle 1 "Daten":
(ich liste nur die relevanten Spalten auf)
Die Formeln:
P: fixe eingabe
Q: {=WENNFEHLER(INDEX(Auflösungen!C:C;VERGLEICH(1;(AD2>=Auflösungen!A:A)*(AD2<=Auflösungen!B:B);0));"")} [MATRIXFORMEL!]
AD: =WENN(ISTLEER(P2);"";WERT(LINKS(P2;FINDEN("x";P2)-1))*WERT(RECHTS(P2;LÄNGE(P2)-FINDEN("x";P2))))
Das ganze dann für ca. 17.000+ Zeilen. Die Performanceprobleme kamen mit den Formeln in Q und AD (das Feature kam Zeitgleich; früher hab ich Q händisch gesetzt - war mir aber zu Arbeitsintensiv - und förderte Flüchtigkeitsfehler). Weitere Formeln sind nicht Enthalten (ein paar Zeilen haben noch eine (temporäre) mini-Formel: wenn in AA etwas steht, dann zeige mir was in B steht). In AD muss ich mit ISTLEER arbeiten, da ich bei einigen Einträgen keine Auflösung habe.
Tabelle 2: "Auflösungen":
Keine Formeln
=> Also keine sonderlich große Tabelle.
In der Tabelle "Daten" hab ich ca. 500 "Varianten" bei Auflösungen - daher hab ich das so versucht zu "strukturieren" ... sonst könnte man ja ein einfaches "wenn 1280x720, dann 720p" machen ... bzw. einfacher index-vergleich. Das war mein erster Ansatz, scheiterte nur später ...
Jetzt wäre also die Idee die beiden Formeln in "Daten" Q und AD zu optimieren. In AD muss ich kompliziert aus die beiden Werte in P multiplizieren. Könnte mir vorstellen das dieses einfacher geht. Lösung hab ich damals aber keine gefunden. "Ersetze x durch * und berechne" . Spalte Q knallt natürlich auch rein. Das Problem ist das ich einen Wert in AD habe der so natürlich nicht in der Tabelle "Auflösungen" steht - der befindet sich zwischen Min/Max. Daher musste ich mit dieser Matrixformel arbeiten.
Ich kann natürlich ausstellen das Änderungen fortwährend Aktualisierungen anstoßen ... da hatte ich auch versucht - gab dann aber andere Probleme (mit temporären Formeln die ich nicht ohne Fehler "ziehen" konnte). Daher leider nicht machbar.
Auf VBA möchte ich verzichten - hier könnte ich natürlich etwas schreiben, was mir auf Knopfdruck das Format ermittelt. Möchte aber in dieses Relikt (die Tabelle ist mittlerweile gut 20 Jahre alt!) keine Programmierzeit mehr investieren.
Vielleicht hat hier jemand eine bessere Formel? Oder eine einfache idee das sauberer umzusetzen.
Danke schon mal
ich hab eine Excel-Tabelle (Excel 2013) die unter die Kategorie "Killer-App" fällt . Mein R7-2700X darf hier regelmäßig rödeln (bei jeder Änderung erstmal 30sek warten...). Die Ursache ist relativ schnell gefunden - die frage ist wie ich das ganze dann auf Performance optimiere:
Tabelle 1 "Daten":
(ich liste nur die relevanten Spalten auf)
P | Q | AD | |
1 | Auflösung | Bildformat | Hilfsspalte "Pixel" |
2 | 1280x720 | 720p | 921600 |
Die Formeln:
P: fixe eingabe
Q: {=WENNFEHLER(INDEX(Auflösungen!C:C;VERGLEICH(1;(AD2>=Auflösungen!A:A)*(AD2<=Auflösungen!B:B);0));"")} [MATRIXFORMEL!]
AD: =WENN(ISTLEER(P2);"";WERT(LINKS(P2;FINDEN("x";P2)-1))*WERT(RECHTS(P2;LÄNGE(P2)-FINDEN("x";P2))))
Das ganze dann für ca. 17.000+ Zeilen. Die Performanceprobleme kamen mit den Formeln in Q und AD (das Feature kam Zeitgleich; früher hab ich Q händisch gesetzt - war mir aber zu Arbeitsintensiv - und förderte Flüchtigkeitsfehler). Weitere Formeln sind nicht Enthalten (ein paar Zeilen haben noch eine (temporäre) mini-Formel: wenn in AA etwas steht, dann zeige mir was in B steht). In AD muss ich mit ISTLEER arbeiten, da ich bei einigen Einträgen keine Auflösung habe.
Tabelle 2: "Auflösungen":
A | B | C | |
1 | min | max | Format |
2 | 1.300.000 | 2.138.400 | 1080p |
3 | 593.920 | 1.003.520 | 720p |
4 | ... | ... | 4k |
5 | ... | ... | 2k |
6 | ... | ... | SD |
Keine Formeln
=> Also keine sonderlich große Tabelle.
In der Tabelle "Daten" hab ich ca. 500 "Varianten" bei Auflösungen - daher hab ich das so versucht zu "strukturieren" ... sonst könnte man ja ein einfaches "wenn 1280x720, dann 720p" machen ... bzw. einfacher index-vergleich. Das war mein erster Ansatz, scheiterte nur später ...
Jetzt wäre also die Idee die beiden Formeln in "Daten" Q und AD zu optimieren. In AD muss ich kompliziert aus die beiden Werte in P multiplizieren. Könnte mir vorstellen das dieses einfacher geht. Lösung hab ich damals aber keine gefunden. "Ersetze x durch * und berechne" . Spalte Q knallt natürlich auch rein. Das Problem ist das ich einen Wert in AD habe der so natürlich nicht in der Tabelle "Auflösungen" steht - der befindet sich zwischen Min/Max. Daher musste ich mit dieser Matrixformel arbeiten.
Ich kann natürlich ausstellen das Änderungen fortwährend Aktualisierungen anstoßen ... da hatte ich auch versucht - gab dann aber andere Probleme (mit temporären Formeln die ich nicht ohne Fehler "ziehen" konnte). Daher leider nicht machbar.
Auf VBA möchte ich verzichten - hier könnte ich natürlich etwas schreiben, was mir auf Knopfdruck das Format ermittelt. Möchte aber in dieses Relikt (die Tabelle ist mittlerweile gut 20 Jahre alt!) keine Programmierzeit mehr investieren.
Vielleicht hat hier jemand eine bessere Formel? Oder eine einfache idee das sauberer umzusetzen.
Danke schon mal