Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1684to1688
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

if Schleife zu langsam

if Schleife zu langsam
01.04.2019 16:09:41
xkurtx
Guten Tag,
ich habe eine Excel Datei mit rund 10K Zeilen.
Ich will alle Zeilen löschen, in denen 2 Kriterien nicht erfüllt sind.
Das habe ich mit einer if-Schleife versucht, was aber sehr lange dauert.
Kann man das optimieren bzw. kennt ihr eine schnellere Variante, um das zu schaffen?
Mein Code:
With w1
For i = zeile to 5 step -1
If .cells(i,4) "Opt1" And_
. celss(i,4) "Opt2" Then ActiveSheet.Rows(i).EntireRow.Delete
Next i
End With
Danke!

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
PowerQuery Lösung
01.04.2019 16:21:30
ChrisL
Hi
Den Filter zu nutzen geht relativ schnell (Kriterium Opt1 und Opt2), dann alle sichtbaren Zellen löschen (SpecialCells.EntireRow).
Oder Hilfsspalte mit Formel =WENN(ODER(D5="Opt1";D5="Opt2");"X";"") und dann ebenfalls mit SpecialCells die Konstanten löschen).
Da es mir aber heute PQ angetan hat, eine entsprechend Lösung:
https://www.herber.de/bbs/user/128825.xlsx
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each [Wert] "Opt1" and [Wert] "Opt2")
in
#"Gefilterte Zeilen"
cu
Chris
Anzeige
AW: PowerQuery Lösung
01.04.2019 17:36:19
Luschi
Hallo Chris,
endlich hat auch LinkedIn (vormals Video2Brain) begriffen, daß es wichtig ist, die neuen Technologien von Microsoft vorzustellen, anstatt die 7. Auflage von 'Grundlagen in Excel / Word / Access' aufzuwärmen.
siehe hier: https://de.linkedin.com/learning/power-query-fur-fortgeschrittene-excel-und-power-bi-desktop?trk=featured-topics-card_learning_card_title&upsellOrderOrigin=trk_default_learning
War vorher schon ein bischen skeptisch, aber das ist ein gelungener Einstieg mit vielen Tipps - wieso, warum, weshalb!!!
Wer jetzt bei Massendaten immer noch nach Vba schreit, sollte seinen Excel-Anspruch überdenken.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: PowerQuery Lösung
01.04.2019 19:08:28
ChrisL
Hi Luschi
Danke für den Link und die Ergänzung. Ich habe mir vorgenommen nun öfters mal eine PQ Lösung zu posten.
Ein wenig Access-Vorkenntnisse oder ein Grundverständnis für Daten und Abfragen helfen beim Einstieg.
Einzige Kritik an PQ ist der unmögliche Syntax vom Editor...
Excel   	=IF(test, value_if_true, value_if_false)
Power Query 	=if test then value_if_true else value_if_false
Quelle:
https://www.excelguru.ca/blog/2014/08/27/the-if-function-in-power-query/
cu
Chris
AW: PowerQuery Lösung
01.04.2019 19:16:51
Daniel
Hi
braucht man für PQ den Editor?
ich dachte immer, damit könnte man sich die gewünschte Auswertung/Umformung mit ein paar Klicks zusammenstellen?
vielleicht wäre es für den Einsteiger in das Arbeiten mit PQ hilfreicher, wenn du nicht die kryptischen Aufzeichnungen, zeigen würdest, sondern lieber die Menüpunkte, die man anklicken muss um das Ergebnis zu erreichen?
Gruß Daniel
Anzeige
AW: PowerQuery Lösung
01.04.2019 20:32:17
Luschi
Hallo Daniel,
wer erwartet, das man bei PQ & PPvt mit ein paar Klicks auf der Oberfläche Alles unter Kontrolle hat, der sollte sich besser informieren - und genau dafür ist das erwähnte Video ein sehr guter Einstieg.
Und der Rest ist Fleißarbeit und testen, probieren und nachfragen.
Ich werde keine Beschreibungen zum Nachahmen liefern, sondern Fakten in Form von Skripten in der M-Sprache.
Es ist aber auch so, daß in deutschsprachigen EDV-Verlagen es kaum Spezialthemen zu solchen Problemfeldern gibt, wahrscheinlich bringen aufgewärmte Grundlagenthemen mehr Verkaufserfolg.
Die Amerikaner sind da schon wesentlich weiter und veröffentlichen auf Teufel komm raus.
Also gerade bei PQ & PPvt ist große Eigeninitiative gefragt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: PowerQuery Lösung
01.04.2019 21:03:49
Daniel
naja es gibt Menschen, die versprechen dass sich viele Aufgaben mit der PQ mit ein paar einfachen Mausklicks lösen lassen.
Wenn das nicht zutrifft, sollte man das auch nicht schreiben, sonst weckt man falsche Erwartungen.
Gruß Daniel
Wörtlich genommen: ... die haben auch noch Recht!
01.04.2019 23:59:20
Günther
"viele" "alle"
Und mit ETWAS Eigen-Initiative lassen sich so einige Sachen auf diese Weise nach 10-20 Stunden Einarbeitung erledigen.
Und nein, ich werde hier keine Klicke-di-Klick-Anleitungen ohne Zusatzinformationen geben.
Gruß
Günther
AW: Wörtlich genommen: ... die haben auch noch Recht!
02.04.2019 00:51:40
Luc:-?
20 Stunden sind 3 volle Arbeitstage und du versprichst immer "wenige Klicks".
Nun gut, kannst ja weiter machen wie bist her.
Ich hoffe nur, du liest inzwischen die Fragestellungen etwas sorgfältiger.
Gruß Daniel
Anzeige
Ich verbitte mir den Missbrauch meines Nicks ...
02.04.2019 01:29:28
Luc:-?
…durch dich, Daniel;
allerdings ist damit auch klar, dass du es warst, der mir beweisen wollte, dass der nicht zur Identifizierung ausreicht, denn du bist, dank deiner Nicht-Kontrolle, auch in die Forumsfalle getappt. :-]
Sollte das bei dir jetzt symptomatisch wdn, behalte ich mir entsprd Schritte vor!
Im Übrigen hat Günther recht → weitergehende Erläuterungen nur bei Nachfrage, nicht, weil es ein Daniel gern so hätte, der nicht nur der PQ-Fraktion stets Werbung unterstellen möchte…
Luc :-?
AW: Ich verbitte mir den Missbrauch meines Nicks ...
02.04.2019 01:54:02
Günther
Danke, Luc:-?
So ganz allmählich fängt dieses Gehabe von D. an, unappetitlich zu werden.
Immerhin ist mir das so sauer aufgestoßen, dass ich meinen Foren-Textbausteinen einen weiteren hinzugefügt habe, wo ich deutlich auf das Thema PQ und die (Un)Möglichkeiten bzw. Nur-Nehmer-Mentalität eingehe und auch erkläre, dass bzw. warum ich nicht mehr freigiebig mit erstellten Lösungen um mich werfe, ohne zu wissen, dass ein Fragesteller die Arbeit auch durch eigenes Zutun un Initiative würdigt. (Wird noch etwas überarbeitet, aber das Prinzip bleibt: http://www.excel-ist-sexy.de/power-query-auch-etwas-fuer-dich/)
Gruß
Günther
Anzeige
Ich kann Deine Reaktion verstehen, ...
02.04.2019 03:46:50
Luc:-?
…Günther,
aber viell hast Du doch etwas zu schnell mit einem Text auf Deiner WebSite reagiert, denn den solltest Du nochmal in Ruhe überlesen… ;-)
Du weißt ja sicher auch, dass ich nicht vorhabe, mich näher mit PQ und M auseinander zu setzen, aber was Recht und allgemeiner Foren-Usus ist, soll's auch bleiben. Und wenn nun mal endlich ein zeitgemäßes Tool für Xl existiert, muss man auch darauf verweisen dürfen, ohne dass sofort weitergehende Forderungen von Dritten erhoben wdn. Das ist ja bei Verweisen auf einschlägige WebSites idR auch nicht der Fall und mW hat auch noch keiner verlangt, dass ihm die Anfertigung einer Pivot-Tabelle erklärt wird. Nicht mal bei MatrixFmln müsste man das machen, denn die wdn ja schon in der Xl-Hilfe behandelt. Lese-Faulheit, Arbeitsstress hin oder her, muss man nun ja nicht auch noch unterstützen. Das entspräche auch nicht HWHs Forumshinweisen!
Kleinere, mitunter auch dauerhaftere Rivalitäten und resultierende Kabbeleien können ja mal vorkommen, das soll in Wissenschaftler­kreisen auch nicht anders sein, aber letztlich muss es doch um die Sache gehen, nicht um mehr oder weniger narzisstische Animosi­tä­ten. Was vorhanden ist, steht nun mal zV, ob es einem passt oder nicht. Das gilt nicht nur für PQ und PP, sondern auch für neuere Xl-Fktt wie bspw AGGREGAT, VerbundZellen, 3 MatrixFml-Typen, 3-dimensionales Berechnungsagieren von Xl (Stichwort TensorProdukt), Ermöglichung des Rechnens mit Farben und diskontinuierlichen Bereichen, VBA- und API-Nutzung inkl KlassenPgmmierung, Auslesen von BedingtFormat-RegelFmln im US-Original, Verweis auf UDFs im Archiv u.a. Für das alles gibt's Vertreter bzw Spezialisten, denen irgendwelchen Eigennutz in einem kostenfreien Forum zu unterstellen schlicht unredlich ist. Hier wird allein mit Nutzung u/o dankender Erwähnung „gezahlt“ und wer selbst das verweigert oder gar grdsätzlich von vornherein und primär eine andere Motivation (außer viell Interesse an kniffligen ProblemLösungen) unterstellen will, handelt unredlich. Es ist auch nicht nur Eigenwerbung, wenn jemand auf seine eigene WebSite hinweist, sofern diese ein Problem lösen hilft. Ansonsten ist es natürlich so, dass jeder hier mit seiner Anfrage bzw AW (der Nachwelt) eine Visitenkarte hinterlässt, deren Reputationsrelevanz von der Qualität seiner Anfrage bzw AW abhängt. Wobei auch hierbei gilt, nicht allein die Quanti-, sondern vor allem die Qualität macht's. Wie bei einem Handwerker, der quasi Werbung mit der eigenen Arbeit macht.
Morhn, Luc :-?
Anzeige
Sorry Luc, war keine Absicht.
02.04.2019 02:03:16
Daniel
Hab nur vergessen, das umzustellen.
Und wo ist das Problem mit Werbung ?
Natürlich machen Günther und Chris Werbung für die PQ.
Ist ja auch nichts schlechtes dabei, wenn man sich darum bemüht, solche neuen Methoden bekannt zu machen.
Ich finde nur, dass sie mit ihren Bemühungen, andere Menschen für die Anwendung der PQ zu gewinnen erfolgreicher sein könnten, und mach dazu auch konkrete Vorschläge.
Problematischer finde ich dann eher so Fälle, wenn jemand hochkomplexe UDFs als einfache Lösung anbietet, wenn das Problem auch mit einer einfachen Standardformel gelöst werden kann.
Gruß Daniel
Anzeige
Du kennst meine Meinung, ...
02.04.2019 04:02:02
Luc:-?
…Daniel,
lieber weniger und universeller als viele sehr spezielle Schnipsel, bei denen erfahrungsgemäß schnell die Übersicht verloren geht*. Sol­che UDFs sind eher als Pgmmierer-Ressourcen sinnvoll denn für den normalen Xl-Fml-Gebrauch. Anderenfalls sähe das Xl-Fkts­Inven­tar wohl von Anfang an ganz anders aus…
* Ich habe leider auch einiges mehrfach mit leicht abweichender Spezifikation, was dem Entwicklungsprozess geschuldet ist. Ich weiß aber, was wann sinnvoller ist, der NormalNutzer wohl eher nicht, kann es sich bei entsprd Kenntnissen dank OpenSource aber ggf erschließen. Bei Xl-Fktt kann er dagg nur probieren, was ihm bei meinen UDFs allerdings auch freisteht.
Morhn, Luc :-?
Anzeige
AW: PowerQuery Lösung
01.04.2019 20:44:45
ChrisL
Hi Daniel
Wenn jemand eine VBA Lösung erstellt finde ich es toll, wenn nebst der Antwortdatei auch der VBA Code ins Forum gestellt wird. So kann man sich als Mitleser schnell ein Bild zum Lösungsweg machen, ohne jedes mal die Datei öffnen zu müssen. Und so ist es mit PQ-Code eben auch.
In der Beispieldatei lassen sich die einzelnen PQ-Schritte sauber nachvollziehen. Mit Doppelklick ist man auch schon im Menü.
Die Grundfunktionalitäten von PQ kann ich in einem Beitrag nicht erklären (dafür gibt es diverse Tutorials). Wenn es darum geht eine ganz bestimmte Funktionalität im Menü zu suchen, helfe ich gerne.
cu
Chris
Sprache M und die Verlinkungen
02.04.2019 02:48:25
Luc:-?
Hallo, Luschi & Chris;
leider hast du, Chris, das im Deutschen unübliche Geschlecht von Syntax von der geruhsam mit alemannischem Akzent sprechenden Dame im Video übernommen. Schon das griechische σύνταξις (sýntaxis) kann durchaus weiblich sein wie bspw auch das Wort πόλις (pólis), denn ταξις heißt auch Ordnung.
Ansonsten frage ich mich, wieso hier MS eine neue Sprache kreieren musste, stehen doch diverse andere (auch im eigenen Haus!) zV. Insofern ist ExcelGurus Kritik zwar berechtigt, sein Vgl mit Xl aber nicht, denn M ist eine Script-Sprache, die mit der Xl-Fml-Notation ebensowenig wie VB zu tun hat. Jedem PgmmierKundigen, speziell in Basic- oder C-Varianten sollte der Unterschied zwischen einer Fkt und einer Anweisung klar sein (If-Bsp). Insofern verwundert das beim „Guru“ doch ziemlich. Dass IF (WENN) in Xl keine reine Fkt, son­dern dank FmlText-Interpreter mitunter eher als ein ZwischenDing zwischen beidem gehandhabt wird und andere Sprachen noch ganz andere Notationsarten haben könnten, sollte hierbei eher keine Rolle spielen.
Dass nun die Sprache M insgesamt einen noch umständlicheren Eindruck als VBA (oder SQL) macht, Luschi, ist nun auch nicht gerade werbe­wirksam. Da kannte ich vor 17-18 Jahren schon Einfacheres, das zu Erlernen fast nebenbei möglich war (statt TEIL/MID, Mid bzw in M Text.Range hieß es im QlikView-Script einfach Pick). Auch andere Script-Sprachen vom Ende der 90er waren recht einfach erlern­bar, zB OpenScript von ToolBook und die Sprache von Director.
Ebenso wie im Hintergrund der grafischen Oberfläche von Access mit jedem MausKlick SQL-Befehle zusammengestellt wdn (mit VBA kann man das dann automatisieren), schrieben die oben letztgenannten SoftwareProjekte mit jedem Schritt begleitende HptPgmm, die man mit speziellen EigenPgmmierungen ergänzen konnte, sinnvollerweise solche, die man Objekten zuordnete (die waren auch im Ggsatz zu solchen auf Xl-Objekten voll parametrierbar!).
Jedenfalls scheinen mir die „Guru“-Vorschläge bzgl evtl Umbenennungen an der MS-Wirklichkeit vorbeizugehen, denn es wird hier hpt­sächlich einen kommerziellen Grund haben, dass eine neue Sprache geschaffen wurde. Ihre Syntax scheint auch darauf hinzudeuten, dass man entweder keinen hohen Compiler-Aufwand treiben oder gänzlich auf vorkompilierte ProjektTeile verzichten wollte. Es dürfte sich also eher um einen einfachen und schnellen Interpreter handeln.
Im Übrigen dürfte sich der ganze PQ-Hype auf die Xl-Gemeinde beschränken, denn das, was MS hier nun mit reichlich zeitlicher Ver­spä­tung gebracht hat, hatten andere, zumindest ansatzweise, schon vor 20 Jahren! Und die haben inzwischen sicher nicht geschlafen…
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

