WENN und dynamische Arrays
#1
Hallo Excel Gemeinde,

vorab, keine Sorge die SuFu wurde verwendet und es lieferte keine Ergebnisse zu dem spezifischen Problem. Falls doch, bitte verlinken. 

Sonst:

Ich benutze diese Formel in Excel 2019:

Code:
=WENN(ISTLEER(A6);"";WENN($A$6:$A$100=Eintragen!$B$2:$B$96;"x";""))


Für die 6. Zeile funktioniert natürlich die Formel und durch dynamische Arrays überläuft diese auf die Zeilen 7-100. Die Formel ist dann für die 7. Zeile gleich, aber die Formel bezieht sich dann nur auf den Wert in A6. Es sollte aber A7 sein. 

In Excel 2010 hätte ich einfach die Formel runter gezogen und wäre glücklich. Mit den dynamischen Arrays kann ich nicht arbeiten. Ich kann keine weiteren Zeilen bearbeiten oder bekomme den #SPILL! Error. 

Mit STRG + ALT + Eingabe könnte ich das Problem irgendwie umgehen, aber ich will eine Lösung auch mit dynamischen Arrays arbeiten zu können. 
Insofern, kann man irgendwie die Formel für die nächste folgende Zeile des Arrays bearbeiten? Sodass ich aus A6 eine A7 zaubern kann? Oder gibt es andere bessere Mittel.

Danke an die die helfen.
Top
#2
Hallöchen,

$A6 geht nicht? Musst in dem Fall aber entweder $B2 nehmen oder $A100 damit die Bereiche gleich großbleiben.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
(25.01.2020, 17:37)schauan schrieb: Hallöchen,

$A6 geht nicht? Musst in dem Fall aber entweder $B2 nehmen oder $A100 damit die Bereiche gleich großbleiben.

Hi, 
danke für die Hilfe.

$A6 klappt leider nicht. Habe jetzt die Tabellen auch so angepasst, damit die Bereiche exakt gleich groß sind. Also A6:A100 und B6:B100

Leider funktioniert das auch nicht wie gewünscht. Die dynamische Array bleibt strikt bei $A6 für alle Zeilen von 6:100
Top
#4
Moin

Bei DA steht die Formel nur in der ersten Zelle. Alle anderen Zellen sind "leer". Der Rest geschieht im Arbeitsspeicher.
In der Bearbeitungszeile sieht man auch den Unterschied dass in den anderen Zellen die Schrift "heller" ist.

Zu deiner Formel. Es geht auch kürzer:
Code:
=WENN(A6:A100=Eintragen!B6:B100;"x";"")
Oder ohne DA:
Code:
=WENN(A6=Eintragen!B6;"x";"")
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
(25.01.2020, 18:01)shift-del schrieb: Moin

Bei DA steht die Formel nur in der ersten Zelle. Alle anderen Zellen sind "leer". Der Rest geschieht im Arbeitsspeicher.
In der Bearbeitungszeile sieht man auch den Unterschied dass in den anderen Zellen die Schrift "heller" ist.

Zu deiner Formel. Es geht auch kürzer:
Code:
=WENN(A6:A100=Eintragen!B6:B100;"x";"")
Oder ohne DA:
Code:
=WENN(A6=Eintragen!B6;"x";"")


Danke auch für deine Hilfe.
Das ist Mal ne interessante Info bezüglich des Arbeitsspeichers. Gibt es Wege die ausgegrauten Formula zu bearbeiten. Beziehungsweise in der Ursprungsformel etwas zu integrieren, damit die Formel die Zellen von A6:A100 durchgeht? 
Das war erstmal die technische Frage. 


Die erste Formel, die du erwähnst, hatte ich auch vorher verwendet. Das Problem ist, dass zwischendurch Leerzeilen existieren. Und deswegen verschachtelte ich die Formel in eine andere wenn Formel, um Leerzeilen zu ignorieren. 
Sonst würde für jede Leerzeile ein x eingetragen, was nicht erwünscht ist.

Edit:

Die zweite Formel prüfe ich auch sofort. Trotzdem sind die obigen Fragen weiterhin interessant.
Top
#6
Hi,


Zitat:Das Problem ist, dass zwischendurch Leerzeilen existieren.
dann setz ein WENN() voran.
Code:
=WENN(A6="";"";deine Formel)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#7
(25.01.2020, 18:54)WillWissen schrieb: Hi,


dann setz ein WENN() voran.
Code:
=WENN(A6="";"";deine Formel)

Und damit sind wir beim Ursprungsproblem bei der Threaderstellung.
Top
#8
Hallöchen,

die Bereiche waren doch schon gleich groß...

=WENN(ISTLEER(A6);"";WENN($A$6:$A$100=Eintragen!$B$2:$B$96;"x";""))

dann

=WENN(ISTLEER(A6);"";WENN($A6:$A100=Eintragen!$B$2:$B$96;"x";""))

oder

=WENN(ISTLEER(A6);"";WENN($A6:$A$100=Eintragen!$B2:$B$96;"x";""))

Wenn Du die Formel runter ziehst sollte sich A6 doch dann immer anpassen. Ich hab leider auch nur 2016, und da funktioniert das auch noch so.
Eine Zeile tiefer steht dann je nach Variante entweder

=WENN(ISTLEER(A7);"";WENN($A7:$A$100=$B3:$B$96;"x";""))

oder

=WENN(ISTLEER(A7);"";WENN($A7:$A101=$B$2:$B$96;"x";""))
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Haha. Ja bei Excel 2016 wäre ich glücklich geworden. Mit Excel 2019 kann ich die Formel nicht mehr runterziehen. Stattdessen entsteht ein dynamisches Array und die darauffolgenden Zeilen lassen sich nicht mehr bearbeiten.
Top
#10
(25.01.2020, 18:51)Neso3011 schrieb: Gibt es Wege die ausgegrauten Formula zu bearbeiten.
Nein, das hatte ich doch bereits erklärt.

(25.01.2020, 18:51)Neso3011 schrieb: Das Problem ist, dass zwischendurch Leerzeilen existieren. Und deswegen verschachtelte ich die Formel in eine andere wenn Formel, um Leerzeilen zu ignorieren. 
Sonst würde für jede Leerzeile ein x eingetragen, was nicht erwünscht ist.
Jetzt verstehe ich. Es gibt in beiden Listen an der selben Stelle leere Zellen. Das muss einem auch explizit erklärt werden oder noch besser man lädt eine Beispielmappe mit Wunschergebnis hoch.

DA
Code:
=WENN(A6:A100="";"";WENN(A6:A100=Eintragen!B6:B100;"x";""))
Non-DA
Code:
=WENN(A6="";"";WENN(A6=Eintragen!B6;"x";""))
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top


Gehe zu:


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