Clever-Excel-Forum

Normale Version: Alternativen: Summe oder Buchstabe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
190
2120
3KK
4X
5X
6180
7390KK

ZelleFormel
C1=""
A7=WENN(SUMME(A1:A6);SUMME(A1:A6);INDEX(A1:A6;VERGLEICH("*?*";A1:A6;0)))
B7=WENN(SUMME(B1:B6);SUMME(B1:B6);INDEX(B1:B6;VERGLEICH("*?*";B1:B6;0)))
C7=WENN(SUMME(C1:C6);SUMME(C1:C6);INDEX(C1:C6;VERGLEICH("*?*";C1:C6;0)))
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Dann halt so..
@Günter:
Dann musst Du da eins reingeschmuggelt haben. ;)
Bei mir ist keins vorhanden (="" kann ja auch keins erzeugen).

Wie dem auch sei:
Detlef (Shift-Del) hat in manch Signatur den Hinweis auf die absolut geile Universal-Funktion INDEX()
Ich habe mittlerweile unfassbar viele Anwendungen dieser Funktion in meinem Repertoire, allerdings war mir LCohens Variante neu.
Neu bedeutet, dass ich das auch in der Literatur so noch nicht gesehen habe.

Ich bedanke mich aber ausdrücklich bei allen, die mir an diesem schwülen Abend Inputs gegeben haben!
Und jetzt muss ich nur noch meine Vorlage anpassen.
Unnötig zu erwähnen, dass es etwas komplizierter wird …

Gruß Ralf
Nachtrag:
Ich habe mich im Endeffekt für den Vergleich mittels "*?*" entschieden (Frogger), behalte aber die ungewöhnliche INDEX()-Variante im Auge.
@Jörg:
Ich kenne die 1/1/SUMME()-Geschichte!
Da ich mich aber wohl nur noch einen Monat beim derzeitigen Auftraggeber herumtreibe, belasse ich es bei der Prüfung auf SUMME(), um mit der Summe weitere Berechnungen anzustoßen.
(Summe()>0 als Wahrheitswert)

Nochmals besten Dank, ich setze auf erledigt.

Gruß Ralf
Die INDEX-Variante wird letztlich wie der Rückwärtsverweis VERWEIS(2;1/( sowie AGGREGAT mit Bedingung verwendet. Mit {} geht es auch ohne den inneren INDEX().
Moin!
Nochmal von ganz oben:
(01.06.2018, 17:38)LCohen schrieb: [ -> ](aus meiner Autofilter-Formel) ungetestet und Datei nicht geöffnet:
=WENN(SUMME(A1:A6);SUMME(A1:A6);INDEX(A1:A6;VERGLEICH(WAHR;INDEX(A1:A6<>"";);0)))

ab 2007 auch möglich (eine Berechnung weniger):
=WENNFEHLER(1/(1/SUMME(A1:A6));INDEX(A1:A6;VERGLEICH(WAHR;INDEX(A1:A6<>"";);0)))

Null und Summe Null (z.B. 2-2+2-2) gelten nicht als Zahlen.

Das rot markierte sehe ich anders!
Wenn ich zweimal den Kehrwert einer Summe bilde, um entweder die Summe oder einen Fehlerwert zu erhalten, sind das drei Berechnungen.
Wenn ich die Summe als Wahrheitswert "missbrauche", um die Summe zu bilden, sind das zwei Berechnungen.
Außerdem dürfte imho (auch) für einen PC eine Addition weniger Ressourcen benötigen als eine Division.

Two Cents,
Ralf
a) dafür müsste man halt die Zeit messen - Du könntest durchaus recht haben, da SUMME sehr schnell ist. Bei SUMME(A1:A99999) dürfte es aber spätestens kippen. Ob gleiche Ausdrücke durch Excel erkannt werden und nur einmal gerechnet werden, sollte man in diesem Zusammenhang auch noch einmal selbst be- oder widerlegen. Es gab mal die Vermutung dazu; wo, weiß ich grad nicht.

b) Reduzierung von Termen finde ich aber auch sonst ganz schön. Schafft man es nämlich runter auf nur noch einen Teil-Ausdruck (also keine Wiederholung desselben), kann man die Formel auch direkt ohne eine notwendige Hilfszelle mit eben diesem Ausdruck versorgen, selbst wenn er komplex oder lang oder rechenintensiv ist. Soweit zu diesem Motiv.

Hilfszellenvermeidung ist zwar in den meisten Fällen übertrieben (für Einzelzellen oder auch Vektoren), aber spätestens in Matrizen ganz angenehm ... wenn es sich vertreten lässt.
Wie Du mich kennst, hab ich das mal gleich getestet:


Modul Modul1
Option Explicit 
 
Sub FillIt() 
With Range("A1:Z1048576") 
  .Clear 
  .Value = 2 
End With 
End Sub 
 
Sub WennSumme() 
Dim Start# 
Start = Timer 
Range("AA1").Formula = "=IF(SUM(A:Z),SUM(A:Z))" 
Debug.Print Format(Timer - Start, "0.00 sec.") 
End Sub 
 
Sub DoppelterKehrwert() 
Dim Start# 
Start = Timer 
Range("AA1").Formula = "=1/(1/SUM(A:Z))" 
Debug.Print Format(Timer - Start, "0.00 sec.") 
End Sub 


"Meine" doppelte Summe dauert bei mir tatsächlich doppelt so lang wie der doppelte Kehrwert.
Direktfenster schrieb:0,58 sec.
0,29 sec.
Dass es so krass würde, hätte ich (und Jockel möglicherweise) nun auch nicht gedacht. Allerdings fehlt das WENNFEHLER, welches minimal die gemessene Zeit erhöhen dürfte.

Widerlegt ist damit jedenfalls die Erkennung und Zusammenfassung gleicher Berechnungsteile in einer Formel.

Vielen Dank Dir für diesen Nachweis, der sicherlich für alle Excel-User interessant sein dürfte!
Seiten: 1 2