Die Matrixformel {=MIN(WENN((Rechnungen!$B$3:$B$13558=$B4);1;50000)*Rechnungen!$D$3:$D$13558)} rechnet richtig, wenn der bereich 3:13558 mit Daten gefüllt ist. schon eine Leerzeile mehr (3:13559) bringt 00.01.1900
Bei der Max-Formel kann ich den Bereich zukunftssicher auf 20000 erweitern: {=MAX((Rechnungen!$B$3:$B$20000=$B4)*(Rechnungen!$D$3:$D$20000))}
Wennfehler hilft nicht? ist ja auch klar, weil Formel bringt dann 0 und das ist kein Fehler Habs auch schon probiert mit einem Buchstaben anstelle von 50000
Was muss ich tun, oder geht das gar nicht zukunftssicher? Danke im Voraus
Vielen Dank für die Vorschläge, aber ich bekomme es nicht hin. Excel rechnet sich einen Wolf und du kannst unten sehen wie langsam die % der Berechnung steigen.
Die Daten werden aus einer anderen Anwendung mittels Hyperlinks aktualisiert und die Datei ist ohne die beiden neuen Spalten schon nervtötend langsam, selbst mit deaktivierten Hyperlinks.
Ich hab mal das anonymisiert. Ich werde heute mal fragen, ob auch - nur für die beiden neuen Spalten - eine VBA-Lösung in frage kommt. ich denke, das is deutlich schneller, zumal bei meiner jetzigen Min-Formel bei jedem update der Range angepasst werden muss, damit keine Leerzeilen im Bereich sind.
Danke Jockel für den Hinweis DBMIN/DBMAX. Ich bekomme es damit aber auch nicht hin, und ich darf auch keinen Kriterienbereich hinzufügen.
Die Formel von steve1da sieht gut aus, bringt aber 0 wo meine Formel richtig 28.4.17 bringt
Bei der Max-Formel kann ich zukunftssicher den zu erfassenden Bereich auf 20.000 setzen, aktuell sind 13.558 Zeilen gefüllt. bei der Min-Formel nicht, da muss ich bislang genau auf den gefüllten Range schauen bzw. jedes Mal nach Aktualisierung die Formel anpassen.
Und schließlich zurück zum Betreff: Dort wo kein Datum zu finden ist, hätte ich gerne anstelle von Gartenzäunen bzw 00.01.1900 nix oder einen Strich (ALT+0151) drin stehen.
Und ganz Toll wäre, gibt es nur eine Rechnung, dann soll deren Datum in beiden Spalten stehen.
Ich fange jetzt mal für mich mit einer VBA-Lösung an, aber wenn es da schnellere Formeln gäbe, die auch richtig rechnen, interessiert mich das stark, da ich in Formeln noch ned so gut bin.
Zitat:Problem in der Bsp. Datei war das Spalte Rechnungen!D noch als Text Vorlag.
Das ist leider auch so in der Originaldatei und die von mir gestrickten bzw. aus dem Indernet geholten und umgeschriebenen Formeln hat das nicht gestört. (Daten kommen aus SAP) Und die Formeln von Jockel stört das auch nicht So rechnen von beiden beide Formeln fixer als meine, aber die von Elex bringen keine Ergebnisse.
Eine Frage an Jockel: deine Formel für R4 findet das erste Vorkommen in der Liste. Bist du dir sicher, dass das immer das kleinste Datum ist? S4=reziprok analog also der Letzte Eintrag zu der Rechnungsnummer? (nein, habs mit VBA nachgeprüft, isses leider nicht) :s
Schau dir mal mit deinen Formeln Zeilen 122-126 an
Hier mal mein VBA (es braucht auf meinem Lapdepp 40 Sekunden)
Code:
Sub erster_umsatz() Dim Alle_Kunden As Variant Dim Rechnungen As Variant Dim Erster_letzter_Umsatz As Variant Dim letzRechn As Long Dim AK As Long Dim RN As Long Dim Datuum As Date Dim ReNr As String Dim Lauf As Long
Alle_Kunden = Sheets("Alle Kunden").UsedRange.Columns(2) Rechnungen = Sheets("Rechnungen").UsedRange.Range("B1:D" & letzRechn) ReDim Erster_letzter_Umsatz(3 To UBound(Alle_Kunden) + 1, 1 To 2)
For AK = 3 To UBound(Erster_letzter_Umsatz) Erster_letzter_Umsatz(AK, 1) = "—" Erster_letzter_Umsatz(AK, 2) = "—" Next AK
For AK = 2 To UBound(Alle_Kunden) ReNr = Alle_Kunden(AK, 1) Lauf = 0 For RN = 3 To letzRechn If Rechnungen(RN, 1) = ReNr Then Datuum = Rechnungen(RN, 3) If Lauf = 0 Then Erster_letzter_Umsatz(AK + 1, 1) = Datuum Erster_letzter_Umsatz(AK + 1, 2) = Datuum Lauf = Lauf + 1 Else If Datuum > Erster_letzter_Umsatz(AK + 1, 2) Then Erster_letzter_Umsatz(AK + 1, 2) = Datuum End If If Datuum < Erster_letzter_Umsatz(AK + 1, 1) Then Erster_letzter_Umsatz(AK + 1, 1) = Datuum End If End If End If Next RN Next AK
vielen Dank Das ist leider auch so in der Originaldatei und die von mir gestrickten bzw. aus dem Indernet geholten und umgeschriebenen Formeln hat das nicht gestört. (Daten kommen aus SAP) Und die Formeln von Jockel stört das auch nicht So rechnen von beiden beide Formeln fixer als meine, aber die von Elex bringen keine Ergebnisse.
Eine Frage an Jockel: deine Formel für R4 findet das erste Vorkommen in der Liste. Bist du dir sicher, dass das immer das kleinste Datum ist? S4=reziprok analog also der Letzte Eintrag zu der Rechnungsnummer? (nein, habs mit VBA nachgeprüft, isses leider nicht) :s
Schau dir mal mit deinen Formeln Zeilen 122-126 an ...
Hallo, ich bin davon ausgegangen, dass die Listen sortiert sind... und hatte in der Tat nur die ersten Werte geprüft. Und dabei (richtig) das jeweils erste und letzte Vorkommen ausgeben lassen; dass wie Werte keine Datumswerte (Zahlen) sind spielt hierbei keine Rolle. Bei der von Elex schon... ... dazu hatte er aber auch was geschrieben... Aus Texten kann man nunmal kein Minimum oder Maximum bestimmen...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
08.02.2018, 15:31 (Dieser Beitrag wurde zuletzt bearbeitet: 08.02.2018, 15:31 von Elex.)
(08.02.2018, 14:32)Wastl schrieb: So rechnen von beiden beide Formeln fixer als meine, aber die von Elex bringen keine Ergebnisse.
Die Formel bringt schon Ergebnisse. Nur muss auf die ein oder andere Art aus dem Text rechenbare Werte gemacht werden. Geht auch in der Formel wenn du (1* oder --) hinzufügst. Sortierte Liste und Jörgs Formel sind aber sicher schneller.