Alternativen: Summe oder Buchstabe
#11
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..
Top
#12
@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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#13
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#14
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().
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#15
Moin!
Nochmal von ganz oben:
(01.06.2018, 18: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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#16
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.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#17
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.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#18
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!
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


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