Registriert seit: 03.12.2017
Version(en): 12.3.6
(06.12.2017, 14:26)chris-ka schrieb: Hi,
warum auch immer :)
{=WENN(REST(SUMME(--TEIL(TEXT(A1;"JJJJMMTT");ZEILE(1:8);1));11);SUMME(--TEIL(TEXT(SUMME(--TEIL(TEXT(A1;"JJJJMMTT");ZEILE(1:8);1));"00");ZEILE(1:2);1));SUMME(--TEIL(TEXT(A1;"JJJJMMTT");ZEILE(1:8);1)))}
wobei die {} NICHT eingegeben, sondern Formel wird mit Strg + Umschalt + Enter abschließen.
Fantastisch, genau so! Herzlichen Dank!
Registriert seit: 03.12.2017
Version(en): 12.3.6
06.12.2017, 18:34
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2017, 18:47 von Ines.
Bearbeitungsgrund: Zahl hinzugefügt
)
(06.12.2017, 14:31)Jockel schrieb: Hallo, dann geht's aber noch weiter..:
11 > Quersumme = 2
Wie im Ausgangsthread..: Bsp.: 01.01.1992 = 23 = 5
Ich brauch das hier zur Berechnung von Lebenszahlen als Teil der Numerologie. Die 11, die 22 und die 33 sind in der Numerologie sogenannte Meisterzahlen, die als einzige nicht weiter reduziert und unverändert beibehalten werden. Eigentlich auch die 44, die ist mir bloß noch nicht untergekommen.
Wer's mal ausprobieren möchte:
http://numerologie.in
Registriert seit: 03.12.2017
Version(en): 12.3.6
06.12.2017, 18:38
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2017, 18:48 von Ines.)
(06.12.2017, 15:54)chris-ka schrieb: Hi,
@ Jörg, bei 11 soll ja nicht mehr reduziert werden ;)
anbei eine UDF mit Rekursion auf einstellig inkl. der Ausnahmen
Code:
Option Explicit
Function Quers(ByVal Zahl As String) As Long
Dim i As Integer
For i = 1 To Len(Zahl)
Quers = Quers + CLng(Mid(Zahl, i, 1))
Next
Select Case Quers
Case 11, 22, 33
Exit Function
Case Is > 9
Quers = Quers(Quers)
End Select
End Function
'Aufruf der Funktion im Tabellenbaltt =QuerSu(A1) 'wenn in A1 dein datum steht
Function QuerSu(myrange As Range) As Long
QuerSu = Quers(Format(myrange.Value, "yyyymmdd"))
End Function
Oh, toll, wie verwende ich denn das?
Gibt es denn die Möglichkeit, die Formel zu "kopieren", sodass ich das A1 nicht jedes Mal gegen A2, A3, etc. austauschen muss?
Registriert seit: 15.04.2014
06.12.2017, 19:18
(Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2017, 19:18 von Josef B.)
Hallo Ines
Die Formel von Chris bringt aber nicht immer das richtige Ergebnis.
Teste einmal 05.07.1998 oder 29.06.2009 nur so als Beispiel von vielen möglichen Daten.
Ein anderes Problem ergibt sich auch zum Beispiel beim 17.08.1999.
Da ist die Quersumme 44
Da rechnet seine UDF schon viel besser. Fehler gibt es da nur anfangs 1900
Gruss Sepp
Folgende(r) 1 Nutzer sagt Danke an Josef B für diesen Beitrag:1 Nutzer sagt Danke an Josef B für diesen Beitrag 28
• Ines
Registriert seit: 03.12.2017
Version(en): 12.3.6
(06.12.2017, 19:18)Josef B schrieb: Hallo Ines
Die Formel von Chris bringt aber nicht immer das richtige Ergebnis.
Teste einmal 05.07.1998 oder 29.06.2009 nur so als Beispiel von vielen möglichen Daten.
Ein anderes Problem ergibt sich auch zum Beispiel beim 17.08.1999.
Da ist die Quersumme 44
Da rechnet seine UDF schon viel besser. Fehler gibt es da nur anfangs 1900
Gruss Sepp
Oh, danke!
Was mache ich denn mit einer UDF? :92:
Registriert seit: 15.04.2014
Hallo Ines
Zitat:Was mache ich denn mit einer UDF?
Das kann dir Chris besser erklärenIch habe dir hier eine Lösung mit Formel erstellt.Die Spalte B dient als Hilfsspate, die Ergebnisse dann in Spalte CDie Formeln kannst du so einfach nach unten kopierenTabelle1
" /> | A | B | C |
1 | 17.08.1999 | 44 | 8 |
2 | 04.01.1999 | 33 | 33 |
Formeln der Tabelle |
Zelle | Formel | B1 | =SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE($1:$8);1)*1) | C1 | =WENN(UND(REST(B1;11)=0;B1<>44);B1;WENN(SUMME(--TEIL(B1&0;{1;2};1))=11;11;REST(B1-1;9)+1)) |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Gruss Sepp
Folgende(r) 1 Nutzer sagt Danke an Josef B für diesen Beitrag:1 Nutzer sagt Danke an Josef B für diesen Beitrag 28
• Ines
Registriert seit: 03.12.2017
Version(en): 12.3.6
(06.12.2017, 21:35)Josef B schrieb: Hallo Ines
Die Formeln kannst du so einfach nach unten kopieren
Gruss Sepp
Das klappt richtig gut! Vielen Dank! :D
Registriert seit: 14.04.2014
Version(en): Office 2013/2016/2019/365
Hallo Ines,
die UDF ist auch kopierbar ;)
@ Sepp das mit den Daten vor dem 01.03.1900 ist jetzt für mich erklärbar.
Da es ja keinen 29.02.1900 gegeben hat wird in VBA der 28.02 genommen.... darum sind bei der UDF andere Ergebnisse herausgekommen.
(War mir bis dato auch nicht bewusst!)
Ich habe die UDF angepasst, dass es nun auch konform zur Formellösung ist.
Anbei noch ein Video wie die UDF eingesetzt werden kann.
https://www.youtube.com/watch?v=i2lIhpN9-WYDatei:
Quersumme_Udf.xlsm (Größe: 15,21 KB / Downloads: 0)
Code:
Code:
Option Explicit
Function Quers(ByVal Zahl As String) As Long
Dim i As Integer
For i = 1 To Len(Zahl)
Quers = Quers + CLng(Mid(Zahl, i, 1))
Next
Select Case Quers
Case 11, 22, 33
Exit Function
Case Is > 9
Quers = Quers(Quers)
End Select
End Function
'Aufruf der Funktion im Tabellenbaltt =QuerSu(A1) 'wenn in A1 dein datum steht
Function QuerSu(myrange As Range) As Long
Dim z As Integer
If myrange.Value <= 60 Then z = 1
QuerSu = Quers(Format(myrange.Value + z, "yyyymmdd"))
End Function
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
Registriert seit: 15.04.2014
Hallo Chris Das ist wieder einmal typisch Excel. VBA rechnet anders als die Formeln.Aber ich denke, wir müssen mit diesem Schaltjahrfehler leben.Das Ganze ist auch nicht so tragisch, 1900 liegt ja auch schon ein paar Jahre zurück. [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
[color=#000000][font=Calibri]
[size=large]Gruss Sepp