viewpoint
Goto Top

Prüfen ob Wert schon vorkommt

Ich muss in einem Excel prüfen, ob ein bestimmter Wert bereits vorkommt

Hallo!

Ich muss prüfen, ob der Wert aus Zelle A2 (z.B. eine Rechnungsnummer) in einem anderen Tabellenblatt in Spalte A schon irgendwo vorkommt. Sollte er vorkommen, soll ich Zelle R2 "wurde verrechnet" stehen.
Optimal wäre es, wenn der Inhalt aus Zelle B2 gelöscht wird, wenn der Wert in dem anderen Tabellenblatt nicht vorkommt.
Welche Formel kann ich hier verwenden?

Lg. Andreas

Content-Key: 119532

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: lindi200000
lindi200000 Jul 01, 2009 at 14:07:36 (UTC)
Goto Top
Ich würde das mit einer Kombination aus der Funktion "WENN" und aus der Funktion "SVERWEIS" machen.

Das ist aber nur ma so schnell überlegt, ob es klappt kann ich nicht garantieren.
Member: viewpoint
viewpoint Jul 01, 2009 at 14:16:03 (UTC)
Goto Top
sieht eigentlich ganz gut aus - nur scheint es nur bei Zahlen zu funktionieren. Sobald ein Buchstabe in dem Wert vorkommt, gibt er #WERT aus face-sad
Hab nun die Zellen als "Text" formatiert was leider nix brachte
Member: Snowman25
Snowman25 Jul 01, 2009 at 14:17:16 (UTC)
Goto Top
ich hab hier leider nur die englische version, aber das hier klappt:
=IF(OR(A2=Sheet2!A1;A2=Sheet2!A2;A2=Sheet2!A3;A2=Sheet2!A4;A2=Sheet2!A5;A2=Sheet2!A6;A2=Sheet2!A7;A2=Sheet2!A8;A2=Sheet2!A9;A2=Sheet2!A10)=TRUE;"wurde verrechnet";"Wurde NICHT verrechnet")  

Muss man eben beliebig erweitern
und die deutsche übersetzung dürfte auch nicht so schwer sein:

=WENN(ODER(A2=Sheet2!A1;A2=Sheet2!A2;A2=Sheet2!A3;A2=Sheet2!A4;A2=Sheet2!A5;A2=Sheet2!A6;A2=Sheet2!A7;A2=Sheet2!A8;A2=Sheet2!A9;A2=Sheet2!A10)=WAHR;"wurde verrechnet";"Wurde NICHT verrechnet")  

Die Formel in der Zelle benutzen, in der die Werte wurde verrechnet und wurde NICHT verrechnet stehen sollen
Member: viewpoint
viewpoint Jul 01, 2009 at 14:51:40 (UTC)
Goto Top
Hallo!

Sehe ich richtig, dass in der IF Klammer sämtliche Zellen eingetragen werden müssen, die durchsucht werden sollen?
Ich hab es jetzt mit
A2=Sheet2!A1:A5000

versucht, allerdings gibt er mir hier jedes mal aus, dass nicht verrechnet wurde - und wenn ich in A2 eine fiktive Zahl schreibe, sieht es genau so aus wie bei einer Rechnungsnummer die tatsächlich in Sheet2 existiert.
Member: Snowman25
Snowman25 Jul 01, 2009 at 15:00:34 (UTC)
Goto Top
deswegen müssen alle von hand eingetragen werden.
Würde ich angeben:
Sheet2!A:A wäre der rückgabewert 1; also nicht das, was ich möchte.
Du könntest es allerdings mit einem VB-Script versuchen, nur leider sind meine VBS-Kentnisse praktisch nicht vorhanden. Aber als Denkanstoss:

[zelle] = 0
SCHLEIFE bis 10000 oder mehr
	[zelle] = [zelle] + 1
	WENN (A2 = [zelle]) WAHR
		R2 = "wurde berechnet"  
		gehe zu EOF
	SONST
		R2 = "wurde NICHT berechnet"  
	ENDE_WENN	
ENDE_SCHLEIFE
:EOF
Member: bastla
bastla Jul 01, 2009 at 22:59:44 (UTC)
Goto Top
Hallo viewpoint!

Teil 1 (Prüfen, ob der Wert bereits im anderen Blatt steht) ist mit der folgenden Formel für R2 einfach:
=WENN(ZÄHLENWENN('Anderes Blatt'!$A:$A;A2)>0;"wurde verrechnet";"")
Das Löschen des Wertes aus B2 lässt sich allerdings nur per VBA machen (zumindest, wenn, wie ich vermute, diese Zelle eine Konstante enthält) ...