AW: Sprache M und die Verlinkungen
02.04.2019 19:35:45
ChrisL
Hi Luc
Ja, voll in die Syntax-Falle getappt. Habe deine Hinweise schon in anderen Beiträgen gelesen und 2-3 mal umgesetzt, aber das Gehirn neigt dazu weniger wichtige Sachen zu löschen, um Platz für neues (z.B. PQ) zu schaffen :)
Zur Sprache M.
it would still be nice if the language could leverage the skill set we’ve worked so hard to master.
Jedenfalls hatte ich zuerst instinktiv die Formel-Syntax gewählt (das Gleichheitszeichen verleitet dazu), dann zwar then-else ergänzt, aber IF (case-sensitive) nicht korrigiert und so bin ich auf den EOF-Fehler gestossen. Der Beitrag vom Guru passt genau.
cu
Chris
Naja, wenn du dich speziell darauf beziehst, ...
03.04.2019 02:38:31
Luc:-?
…Chris,
ist's ja OK. Allerdings bereiten case-sensitive Sprachen im VBE Probleme, denn der versucht natürlich, aus kleinen Anfangsbuchstaben von KeyWords große zu machen und einige stimmen ja wohl auch bei M mit VB(A/S) überein. Ich hatte das schon bei Einkopierungen von JavaScript (ebenfalls case-sensitiv!) in den VBE bemerken müssen. Bevor ich die PgmTeile zu Text machen konnte, war bspw aus case schon Case geworden, was dann auch dafür ein Pgm erforderlich machte. (Die PgmTexte hatte ich in VBA-HTML-Generator-Pgmm verwendet.)
Morhn, Luc :-?
AW: if Schleife zu langsam
01.04.2019 16:35:14
onur
Poste mal die Datei.
AW: if Schleife zu langsam
01.04.2019 16:44:40
Daniel
Hi
schnelles löschen in großen Tabellen geht so:
1. füge am Tabellenende eine Formel ein, die alle Zeilen, die gelöscht werden sollen mit 0 kennzeichnet und die die stehen bleiben sollen, mit der aktuellen Zeilennummer. In deinem Fall:
=Wenn(Oder(D5="Opt1";D5="Opt2");Zeile();0)
ziehe diese Formel bis zum Tabellenende runter
2. schreibe in die Überschriftenzeile der Hilfsspalte (bei dir Zeile 4) ebenfalls die 0
3. Wende auf die Tabelle incl der Überschriftenzeile die Menüfunktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Hilfsspalte als Kriterium und der Option "keine Überschrift"
4. lösche die Hilfsspalte wieder
das geht auch bei größeren Datenmengen sehr schnell.
probiers erstmal von Hand aus, wenns klappt, sollte die Umsetzung dieser Vorgehensweise mit VBA relativ einfach sein.
Gruß Daniel
AW: if Schleife zu langsam
01.04.2019 17:22:50
xkurtx
Vielen Dank für eure Hilfe. Die Idee mit der Formel und dem anschließenden Filtern und Löschen hat funktioniert!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige