Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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

Excel sehr Langsam bei Berechnung eigener Funktion

Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 21:04:36
Fantasy
Hallo liebe Forumnutzer,
ich habe ein Problem mit einer von mir selber geschriebenen Funktion.
Hier einmal die Funktion:
Function BKette(Suchbereich As Range, Suchkriterium, Artbereich As Range, Artkriterium, _ Ergebnisbereich As Range, Trennzeichen As String) Dim i As Long For i = 1 To Suchbereich.Count If Suchbereich(i) = Suchkriterium And Artbereich(i) = Artkriterium Then BKette = BKette & _ Trennzeichen & Ergebnisbereich(i) Next i BKette = Right(BKette, Len(BKette) - Len(Trennzeichen)) End Function
Eingesetzt wird die Funktion um Text aus unterschiedlichen Zellen in eine Zelle unter zwei Bedingungen zusammenzuführen, getrennt durch ein Trennzeichen wie z.B. ein Komma.
Die Funktion selbst funktioniert einwandfrei, allerdings braucht sie sehr lange zum Berechnen. Ich habe deshalb schon auf Manuelle Berechnung umgestellt, damit ich wenigstens die Daten die die Funktion verwendet ohne Unterbrechung eingeben kann. Allerdings wenn ich dann Berechnen lasse brauche ich für den Bereich den ich bis jetzt mit der Funktion belegt habe schon recht lange. Schätzungsweise 3 Minuten. Das ist zu lange.
Nun die Frage:
Gibt es da etwas um das zu verbessern, oder kann ich da nichts machen?
Danke im Voraus
MfG
FantasyFlip

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 21:41:37
onur
Wie gross sind Suchbereichundnd Artbereich?
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 21:47:13
Fantasy
Beide Bereiche sind ganze Spalten, da der Bereich nach und nach ausgefüllt wird
MfG
FantasyFlip
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 22:03:20
onur
Dann wundere dich auch nicht, denn Du greifst je 1.048.576 mal auf die Zellen in den drei Bereichen zu.
Mag zwar bequem sein, aber extrem rechenintensiv.
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 21:48:58
Sepp
Hallo Flip,
bei einer Tabellenfunktion solltest du das Ergebnis erst am Schluß der Funktion zuweisen.
Function BKette(Suchbereich As Range, Suchkriterium, Artbereich As Range, Artkriterium, _
  Ergebnisbereich As Range, Trennzeichen As String) As String
  Dim i As Long, strTemp As String
  For i = 1 To Suchbereich.Count
    If Suchbereich(i) = Suchkriterium And Artbereich(i) = Artkriterium Then _
      strTemp = strTemp & Ergebnisbereich(i) & Trennzeichen
  Next i
  If Len(strTemp) Then BKette = Left(strTemp, Len(strTemp) - Len(Trennzeichen))
End Function

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 22:03:57
Sepp
Hallo nochmal,
so werden nur die tatsächlich benutzten Zellen durchlaufen.
Function BKette(Suchbereich As Range, Suchkriterium, Artbereich As Range, Artkriterium, _
  Ergebnisbereich As Range, Trennzeichen As String) As String
  Dim rng As Range, strTemp As String
  For Each rng In Intersect(Suchbereich.Parent.UsedRange, Suchbereich)
    If rng = Suchkriterium And Artbereich(rng.Row, 1) = Artkriterium Then _
      strTemp = strTemp & Ergebnisbereich(rng.Row, 1) & Trennzeichen
  Next
  If Len(strTemp) Then BKette = Left(strTemp, Len(strTemp) - Len(Trennzeichen))
End Function

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Excel sehr Langsam bei Berechnung eigener Funktion
22.10.2018 22:31:50
Sulprobil
Hallo,
Die Ranges am besten in Gänze in ein Variant Feld kopieren, dann alles in VBA ohne Tabellenblattbezug rechnen und schließlich Variant in Range oder wie hier zurück.
Viele Grüße,
Bernd P
AW: Excel sehr Langsam bei Berechnung eigener Funktion
23.10.2018 10:34:44
Fantasy
Danke für die schnelle Antwort. Habe den genannten Code gerade einmal in ein VBA Modul gepackt und ausprobiert. Leider bekomme ich einen #Wert Fehler. Woran könnte das liegen?
Eingegeben hab ich die Funktion wie folgt:
=BKETTE(B:B;F3;C:C;G3;D:D;", ")
AW: Excel sehr Langsam bei Berechnung eigener Funktion
23.10.2018 19:48:47
Sepp
Hallo ?,
also bei mir funktioniert es!
Tabelle1

 ABCDEFGHIJ
1 C1Humbert    Deane, Tuck, Hyatt, Erastus, Free 
2 A2Tally      
3 A1Aksel B2   
4 B1Christian      
5 C1Dyann      
6 A2Alric      
7 A1Guthry      
8 A1Lottie      
9 B2Deane      
10 A2Wells      
11 B2Tuck      
12 C2Northrup      
13 A1Delora      
14 C2Garik      
15 C2Kane      
16 A1Jock      
17 A1Nolly      
18 B1Susanne      
19 C1Carolynn      
20 B2Hyatt      
21 C1Jobyna      
22 A1Isacco      
23 C2Delainey      
24 B2Erastus      
25 C1Iolanthe      
26 C2Jorry      
27 A1Price      
28 A1Valli      
29 C2Monah      
30 B1Cleon      
31 B2Free      
32 B1Windham      

Formeln der Tabelle
ZelleFormel
I1=BKETTE(B:B;F3;C:C;G3;D:D;", ")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Excel sehr Langsam bei Berechnung eigener Funktion
23.10.2018 19:58:09
Fantasy
Danke fürs Ausprobieren. Habe gerade rausgefunden, dass es auf meinem Heim-PC einwandfrei funktioniert allerdings auf meinem MacBook aus irgendeinem Grund nicht. Dort erhalte ich in der selben Excel-Datei einen #Wert-Fehler.
Weiß jemand warum?
FantasyFlip

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige