Discussion:
Wirklich LEERE Zelle erzeugen
(zu alt für eine Antwort)
Lutz E. Cerning
2023-09-09 15:30:54 UTC
Permalink
Hallo allerseits,
gegeben: Prüfung des Wertes von z.B. A5 bis A20.
Wenn da nichts drin steht soll in z.B. C5 und ff. NICHTS (also nicht "")
durch eine dortige Formel erzeugt werden.

Hintergrund: Eine Mittelwert-Berechnung von z.B. C5 bis C20 führt zu
falschen Ergebnissen wenn diese Formel zwar "" erzeugt aber dort eben
DOCH etwas drin steht auch wenn nichts zu Sehen ist weil eben die ANZAHL
der (nicht vorhandenen Werte) aben 20 ist.

Ich habe keine Lust die jetzt notgedrungenen leeren Zellen mit der
darüber befindlichen durch Runterziehen zu füllen.

Hoffe, ich konnte das einigermaßen verständlich machen...
--
Grüße von LutzeC*54 aus
(ca.) 52.64736,13.550518
Lutz E. Cerning
2023-09-10 06:35:25 UTC
Permalink
Post by Lutz E. Cerning
Hallo allerseits,
gegeben: Prüfung des Wertes von z.B. A5 bis A20.
Wenn da nichts drin steht soll in z.B. C5 und ff. NICHTS (also nicht
"") durch eine dortige Formel erzeugt werden.
Nachtrag: ich meinte sowas:
=WENN($U3=0;"";($V3/($T3*$N$1)*100))
--
Grüße von LutzeC*54 aus
(ca.) 52.64736,13.550518
Tim Landscheidt
2023-09-10 09:15:48 UTC
Permalink
Post by Lutz E. Cerning
Post by Lutz E. Cerning
gegeben: Prüfung des Wertes von z.B. A5 bis A20.
Wenn da nichts drin steht soll in z.B. C5 und ff. NICHTS
(also nicht "") durch eine dortige Formel erzeugt werden.
=WENN($U3=0;"";($V3/($T3*$N$1)*100))
Da kommen jetzt weder A5 bis A20 noch C5 vor. Vielleicht
kannst Du Deine Frage noch einmal umformulieren.

Tim
Stefan Ram
2023-09-10 10:13:18 UTC
Permalink
Post by Tim Landscheidt
Da kommen jetzt weder A5 bis A20 noch C5 vor. Vielleicht
kannst Du Deine Frage noch einmal umformulieren.
Allgemein zum Thema:

Es ist in der Praxis oft nützlich, wenn eine Mittelwertoperation
neben Zahlen auch noch einen besonderen Wert "_" verarbeiten
kann, welcher die Abwesenheit von Informationen kennzeichnet.

In Datenbanken wird so etwas als "NULL"-Wert bezeichnet.

In Excel würde ich mir auch einmal "DBMITTELWERT",
"MITTELWERTA", "NV", "ISTLEER", "ISTFEHL", "ISTFEHLER", "WENN",
"SUMMEWENN"/"ZÄHLENWENN" ansehen. (Ich weiß aber nicht, ob
eine von denen hier hilfreich wäre, da ich sie mir selber
mangels Zeit jetzt /nicht/ angesehen habe!)

Auf jeden Fall kann man aber mit "WENN" und WIMRE einer
"IST..."-Funktion eine Formel formulieren, welche fehlende
Ergebnisse für die Mittelwertbildung ignoriert. Ich hatte
das gerade gemacht, aber finde es jetzt nicht wieder.

Zu dem Thema hatte ich gerade erst etwas in "de.sci.mathematik"
geschrieben, was ich hier noch einmal anhänge:

~~

Ich denke, daß es möglich ist, einen Wert zu definieren,
welcher der neutrale Wert der (binären) Mittelwertoperation
ist, aber dieser Wert ist wohl keine reelle Zahl.

Sei dieser Wert nämlich "_", sei der binäre Operator für
den Mittelwert "~" und seien x, y reelle Zahlen, so kann
ich "_" definieren vermittels:

x ~ y :=( x + y )/2 für alle reellen x und y,
x ~ _ := x für alle reellen x,
_ ~ x := x für alle reellen x und
_ ~ _ := _ .

Excel kann die ersten drei Regeln umsetzen, aber nicht die letzte,
wenn man für "_" eine leere Zelle verwendet.

x y MITTELWERT( x, y ) z MITTELWERT( MITTELWERT( x, y ), z )
2 3 2.5 4 3.25
2 2.0 4 3
3 3.0 4 3.5
#DIV/0! #DIV/0!

Mit logischen Operationen kann man in Excel jedoch eine
Berechnungsvorschrift für den Mittelwert nachbauen, die
den Regeln für "_" genügt.

~~
Post by Tim Landscheidt
Fragt sich, ob sich widerspruchsfrei so ein Objekt "_" postulieren
lässt ... irgendwie hätte man ja dann auch gern _ + 2 und
dergleichen, d.h. würde mit "_" konsistent rechnen wollen (sonst
holt einen die Sinnfrage ein, wozu das "_" gut sein soll).
Ich nehme an, ich habe Paare von Meßwerten an aufeinanderfolgenden
Tagen:

0.274736376 0.431860893
0.517154055 0.464323506

0.728547338 0.459446139

. Am dritten Tag wurde die Eintragung versäumt. Jetzt sollen die
Mittelwerte jedes Paares berechnet werden:

0.274736376 0.431860893 0.353298634
0.517154055 0.464323506 0.49073878

0.728547338 0.459446139 0.593996739

. In der dritten Zeile ist der Mittelwert "_". In der Tabelle
notiere ich diesen Wert, indem ich die Zelle leer lasse. Die
Formel für den Mittelwert sollte dann am besten auch wieder "_"
ergeben, wenn die Werte des Paares beide "_" sind. Dann kann
ich immer denselben Ausdruck (Term) für die dritte Spalte
verwenden, auch in der dritten Zeile.

Nun füge ich ein gleitendes Mittel hinzu:

0.274736376 0.431860893 0.353298634 0.353298634
0.517154055 0.464323506 0.49073878 0.422018707
0.422018707
0.728547338 0.459446139 0.593996739 0.508007723

. Das gleitende Mittel ist der Mittelwert vom Wert links von
ihm und über ihm. Da der Mittelwert für den Fall, daß die Zelle
über ihm leer ("_") ist, sinnvoll definiert wurde, kann ich auch
hier wieder denselben Ausdruck (Term) in allen Zellen der letzten
Spalte verwenden.

Für das folgende habe ich leider keine deutschsprachige Quelle
zu Hand, so daß ich einige englische Begriffe verwenden muß.

In der Verbandstheorie besitzt ein vollständiger Verband ein
minimales Element, das auch /bottom/ genannt wird (Unicode:
8869).

In der /domain theory/ betrachtet man Erweiterungen von
Zahlenbereichen durch Hinzufügen eines /bottom/-Elements.

|A simple special case of a domain is known as an elementary
|or flat domain. This consists of a set of incomparable
|elements, such as the integers, along with a single "bottom"
|element considered smaller than all other elements.
Webseite "Domain Theory"

Das /bottom/-Element solch eines Verbands wird dann manchmal
so interpretiert, daß es die Abwesendheit von Informationen
(zum Beispiel: Informationen darüber, um welche ganze Zahl es
sich handelt) ausdrückt. (Ein /top/-Element wird umgekehrt
manchmals als "zu viel", d.h., widersprüchliche Information
interpretiert.)

Diese Art von Verbandstheorie spielt eine zentrale Rolle
in der /denotational semantics/, wo die Operationen von
Programmiersprachen durch mathematische Funktionen, die
mathematische Objekte auf mathematische Objekte abbilden,
dargestellt werden sollen.

Durch welche mathematische Funktion sollte eine Operation
dargestellt werden, die in bestimmten Fällen /nicht/ terminiert
(eine Endlosschleife)? Hier legt man dann fest, daß die entsprechende
mathematische Funktion für solche Werte /bottom/ ergibt.

|/Primitive/ domains may be formed by adjoining to finite or
|denumerable sets such as { true, false }, or { ... , 2, -1, 0,
|1, 2, ...} two special objects "_" (termed /bottom/, representing
|information which is completely undetermined) and "¯" (termed
|/top/, representing information which is consistent or
|overdetermined).
|
|The following may then be considered as primitive domains:
|N = { . . . , -2 , -1 , 0 , 1 , 2 , . . . }° integers
|T = { true, false}° truth values
|H = {"a", " b " , . . . }° characters
|
|where {...}° denotes the augmentation of the set by _ and ¯.
|
|In such domains the notion of approximation is very
|elementary: _ approximates all elements, all elements
|approximate ¯, and all other pairs are incomparable; hence
|there are no nontrivial limits or recursive definitions of
|elements in primitive domains, and the added structure is
|needed merely to satisfy the general requirements of the
|axioms and provide a basis for construction of more complex
|domains.
|
"The Denotational Semantics of Programming Languages" (1976),
R. D. Tennent

Normalerweise würde man sagen, daß die Addition (oder eine andere
Rechenoperation) von 1 zu einem maximal unbestimmten Wert wieder
einen maximal unbestimmten Wert ergibt. Bei der Definition eines
Mittelwertes erscheint es mir jedoch als oft praktisch, vor der
Bestimmung des Mittelwertes eines Tupels von Werten zunächst
alle unbekannten Werte einfach wegzulassen.

~~
Post by Tim Landscheidt
|/Primitive/ domains may be formed by adjoining to finite or
|denumerable sets such as { true, false }, or { ... , 2, -1, 0,
|1, 2, ...} two special objects "_" (termed /bottom/, representing
|information which is completely undetermined) and "¯" (termed
|/top/, representing information which is consistent or
|overdetermined).
Oben sollte es "inconsistent" statt "consistent" heißen (Fehler
in Tennents Artikel).

~~
Post by Tim Landscheidt
In der /domain theory/ betrachtet man Erweiterungen von
Zahlenbereichen durch Hinzufügen eines /bottom/-Elements.
Teilweise verwendet man auch /posets/ (partially-ordered sets).

Funktionen, die für ein /bottom/-Argument wieder /bottom/
ergeben, werden /strict/ genannt. (Den Begriff kennen einige
hier vielleicht von funktionalen Programmiersprachen.)

Für Funktionen zwischen /posets/ gibt es übrigens auch eine
Definition von Stetigkeit, die aber nicht mit der topologischen
gleichzusetzen ist. Dennoch verlangt sie eine Art von
"Strukturerhaltung": f(UA)=Uf(A) (Hier notiert "Ux" das Supremum
einer gerichteten Menge x.) Diese Definition der Stetigkeit
stammt vielleicht von Scott, und es muß ja wohl eine Analogie zur
topologischen geben, wegen der er sie "Stetigkeit" genannt hat.

Also, man könnte sagen, daß es praktisch ist, wenn man Operatoren
so definiert, daß sie strikt sind (unbekannt + 1 = unbekannt),
aber in einigen Fällen, wie bei der Mittelwertbildung, könnten
auch einmal nicht-strikte Definitionen sinnvoll sein.
Stefan Ram
2023-09-13 08:20:52 UTC
Permalink
Post by Stefan Ram
In Excel würde ich mir auch einmal "DBMITTELWERT",
"MITTELWERTA", "NV", "ISTLEER", "ISTFEHL", "ISTFEHLER", "WENN",
"SUMMEWENN"/"ZÄHLENWENN" ansehen. (Ich weiß aber nicht, ob
eine von denen hier hilfreich wäre, da ich sie mir selber
mangels Zeit jetzt /nicht/ angesehen habe!)
Auf jeden Fall kann man aber mit "WENN" und WIMRE einer
"IST..."-Funktion eine Formel formulieren, welche fehlende
Ergebnisse für die Mittelwertbildung ignoriert. Ich hatte
das gerade gemacht, aber finde es jetzt nicht wieder.
Noch ein paar Notizen dazu:

=WENN(ISTFEHLER(MITTELWERT(A5:B5)),"",MITTELWERT(A5:B5))

. Dies ergibt "", wenn alle Zellen aus dem Bereich A5:B5 leer sind.
Dies kann dann auch "verschachtelt" werden, also als Eingabe einer
weiteren Mittelwertberechnung derselben Art verwendet werden.

Ab Excel 2007 gibt es auch noch "MITTELWERTWENN" und
"MITTELWERTWENNS". Daneben gibt es natürlich immer die
Möglichkeit, Funktionen in VBA zu schreiben.

Kuriosität: Eine "versteckte" Funktion zur Berechnung eines
Mittelwertes kann auch "TEILERGEBNISSE" sein, wenn das erste
Argument "1", beziehungsweise "101", ist.

Kuriosität: "=PRODUKT(A1,A2)" unterscheidet sich von "=A1*A2": Wenn
A1 leer und A2 gleich 1 ist, so ergibt das erste "1", das zweite "0".
Christian Treffler
2023-09-10 07:47:19 UTC
Permalink
Post by Lutz E. Cerning
Wenn da nichts drin steht soll in z.B. C5 und ff. NICHTS (also nicht "")
durch eine dortige Formel erzeugt werden.
Hintergrund: Eine Mittelwert-Berechnung von z.B. C5 bis C20 führt zu
falschen Ergebnissen wenn diese Formel zwar "" erzeugt aber dort eben
DOCH etwas drin steht auch wenn nichts zu Sehen ist weil eben die ANZAHL
der (nicht vorhandenen Werte) aben 20 ist.
Interessanterweise habe ich (Microsoft Office Home & Student 2019)
dieses Problem nicht. Wenn ein "" in einer Zelle steht, wird das von der
Funktion Mittelwert ignoriert, auch bei der Anzahl der zu
berücksichtigenden Zellen. Wird auch so beschrieben:

https://support.microsoft.com/de-de/office/mittelwert-funktion-047bac88-d466-426c-a32b-8f33eb960cf6
| Enthält ein als Bereich oder Zellbezug angegebenes Argument Text,
| Wahrheitswerte oder leere Zellen, werden diese Werte ignoriert.
| Zellen, die den Wert 0 enthalten, werden dagegen berücksichtigt.
Post by Lutz E. Cerning
Ich habe keine Lust die jetzt notgedrungenen leeren Zellen mit der
darüber befindlichen durch Runterziehen zu füllen.
Vielleicht ist das ein Anwendungsfall für dyanmische Arrray-Funktionen:
https://www.excel-inside.de/beispiele_vba/1118-die-neuen-dynamischen-array-funktionen-in-excel-365

CU,
Christian
Loading...