Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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..
Antworten 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)
Antworten 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)
Antworten 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().
Antworten Top
#15
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
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)
Antworten 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.
Antworten 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)
Antworten 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!
Antworten Top


Gehe zu:


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