Grüße
bastla
Member: Snowman25
Snowman25 Jul 02, 2009 at 06:44:14 (UTC)
Goto Top
naja, du kannst doch als SONST-antwort angeben: B2=""
oder funktioniert das nicht?
Member: bastla
bastla Jul 02, 2009 at 07:07:54 (UTC)
Goto Top
@Snowman25
naja, du kannst doch als SONST-antwort angeben: B2=""
oder funktioniert das nicht?
Wie sind denn Deine Erfahrungswerte damit (denn einen Rat zu geben, von dem Du selbst nicht weißt, ob er überhaupt zielführend sein kann, hattest Du ja sicherlich nicht vor)?

Grüße
bastla
Member: Snowman25
Snowman25 Jul 02, 2009 at 07:25:49 (UTC)
Goto Top
ich war mir nicht sicher ob seine version von Excel das unterstützt.
Meine tut es nicht aber vllt. kann das ja eine spätere.

und wegen B2:
solange hier keine manuellen eingaben gemacht werden ließe sich das auch mit einer eigenen Formel lösen.
Member: viewpoint
viewpoint Jul 02, 2009 at 07:26:49 (UTC)
Goto Top
Äußerst simpel und sofort zielführend! Perfekt

Hast du für das 2. auch Anstoß?
Schön wäre es, wenn der Wert einer anderen Zelle auf "0" gesetzt wird, wenn nicht "wurde verrechnet" rauskommt.
Member: Snowman25
Snowman25 Jul 02, 2009 at 07:34:44 (UTC)
Goto Top
ohne VBA geht das nur, solange in die Zelle, die die 0 enthalten soll, keine manuellen einaben gemacht werden.
=WENN(R2=" ";"0";"")
dazu auch noch in den zelleneigenschaften festlegen, dass eine 0 angezeigt wird

funktioniert aber nur, wenn R2 so aussieht:
=WENN(ZÄHLENWENN(Sheet2!$A:$A;A2)>0;"wurde verrechnet";" ")
wichtig ist hierbei das Leerzeichen im Falle keiner übereinstimmung

Du meintest doch für B2 den gleichen Bereich wie für R2, oder?
Member: bastla
bastla Jul 02, 2009 at 07:35:18 (UTC)
Goto Top
Hallo viewpoint!

Wie erwähnt, wenn ein konstanter Wert in der Zelle steht, kannst Du diesen nicht per Formel "löschen" - dazu müsste die Zelle B2 selbst eine Formel der Art
=WENN(ZÄHLENWENN('Anderes Blatt'!$A:$A;A2)=0;Konstante;0)
enthalten.

Allerdings ist das ja eher eine Frage der Optik, denn wenn der Inhalt der Zelle B2 weiterverarbeitet werden soll, kannst Du natürlich wieder auf das "ZÄHLENWENN()" zurückgreifen und etwa folgende Formel zur Berechnung von 3% des Inhaltes von B2 verwenden:
=WENN(ZÄHLENWENN('Anderes Blatt'!$A:$A;A2)=0;B2*3%;0)
Grüße
bastla

[Edit] @Snowman25: Der Umweg über R2 ist nicht nötig - die Abfrage kann, wie gezeigt, nach dem selben Schema erfolgen; abgesehen davon kann ich den Sinn des Leerzeichens für R2 nicht erkennen: wenn die Zelle leer sein soll, dann braucht sie auch kein Leerzeichen zu enthalten, sondern einfach "". [/Edit]
Member: Snowman25
Snowman25 Jul 02, 2009 at 07:42:42 (UTC)
Goto Top
dann würde die zelle aber IMMER ein 0 anzeigen, was oft ein layout oder sonstiges stört.
Das Leerzeichen fungiert hier als dummy um eben zwischen einer leeren Zelle und einem leeren Wert zu unterscheiden
Member: viewpoint
viewpoint Jul 13, 2009 at 09:25:23 (UTC)
Goto Top
Hallo!

Ich hab mir nun mit eurer Hilfe für das folgende Formel aufgebaut:
=WENN(ZÄHLENWENN('[Liste 123.xls]Tabelle1'!$B:$B;B7)>0;"yes";"no")  
Hier suche ich also nach einem Wert in einer anderen Datei in der Spalte B ob der Wert aus B7 gefunden wird.
Wenn ich nun nach 2 Kriterien suchen will?
also in etwa so:
=WENN(ZÄHLENWENN('[Liste 123.xls]Tabelle1'!$B:$B;B7)und('[Liste 123.xls]Tabelle1'!$C:$C;C7)>0;"yes";"no")  
diese Formel funktioniert nicht wirklich - ich hoff aber mein Ziel damit veranschaulicht zu haben

Lg.