Registriert seit: 01.04.2020
Version(en): 2007
Hallo, interessante Frage, interessante Lösung.
Nur: Mit Änderungen in der Produktliste sollten sich auch die Ergebnisse der Formeln ändern.
Tut es aber nicht. Wüsste gerne, warum.
Berechnungsoptionen=Automatisch Bei F9 tut sich nichts.
In eine Formelzelle hineingehen und Enter drücken löst dann die Berechnung aus.
Raoul
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi Raoul Die Frage ist, ob bei der Datenmenge jedes mal neu berechnet werden soll. Wenn ja. Im Modul Zeile 1 so. Public Function Kombi(z As Long, s As Long, rng As Range) Und die Formel dann so. =Kombi(ZEILE();SPALTE();$A$13:$B$28) Oder hier noch mal einen alternativ Code. Welcher schneller ist habe ich nicht getestet. Code: Public Function Kombi(z As Long, s As Long, rng As Range) Dim ArrA, ArrB, Wert1, Wert2 Dim j As Long, jj As Long, a As Long
Wert1 = Cells(z, 1).Value Wert2 = Cells(3, s).Value
If Wert1 = Wert2 Then Kombi = "" Else ArrA = Filter(Application.Transpose(Evaluate("if(" & rng.Columns(2).Address & "=" & Wert1 & "," & rng.Columns(1).Address & ")")), "Falsch", False, vbBinaryCompare) ArrB = Filter(Application.Transpose(Evaluate("if(" & rng.Columns(2).Address & "=" & Wert2 & "," & rng.Columns(1).Address & ")")), "Falsch", False, vbBinaryCompare) For j = 0 To UBound(ArrA) For jj = 0 To UBound(ArrB) If ArrA(j) = ArrB(jj) Then a = a + 1 Next jj Next j Kombi = a
End If End Function
Formel ist wie oben. Gruß Elex
Registriert seit: 01.04.2020
Version(en): 2007
Hi Elex,
mit der neuen Formel geht es.
Meine Frage war nicht, ob bei der Datenmenge jedes mal neu berechnet werden soll, sondern, warum sie nicht neu berechent wird.
Ich habe kein besonderes Interesse an der Formel. Nur, wie Du das angegangen bist, finde ich gut.
Raoul
Registriert seit: 16.08.2017
Version(en): 2007 / 2010 / Web
Hi
Bei der Entscheidung ob Excel eine Formel neu berechnet, prüft Excel erst ob sich in einer der in der Formel enthaltenen Zellen(Zellbezüge) etwas geändert hat. Bei der ersten Variante waren keine Zellbezüge enthalten, deshalb wird die Funktion nur einmal berechnet. Ist wie wenn du in eine Zelle die Formel =5+2*8 eingibst. Die wird auch nur einmal berechnet und nicht noch mal.
Gruß Elex
Registriert seit: 29.09.2015
Version(en): 2030,5
Ich würde ein normales Makro bevorzügen: Code: Sub M_snb() Sheet1.Cells(12, 1).CurrentRegion.Columns(2).AdvancedFilter 2, , Sheet1.Cells(1, 10), 1 sp = Sheet1.Cells(1, 10).CurrentRegion sn = Sheet1.Cells(12, 1).CurrentRegion ReDim st(UBound(sp), UBound(sp)) For j = 2 To UBound(sn) y = Application.Match(sn(j, 2), sp, 0) - 1 st(0, y) = st(0, y) & sn(j, 1) Next For j = 1 To UBound(sn) y = Application.Match(sn(j, 2), sp, 0) - 2 For jj = 1 To y If InStr(st(0, jj), sn(j, 1)) Then st(y + 1, jj) = st(y + 1, jj) + 1 Next Next For j = 1 To UBound(sp) st(j - 1, 0) = sp(j, 1) st(0, j - 1) = sp(j, 1) Next Sheet1.Cells(12, 5).Resize(UBound(st) + 1, UBound(st, 2) + 1) = st End Sub
Registriert seit: 01.04.2020
Version(en): 2007
Ich verstehe. Danke Elex.
snb, idKldW. AGR
(Lieber snb, in der Kürze liegt die Würze. Alles Gute, Ralf) :43:
Registriert seit: 01.04.2020
Version(en): 2007
snb,
liest sich etwas komisch, was ich da geschrieben haben.
wollte zu deinem makro eigentlich sagen: respekt!
schönen abend noch, bin schon weg ...
|