Microsoft Excel

Herbers Excel/VBA-Archiv

Vergleich mit Leerzelle


Betrifft: Vergleich mit Leerzelle von: Klaudius
Geschrieben am: 22.05.2017 18:18:46

Hallo

möchte aus einer Zeile die erste leere Spalte ausgeben
Die Formel:

=Vergleich("="&"";B1:Z1;0) liefert aber nur #NV ab
Wo liegt der Hacken ??

  

Betrifft: AW: nicht VERGLEICH() sondern VERWEIS() ... von: ... neopa C
Geschrieben am: 22.05.2017 19:22:58

Hallo Klaudius,

.... so: =VERWEIS(9;1/(1:1<>"");1+SPALTE(1:1))

Gruß Werner
.. , - ...


  

Betrifft: Deine Fml setzt voraus, dass alle Zellen vor ... von: Luc:-?
Geschrieben am: 22.05.2017 20:51:40

…der 1.leeren gefüllt und vor allem danach ebenfalls leer sind, Werner;
eine leere Zelle mitten im angegebenen Bereich wird so nicht gefunden!
Was Klaudius nun wirklich haben will, ist so nicht 100%ig klar, was Du ja idR nachfragst… ;-)
Gruß, Luc :-?


  

Betrifft: AW: ja, hatte ich vorausgesetzt, ... von: ... neopa C
Geschrieben am: 23.05.2017 08:45:50

Hallo Luc,

... weil es mir naheliegend erschien, dass die erste Spaltennummer nach dem letzten Wert gesucht wäre.

Du hast aber natürlich Recht, dass dies nicht so sein muss und auch Recht damit, das nicht eindeutig ist, was Klaudius nun wirklich sucht. Deine und Daniels getroffenen Annahmen können insofern genauso nicht zutreffend sein, wenn man Klaudius Aussage: "die erste leere Spalte" auf die Goldwaage legt.

Möglicherweise meint Klaudius wirklich nur die erste leere Zelle in B1:Z1. Aber auch diese lässt ohne klassische Matrixformel mit einer Matrixfunktion(alität)sformel ermitteln:

=ADRESSE(1;1+VERGLEICH("";INDEX(B1:Z1&"";););)

Gruß Werner
.. , - ...


  

Betrifft: Ja, klar, so erhältst Du die vollständige ... von: Luc:-?
Geschrieben am: 23.05.2017 15:38:03

…ZellAdresse, Werner,
und dank INDEX auch ohne Kennzeichnung als MatrixFml, was dann auch für meine Variante gilt.
Interessant ist aber etwas Anderes, nämlich das 3.Argument von ADRESSE, das Du vorsiehst, aber nicht angibst, was norma­ler­weise 0 bedeutet. Hier sind aber die Werte 1…4 vorgesehen, was dann dazu führt, dass auch in diesem Fall 1, nicht 0, verwendet wird und bei Aufruf des FmlAssis dieses unnötige ; sogar entfernt wird, eine eingetragene 0 dann aber zu einem #WERT!-Fehler führt!
Letztlich ist dieses Argument in Xl ja auch falsch herum angelegt worden, weshalb der Pgmmierer dann derartige Klimmzüge entgg der sonst üblichen Verfahrensweise veranstalten musste (in VBA ist das für die Range-Eigenschaft .Address nämlich genau anders, nämlich richtig herum konstruiert (0 bzw eigentlich False bedeutet relativ)!
Übrigens, ich habe inzwischen auch ein Bsp für AGGREGAT mit erforderlicher MatrixFml-Form gefunden. Die Überprüfung Deiner StandardVerwendung unter Hinzunahme von INDEX führte dann automatisch zu einer dualen MatrixFml, während sonst eine singulare ausreichen würde. Das will ich noch in mein Bsp einbauen, dann erscheint es zu diesem aktuellen Thread
(Archiv: https://www.herber.de/forum/archiv/1556to1560/t1559794.htm#1559794 ).
Gruß, Luc :-?


  

Betrifft: AW: hierzu ... von: ... neopa C
Geschrieben am: 23.05.2017 16:51:08

Hallo Luc,

... antworte ich Dir nun auch in diesem thread. AGGREGAT()kann man sehr wohl auch innerhalb einer klassischen Matrixformel einsetzen. Habe ich auch schon getan (war aber bisher sehr selten notwendig.

Das Problem im anderen thread ist, dass die Funktionen 7 und 8 von AGGREGAT() nicht wirklich Matrixversionsfähig im Sinne (m)einer Matrixfunktion(alität)sformel sind. Darauf verweist ja MS ja auch in der Onlinehilfe.

Insofern ist dort eine klassische Matrixformel derart, wie Du sie da aufgezeigt hast, derzeit wohl eine gut geeignete Lösungsformel.

Allerdings widerspreche ich Dir bzgl. Deiner dortigen Aussage, dass eine Lösung mit AGGREGAT() und INDEX() nicht ohne klassische Matrixformel funktionieren würde. Du hast allerdings völlig Recht damit, dass eine derartige Lösungsformel nur unnötig sehr lang würde und durch den Mehreinsatz von Funktionen die Auswertung nur verlangsamt.

Gruß Werner
.. , - ...


  

Betrifft: Nun gut, das muss ich mir noch ansehen und ... von: Luc:-?
Geschrieben am: 23.05.2017 18:16:44

…jetzt ist auch meine Zusammenstellung überarbeitet, Werner;
zu meinen auf Deine Lösung hier bezogenen Ausführungen hast Du ja offensichtlich keine weiteren Bemerkungen… ;-]
Luc :-?


  

Betrifft: AW: was kann man dazu auch schreiben ... von: ... neopa C
Geschrieben am: 24.05.2017 17:13:42

Hallo Luc,

... außer festzustellen, dass diese Funktion offensichtlich wieder von einem anderen MA programmiert wurde und es keine einheitliche Richtlinien für die Argumentdefinitionen gab. oder was meinst Du?

Gruß Werner
.. , - ...


  

Betrifft: Bingo, würde ich Dir antworten, Werner! ;-) owT von: Luc:-?
Geschrieben am: 24.05.2017 20:26:56

:-?


  

Betrifft: Wahrscheinlich dort, wo du ihn verloren hast, ... von: Luc:-?
Geschrieben am: 22.05.2017 19:26:32

…Klaudius; ;-]
der Haken besteht dann darin, dass du einerseits wohl nur dann nach "=" suchen solltest, wenn du auch ein = finden willst (Syntax von VERGLEICH nachlesen!) und andererseits zum Feststellen leerer Zellen bei dieser Methode "" (Leertext) nichts nutzt. Dafür ist die Fkt ISTLEER vorgesehen. Du kannst nun eine reine ReihenfolgeZahl ausgeben (die n. in B1:Z1) …
{=VERGLEICH(WAHR;ISTLEER(B1:Z1);0)}
oder auch die SpaltenNr (hier mit #NV-Ersatz):
{=WENNFEHLER(VERGLEICH(WAHR;ISTLEER(B1:Z1);0)+1;0)}
Beide Fmln sind singulare (1zellig-1wertige) MatrixFmln und müssen deshalb mit TastenKombi [strg][umsch][enter] statt nur [enter] abgeschlossen wdn. Unter Verwendung von AGGREGAT in der sog Matrix­version sollte man das auch als NormalFml (aber länger!) hinbekommen.
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: AW: Vergleich mit Leerzelle von: Daniel
Geschrieben am: 22.05.2017 19:48:53

Hi
Leerzellen sind immer ein bisschen schwierig.

so gehts mit Vergleich:

=Vergleich("";B1:Z1&"";0)

das ist aber eine Matrixformel, dh du musst die Eingabe immer mit STRG+SHIFT+ENTER abschließen.

Gruß Daniel


Beiträge aus den Excel-Beispielen zum Thema "Vergleich mit Leerzelle"