Quersumme Datum
#1
Hallo zusammen,

ich brauche eine Formel, mit der ich die Quersumme eines Datum berechnen kann, weiter reduziert auf eine einstellige Zahl mit Ausnahme der Zahlen 11, 22 und 33.
Bsp.: 01.01.1992 = 23 = 5
07.01.1992 = 11 

Diese Formel ist mir dabei schon sehr dienlich:
=SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)

Meine Fragen:
Kann Ich diese Formel um meine Ausnahme erweitern? 
Warum funktioniert sie nur mit "ZEILE(1:8)" und nicht zb 1:50?
Gibt es die Möglichkeit, sie zu kopieren für ein neues Bezugsfeld?

Herzlichen Dank,
Ines 
Top
#2
Hallo Ines

Das ist schon richtig so, Zeile(1:8)
Du hast ja das Datum ohne Punkte (TEXT(A1;"TTMMJJJJ") gewählt, sind als 8 Zahlen.

Mfg Guschti
Der Künstler lebt auch vom Applaus
Excel Optimaler Zuschnitt von Stangen/Balken - YouTube
[-] Folgende(r) 1 Nutzer sagt Danke an Guschti für diesen Beitrag:
  • Ines
Top
#3
Hallo
zeile(1:8) steht dort weil deine Formel nacheinander die acht Ziffern deines Textstrings TTMMJJJJ addiert,
hat also nur was mit der Steuerung der Matrixformel und nichts mit der Position zu tun.
Daher ist zeile(1:50) quatsch, da der erzeugte (Datum)-Text nur 8 Zeichen hat.
die Quersumme wird aus dem Datum in A1 gebildet

http://www.herber.de/excelformeln und bitte suchen .../formeln.html?welcher=112
dort gibt es deine Formelversion auch.
Um weiter zu rechnen könntest du diese mit der Formel von Franz Pölt kombinieren
Gruß Holger


Code:
=(REST(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)-KÜRZEN(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)/9)*9;-9)+9)*(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)>0)
[-] Folgende(r) 1 Nutzer sagt Danke an echo für diesen Beitrag:
  • Ines
Top
#4
Hallo Ines 

Du schreibst

Zitat:07.01.1992 = 11 


Dein Beispiel sagt mir aber dass ich dein Anliegen überhaupt nicht verstanden habe, obwohl  ich mich da schon ein wenig auskenne.
Das ist mir eine zu abstrakte Numerologie. Nach meinem Verständnis ergibt die Jahreszahl alleine schon 21
 
Gruss Sepp
Top
#5
Hallo
vielleicht ist es so Plausibler:
07.01.1992 > Quersumme = 29
29 > Quersumme = 11

Gruß Holger
[-] Folgende(r) 1 Nutzer sagt Danke an echo für diesen Beitrag:
  • Ines
Top
#6
(03.12.2017, 23:10)echo schrieb: zeile(1:8) steht dort, weil deine Formel nacheinander die acht Ziffern deines Textstrings TTMMJJJJ addiert,
hat also nur was mit der Steuerung der Matrixformel und nichts mit der Position zu tun.

Code:
=(REST(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)-KÜRZEN(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)/9)*9;-9)+9)*(SUMMENPRODUKT(TEIL(TEXT(A1;"TTMMJJJJ");ZEILE(1:8);1)*1)>0)


Danke, jetzt hab ich verstanden, was es mit der 8 auf sich hat. :)
Die Formel klappt prima für die Reduktion auf eine einstellige Zahl. Weißt du, wie ich Ausnahmen (11, 22, 33) hinzufügen kann?

Gruß!
Top
#7
(03.12.2017, 23:11)Josef B schrieb: Nach meinem Verständnis ergibt die Jahreszahl alleine schon 21
 
Ja genau! Und dann hab ich noch die 7 und die 1 (=8) und komme damit auf 29, in weiterer Folge auf 11. :)
Top
#8
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.
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Ines
Top
#9
(03.12.2017, 23:23)echo schrieb: Hallo
...
29 > Quersumme = 11

Gruß Holger

Hallo, dann geht's aber noch weiter..:

11 > Quersumme = 2

Wie im Ausgangsthread..: Bsp.: 01.01.1992 = 23 = 5
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#10
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Ines
Top


Gehe zu:


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