Clever-Excel-Forum

Normale Version: Datenübertragung in Tabellenblatt mit Wenn-Bezug
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

nach einiger Suche habe ich auf die Idee gekommen, hier nach Unterstützung zu suchen und wünsche mir sehr, dass ihr mir vielleicht weiterhelfen könnt.

Ich habe eine kleine Problemstellung:

Eine Datei enthält mehrere Tabellenblätter.

Wenn in Tabellenblatt 1 (würde "I. Anfrage") heißen die Daten eingefüllt werden und entsprechend der Entscheidung in der Spalte R "ja" ausgewählt wird, sollen alle Zellen aus "I. Anfrage" in "III. Forderung" übertragen werden. Außerdem soll es ein Tabellenblatt "II. Anfrage" geben, wo gleiches Kriterium mit "ja" erfüllt sein soll, um die Daten nach "III. Forderung" automatisch zu übertragen.

Ist es möglich eine solche Abfrage zu haben, ohne dass in "III. Forderungen" leere Zellen / Zeilen entstehen?

Liebe Grüße und Dankeschön vorab .
Hi Nick,

eine Beispieldatei mit fiktiven Daten, aber identischem Aufbau hilft beim Helfen. Und schau dir vorab mal die Fkt. AGGREGAT() an. In Verbindung mit INDEX() könnte es eventuell zur Problemlösung führen.
Hi,

mit xl365 (hast Du ja auch u.a. angegeben) ist das eine Aufgabe für die FILTER-Funktion - nach folgendem Prinzip:

=FILTER(A:A;B:B="x")

zeigt alle Treffer aus Spalte A an, die in Spalte B mit "x" markiert sind.
Mehrere Bedingungen kann man multiplizieren:

=FILTER(A:A;(B:B="x")*(C:C="y"))

erweitert die Abfrage auf gleichzeitig Spalte B = "x" und Spalte C = "y"
Hallo {Boris},

ganz lieben Dank für deine Antwort. Ich habe einmal versucht, eine Beispieldatei zu erstellen. Diese habe ich hier mit hochgeladen.

Ich hoffe, dass ich das irgendwie verständlich hinbekommen habe.

Deinen Hinweis mit der "Filter" Funktion habe ich aber auf jeden Fall schon einmal in meinem Kopf abgespeichert. 

Danke schon mal dafür!
Hi,

Zitat:Deinen Hinweis mit der "Filter" Funktion habe ich aber auf jeden Fall schon einmal in meinem Kopf abgespeichert. 

Besser wäre es gewesen, den Hinweis in der Datei umzusetzen:

B7 (III. Forderung):
Code:
=FILTER('I. Anfrage'!A5:O100;'I. Anfrage'!R5:R100="ja")

Vorher den Bereich B:O in III. Forderung leeren, da Spill-Formel.
Hey {Boris},

ganz lieben Dank! Das mit der "=Filter"-Funktion funktioniert einwandfrei! :)

Kannst du mir noch eine kleine Frage beantworten?


Ist es vielleicht möglich, dass ich in die Formel im Tabellenblatt "III. Forderungen", die den ja-Filter in "I. Anfrage" abfragt, noch eine ja-Abfrage bezogen auf das Tabellenblatt "II. Anfrage" einbaue?

Ich habe etwas rumprobiert, bin jedoch nicht weiter gekommen.

Ich habe meinen aktuellen Datei-Stand einmal mit angehangen.

Liebe Grüße,

Nick
Hi,

das geht so nicht, da FILTER das Ergebnis der ersten Abfrage spillt - Deine 2. Abfrage ist ein zusätzlicher - davon unabhängiger - Filter.
Zumindest habe ich es so nicht hinbekommen, sondern nur alternativ mit INDEX + AGGREGAT.

Dazu habe ich die 3 Blätter von links nach rechts umbenannt in "a", "b" und "c", damit die Formel noch einigermaßen lesbar bleibt.
Das musst Du also auch zunächst tun - anschließend kannst Du die Blattnamen dann wieder in ihre ursprünglichen Bezeichnungen ändern.

In B7 des Blattes "c" (also III. Forderung):

Code:
=WENNFEHLER(WENN(ZEILEN($1:1)>ZÄHLENWENN(a!$S$5:$S$1000;"ja");INDEX(b!B$7:B$1000;AGGREGAT(15;6;ZEILE($1:$994)/(b!$Y$7:$Y$1000="ja");ZEILEN($1:1)-ZÄHLENWENN(a!$S$5:$S$1000;"ja")));INDEX(a!A$5:A$1000;AGGREGAT(15;6;ZEILE($1:$996)/(a!$S$5:$S$1000="ja");ZEILEN($1:1))));"")


und sowohl nach rechts als auch nach unten kopieren.
Hallo,

man könnte die zwei Datenbereiche + die zwei Filterbereiche jeweils zusammensetzen und dann filtern.

Code:
=LET(Daten1;'I. Anfrage'!$A$5:$O$10;Erledigt1;'I. Anfrage'!$S$5:$S$10;
     Daten2;'II. Anfrage'!$B$7:$P$8;Erledigt2;'II. Anfrage'!$Y$7:$Y$8;
     X;SEQUENZ(1;MAX(SPALTEN(Daten1);SPALTEN(Daten2)));
     Y;SEQUENZ(ZEILEN(Daten1)+ZEILEN(Daten2));
     D;WENN(Y<ZEILEN(Daten1)+1;INDEX(Daten1;Y;X);INDEX(Daten2;Y-ZEILEN(Daten1);X));
     F;WENN(Y<ZEILEN(Daten1)+1;INDEX(Erledigt1;Y;1);INDEX(Erledigt2;Y-ZEILEN(Daten1);1));
     FILTER(D;F="Ja";"-"))

Gruß
Hallo {Boris},

wow! Ganz lieben Dank für deine Unterstützung. Ich habe es hinbekommen.

Ich freue mich sehr.  19

Liebe Grüße

Hallo maninweb,

lieben Dank für deine Hilfe.

Ich habe es anderweitig hinbekommen, schätze jedoch sehr, dass du dir die Mühe gemacht hast.  Angel