jangir
Goto Top

EXCEL - Werte aus Spalte B die Wert aus Spalte A nicht enthalten in Spalte C kopieren

Hallo zusammen,

Ich habe eine Exceltabelle die folgendermassen aussieht:

A "Nadeln" B "Heuhaufen" C "Heuhaufen ohne Nadeln"
ich sie ist sie sind
du er ist sie ist
er sie sind
wir ich heisse


Spalte A ist sozusagen die "Nadel", Spalte B der "Heuhaufen". In Spalte B will ich alle Werte aus Spalte B die keine "Nadel" aus Spalte A enthalten.


Ist das ohne Makro möglich?

Herzlichsten Dank schon im Voraus für Eure Hilfe!

Content-Key: 206454

Url: https://administrator.de/contentid/206454

Printed on: April 16, 2024 at 09:04 o'clock

Member: bastla
bastla May 14, 2013 updated at 16:29:42 (UTC)
Goto Top
Hallo jangir und willkommen im Forum (ja, wir mögen hier eine Begrüßung)!

Magst Du Deine Beschreibung noch mal überarbeiten, sodass erkennbar wird, was nun wo steht und wo hin soll? Für die Darstellung als Tabelle gibt es übrigens auch eine passende Formatierung ...

Grüße
bastla
Member: colinardo
colinardo May 14, 2013 at 17:50:31 (UTC)
Goto Top
Hi,
meinst du das so ?

A B C D
du er sie es du =WENN(NICHT(ISTFEHLER(FINDEN(A1;B1;1)));"";B1) <= match
er sie ihn wir =WENN(NICHT(ISTFEHLER(FINDEN(A2;B2;1)));"";B2) <= nomatch
Member: jangir
jangir May 14, 2013 at 18:05:36 (UTC)
Goto Top
Hey,

ich hab meinen Post oben upgedatet.Ich hoffe jetzt ist es verständlicher,

ich suche alle "Heuhaufen" in denen keine "Nadel" zu finden ist.
Die Frage ist also - ist in B1 irgendein Wort aus A enthalten? Wenn nicht, dann Treffer

@colinaro: Wenn ich deine Antwort richtig verstehe überprüft diese nur ob A1 in B1 enthalten ist.Ich will aber auch wissen ob A2, A3, ... Ax in B1 enthalten ist und nur wenn für Alle Ax ein NEIN herauskommt ist B1 ein Treffer.

Danke schonmal für die Mühe,
Jan
Member: bastla
bastla May 14, 2013 at 20:35:14 (UTC)
Goto Top
Hallo jangir!

Ohne Makro könntest Du nur etwa so vorgehen:
=SUMME(WENN(ISTFEHLER(FINDEN($A$1:$A$4;B1));0;1))
Durch Eingabe in C1 als "Array"-Formel (Abschluss der Eingabe anstatt nur mit Enter mit der Kombination Strg-Umsch-Enter, und zwar auch nach jeder Bearbeitung der Formel - in der Bearbeitungsleiste wird sie dann zwischen geschwungenen Klammern angezeigt) erhältst Du damit die Anzahl der Wörter aus A1:A4, die in B1 enthalten sind. Mit
=WENN(C1=0;B1;"")
könntest Du dann in D1 den Inhalt von B1 (oder nix) anzeigen lassen.

Diese Formeln lassen sich zwar nach unten kopieren, aber das Ergebnis ist nicht die von Dir gewünschte fortlaufende Liste, sondern in der Spalte D bleiben Lücken für jene "Heuhaufen", in denen sich mindestens eine "Nadel" befindet. Du kannst allerdings in weiterer Folge den Inhalt der Spalte D als "Wert" kopieren und durch Sortierung doch noch eine Liste erhalten - nur das alles eben (ohne VBA) nicht "automatisch" ...

Grüße
bastla
Member: Biber
Biber May 14, 2013 updated at 22:10:20 (UTC)
Goto Top
Moin bastla,

wenn ich von deinen Ansatz ausgehend mit 2 Hilfsspalten arbeite, dann geht es auch mit EXCEL-Formeln.
Hilfsspalte #1 lege ich in D an.
Eingabe in D1:
{=SUMME(WENN(ISTFEHLER(FINDEN($A$1:$A$4;B1));0;-1))+ZEILE()%%}
als Matrixformel mit Strg-Shift-Enter eingegeben und nach unten kopiert bis B4
--> liefert mir einen Wert von 0,irgendwas für alle Zellen der B-Spalte, die später "übrigbleiben" sollen.
--> und einen negativen Zahlenwert für alle B-Zellen, die rausfallen werden.

Mit einer zweiten Hilfsspalte bringe ich das in eine RANG()-Folge.
Eingabe in E1:
=RANG($D1;$D$1:$D$4)
als normale Formel und nach unten kopieren.

Dann kann ich entspannt in die "Anzeigespalte" C1 schreiben:
=WENN(ZEILE(A1)>ZÄHLENWENN($D$1:$D$4;">0");"";INDEX($B$1:$B$4;VERGLEICH(ZEILE(A1);$E$1:$E$4;FALSCH);1))
.. wieder als normale Formel, und nach unten kopieren.

Geht bestimmt auch mit nur einer Hilfsspalte (oder gar ganz ohne?), aber dafür fehlen mir die Kenntnisse.

Grüße
Biber
Member: jangir
jangir May 15, 2013 at 08:07:56 (UTC)
Goto Top
Guten Morgen zusammen,

danke für die Antworten - sie ergaben leider auf Anhieb nicht das richtige Ergebnis und ich für meinen Teil finde Excel zu kompliziert als dass ich das ganze an meine Bedürfnisse anpassen könnte.

Deswegen bin ich jetzt auf das umgestiegen was ich besser kann - PHP. Hier die Funktion:

function haysWithoutNeedles($haystacks, $needles){
foreach($haystacks as $hay){
$found = 0;
foreach($needles as $needle){
if(stristr($hay, $needle)){
$found = 1;
}
}
if($found == 0){$nomatches = $hay;}
}
return $nomatches;
}

Viele Grüße,
Jan
Member: bastla
bastla May 15, 2013 at 12:46:09 (UTC)
Goto Top
Hallo jangir!

Ich hätte ja VBA verwendet, aber Deine Fragestellung so interpretiert, dass Du ein Makro vermeiden wolltest ...

Grüße
bastla
Member: Biber
Biber May 15, 2013 updated at 15:18:37 (UTC)
Goto Top
[OT]
@bastla
Zitat von @bastla:
Ich hätte ja VBA verwendet, aber Deine Fragestellung so interpretiert, dass Du ein Makro vermeiden wolltest ...

Grüße
bastla
...wenn es doch aber einfacher ist, diese Excel-Tabelle mit einem Stückchen PHP-Code zu befüllen... face-wink
[/OT]

@jangir

Natürlich hätte jeder/r von uns eher ein Werkzeug dafür vorgezogen, das zumindest so etwas wie FOREACH verstehen kann. Ich hatte dich aber auch so verstanden, dass die Funktionalität nun leider Gottes in irgendeiner ganz feindlichen Umgebung abgebildet werden soll, wo außer Excel-Formeln nun gar nix erlaubt ist.

Ist denn nicht dieses Needles/Haystack-Problem eine klassische Java-Vorpraktikumsaufgabe?

Grüße
Biber