Diskussion:Inhaltskette

Letzter Kommentar: vor 12 Jahren von 84.130.166.89 in Abschnitt Generierung in Excel

Formel funktioniert nicht (mehr)

Bearbeiten

Zumindest in den neueren Excel-Versionen funktioniert die angegebene Formel nicht und liefert nur den Fehler "#BEZUG!". Auch in OpenCalc erhält man nur "Err:502". Mir scheint, das ist eine jener Formel-Kunstwerke, die aus dem sportlichen Ehrgeiz entstanden ein Problem mit minimaler Zeichenzahl zu lösen. Sowas sollte hier aber nichts verloren haben, da dies auf Kosten der Kompatibilität und auch der Verständlichkeit geht (obwohl ich mich mit Excel gut auskenne, verstehe ich sie nicht). Lieber eine Formel, die einen Tick länger ist, die aber nicht mit Tricks arbeitet oder irgendwelche Spezifika einer proprietären Software nutzen muss um funktionieren zu können. -> Also bitte die Formel anpassen... -- 46.114.152.112 00:02, 7. Mär. 2011 (CET)Beantworten

Welche Version hast du denn? Ich habe sie in Excel 2003 getestet und sie funktioniert wunderbar. Wieso dich die Kürze der Formel stört, verstehe ich nicht, es ist bloß eine einfache Implementation ohne Schnickschnack.
Möglicherweise hast du vergessen, die Zeilen anzuklicken und auf F9 zu drücken. -- IvanP 16:09, 26. Mär. 2011 (CET)Beantworten

Generierung in Excel

Bearbeiten

Das verschiebe ich inklusive zugehöriger Literaturangabe hierher, da es nicht in den Artikel gehört (siehe WP:WWNI Punkt 9). --84.130.166.89 14:15, 7. Dez. 2012 (CET)Beantworten


 
Inhaltskette von 1000

Inhaltsketten können in Microsoft Excel generiert werden. Hierzu muss der Startwert in B3 eingetragen werden. Die Formel zur Generierung muss in B4 eingetragen werden:

=WENN(MIN(B$3:B3)=0;"";SUMME((REST(B3;ZEILE(INDIREKT("1:"&B3)))=0)*ZEILE(INDIREKT("1:"&B3)))-B3)

Diese Formel kann nach Belieben runterkopiert werden.

Um die genaue Funktion der Formel zu veranschaulichen geben wir in B3 die 12 ein.

Der erste Teil, WENN(MIN(B$3:B3)=0;"";, dient zur Vermeidung einer Fehlermeldung, die erscheint, falls in der Kette eine 0 auftaucht. Ohne dies reduziert sich die Formel auf:

=SUMME((REST(B3;ZEILE(INDIREKT("1:"&B3)))=0)*ZEILE(INDIREKT("1:"&B3)))-B3)

ZEILE(INDIREKT("1:"&B3)) dient dazu, ein Array mit den Zahlen von 1 bis zur Größe der Zahl in B3 zu erzeugen. Da hier der konkrete Fall von B3 = 12 angesprochen wird, reduziert sich die Formel weiter auf:

=SUMME((REST(12;ZEILE(1:12))=0)*ZEILE(1:12))-B3

ZEILE(1:12) ist ein Platzhalter für die Zahlen 1 bis 12. Markiert man den Teil (REST(12;ZEILE(1:12))=0) und bestätigt die Taste F9 sieht man:

{WAHR;WAHR;WAHR;WAHR;FALSCH;WAHR;FALSCH;FALSCH;FALSCH;FALSCH;FALSCH;WAHR}

Das heißt: 12 dividiert durch alle Zahlen von 1 bis 12 ergibt den Rest 0, also WAHR bei 1, 2, 3, 4, 6 und 12.

Nun werden diese WAHR (1) und FALSCH (0) mit ZEILE(1:12) multipliziert und man sieht nach dem Drücken von F9:

{1;2;3;4;0;6;0;0;0;0;0;12}

Das summiert ergibt 28 und davon die ursprüngliche Zahl 12 subtrahiert ergibt 16, den Zahleninhalt von 12.

Literatur

(Ende des verschobenen Abschnitts) --84.130.166.89 14:15, 7. Dez. 2012 (CET)Beantworten