Microsoft Excel

Herbers Excel/VBA-Archiv

Excel loop ohne VBA

Betrifft: Excel loop ohne VBA von: Matz
Geschrieben am: 26.08.2014 12:06:32

Liebe Experten,

ich muss eine Formel kreieren, die eine Information(Primärschlüssel) unter Bedingungen (Feasibilityliste Spalte S&U) aus einem Arbeitsblatt, in ein neues Arbeitsblatt überträgt.

Die Zielzellen für den Informationsübertrag sind in Spalte A in der Tabelle "Studienliste". Die aktuelle Formel in dieser Spalte beschreibt die Bedingung, die für den Übertrag der Zellinhalte gilt...

=WENN(UND(Feasilibiltyliste!S3="Ja";Feasilibiltyliste!U3="Ja");Feasilibiltyliste!B3;"")

Die Formel funktioniert einwandfrei, allerdings werden Leerfelder eingefügt, wenn nicht beide Bedingungen erfüllt sind. Diese sollen weg.
Der Sonst_Wert sollte demensprechend nicht " " heißen, sondern "dann prüfe den nächsten Wert der Spalte, solange bis du eine ID findest bei der beide Bedingung (U3 & S3) erfüllt sind".

In Foren habe ich gelesen, dass dies Prinzipiell mit der INDEX() Formel möglich ist. Ich habe es allerdings nicht geschafft die WENN(UND( Bedingung in die INDEX Formel zu integrieren. Kann da jemand weiterhelfen? Wenn möglich ohne VBA.

Fettes Merci schonmal, Gruß Matz

  

Betrifft: AW: Excel loop ohne VBA von: Rudi Maintaire
Geschrieben am: 26.08.2014 12:24:09

Hallo,
Schema:

ABCDE
2janeina d
3janeinb f
4neinjac g
5jajad  
6neinneine  
7jajaf  
8jajag  

ZelleFormel
E2{=WENNFEHLER(INDEX($C$2:$C$8;KKLEINSTE(WENN(($A$2:$A$8="ja")*($B$2:$B$8="ja");ZEILE($1:$7);"");ZEILE(A1)));"")}
Achtung, Matrixformel!
Die geschweiften Klammern{} nicht eingeben,
sondern die Zelle mit
Shift + Strg + Enter
verlassen statt Enter alleine.


Gruß
Rudi


  

Betrifft: oder ohne Matrixformel, mit Hilfsspalte von: Klaus M.vdT.
Geschrieben am: 26.08.2014 12:42:31

Hi Matz,
alternativ zu Rudis Formel eine Lösung mit Hilfsspalte, die auf langen Listen performanter sein könnte.

In Rudi's Schema in D2 (die Hilfsspalte):
=WENN(UND(A2="ja";B2="ja");ZEILE(A1);"")
und nach unten kopieren. Die Liste ohne Wiederholung dann ab E2:
=WENNFEHLER(INDEX(C:C;VERGLEICH(KKLEINSTE(D:D;ZEILE(A1));D:D;));"")
und ebenso nach unten kopieren.

Grüße,
Klaus M.vdT.