Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Freitag, der 13. [Excel 365, 2021, Online]
#21
Sehr schön. snb!
Aber:
Da Filter() [VBA] ein nullbasiertes Array zurückgibt, müsste es doch UBound(Array)+1 sein, oder?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#22
Mit Alter, schon größer als 100 "Fri 13" darf man doch wenigstens 1 schmuggelen, nicht ? 16
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#23
Wink Noch so ein dreistelliger!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#24
@RPP und noch 'etwas' mehr als 103

Könnte kompakter:


Code:
Function F_snb()
  F_snb = [sum(N(text(A1+row(offset(A1,0,0,today()-A1)),"ddd dd")="Fri 13"))]
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#25
Revisited:


Code:
Function F_snb()
  F_snb = [sum(N(text(row(offset(A1,A1,0,today()-A1)),"ddd dd")="Fri 13"))]
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#26
Hallo Excel-Fan's,

hier hal eine PQ-Abfrage dazu:
let
    Quelle = {Number.From(Geb_Dat)..Number.From(Heute)},
    #"In Tabelle konvertiert" = Table.FromList(Quelle, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Geänderter Typ" = Table.TransformColumnTypes(#"In Tabelle konvertiert",{{"Column1", type date}}),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ", "Wochentag",
        each Date.DayOfWeekName([Column1])),
    #"Gefilterte Zeilen" = Table.SelectRows(#"Hinzugefügte benutzerdefinierte Spalte", each ([Wochentag] = "Freitag")),
    #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Gefilterte Zeilen", "Tag", each Date.Day([Column1])),
    #"Gefilterte Zeilen1" = Table.SelectRows(#"Hinzugefügte benutzerdefinierte Spalte1", each ([Tag] = 13)),
    Anz_Fr_13 = List.Count(#"Gefilterte Zeilen1"[Tag])

in
    Anz_Fr_13

Gruß von Luschi
aus klein-Paris

PS: mein Ergebnis: 119
Antworten Top
#27
Ist mir beim stöbern gerade wieder über den Weg gelaufen.

Dazu meine LET:

Code:
=LET(
Monate;SEQUENZ(B4*12;;0);
Daten;DATUM(A4+ABRUNDEN(Monate/12;0);REST(Monate;12)+1;13);
Fr_13;FILTER(Daten;WOCHENTAG(Daten)=6);
Fr_13)

und meine PQ-Variante:
Code:
let
    Source         = Excel.CurrentWorkbook(){[Name="Start_und_Jahre"]}[Content],
    Change_Type    = Table.TransformColumnTypes(Source,{{"StartJahr", Int64.Type}, {"Jahre", Int64.Type}}),
    List_Monate    = Table.AddColumn(Change_Type, "Monate", each {0 .. ([Jahre]*12) -1}),
    Expand_Monate  = Table.ExpandListColumn(List_Monate, "Monate"),
    Col_Tage_13    = Table.AddColumn(Expand_Monate, "Tage_FR_13", each
                     Date.From(#date([StartJahr] + Number.RoundDown([Monate]/12, 0), Number.Mod([Monate], 12) +1, 13))),
    Col_Wotag      = Table.AddColumn(Col_Tage_13, "Wochentag", each Date.DayOfWeekName([Tage_FR_13])),
    Filter_Freitag = Table.SelectRows(Col_Wotag, each ([Wochentag] = "Freitag")),
    Keep_Fr_13     = Table.SelectColumns(Filter_Freitag,{"Tage_FR_13"})
in
    Keep_Fr_13

Ist zwar hier nicht so wichtig, aber in beiden Versionen hat das temporäre Datenvolumen nur Anzahl Jahre * 12 Datensätze.


Angehängte Dateien
.xlsx   CEF - Freitag der 13. (PQ LET).xlsx (Größe: 19,49 KB / Downloads: 4)
Antworten Top
#28
Es wiederholt sich derselbe Wochentag an demselben Datumstag in den 12 Monaten eines Kalenderjahres nur maximal 3 Mal. Somit könntest Du das temporäre Volumen vierteln. Allerdings braucht das wieder rechnerische "Intelligenz", die Du bei einfachem 12fachen 13. des Monats nicht brauchst.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#29
...dieses Forum wird offensichtlich von lauter größtenteils alten Säcken am Leben erhalten.  19
Ich komme auf 113. Hatte aber keine Lust zum Zeilen zählen:

=ANZAHL(LET(
Beginn;DATUM(xxxx;y;z);Jahre;abc;
Zeitraum;SEQUENZ(365,2425*Jahre;;Beginn);
FILTER(Zeitraum;(TAG(Zeitraum)=13)*(WOCHENTAG(Zeitraum;2)=5))))
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#30
Die Abstände von einem Fr. den 13. zum nächsten sind: 28, 91, 182, 245, 273, 336 oder 427 Tage. Ich kann aber kein Wiederholungsmuster erkennen. Insofern steht wohl das noch vorhande temporäre Einsparpotenzial von 2,74% (99,18% vs. 96,44%) in keinem Verhältnis zu dem zusätzlichen Rechenaufwand, der nötig wäre, um dies zu realisieren.

Witrerhin ist dabei auch eine Diskrepanz zu PQ festzustellen, denn die Zahl 1 als Datum formatiert zeigt Sonntag den 1.1.1900, während Power Query daraus Sonntag den 31.12.1899 macht und somit der 13. Tag als Freitag den 12.1.1900 anastatt als Freitag den 13.1.1900 zeigt.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste