Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SVerweis (Horizontal und vertikal) + Index

SVerweis (Horizontal und vertikal) + Index
13.01.2019 00:17:24
Holger
Hallo zusammen,
ich komme beim Erstellen einer Abfrage nicht weiter. Hatte es mit INDEX-Funktion versucht, aber es klappt nicht so richtig.
Was hätte ich gerne.
Im Tabellenblatt 1 ist eine Übersicht über alle Mitarbeiter inkl Personalnummer (Spalte A) sowie allen möglichen Kompetenzen / Trainings inkl Seminarnummer (Zeil 1).
Im Tabellenblatt 2 ist eine Übersicht über alle durchgeführten Trainings. Spalte A Seminarnummer, Spalte H Personalnummer und Spalte R Teilgenommen.
Und jetzt hätte ich gerne, dass im Tabellenblatt 1 in den Spalten E, G, I usw der Wert aus dem Tabellenblatt 2, Spalte R steht, in Abhängigkeit von Seminarnummer und Personalnummer.
Hoffe ich konnte es verständlich erklären.
https://www.herber.de/bbs/user/126704.xlsx
Danke für eure Hilfe
Holger

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVerweis (Horizontal und vertikal) + Index
13.01.2019 00:21:57
Holger
Hatte noch einen Punkt vergessen. Sollte es im Tabellenblatt 2 keine Treffen im Bezug auf Personalnummer und Seminarnummer geben, dann soll auch ein "nein" im Tabellenblatt ausgegeben werden.
AW: SVerweis (Horizontal und vertikal) + Index
13.01.2019 00:54:50
onur
Und wieso gibt es auf dem einen Blatt 8 MA und auf dem anderen 11?
AW: SVerweis (Horizontal und vertikal) + Index
13.01.2019 01:07:05
Holger
Sorry,
das war beispielhaft.
Tabellenblatt 1 hat nach unten hin noch deutlich mehr Mitarbeiter und nach rechts deutlich mehr Kompetenzen.
Tabellenplatz 2 hat nach unten hin auch deutlich mehr Zeilen, so kann auch eine Personalnummer mehrmals vorkommen, allerdings immer nur einmal in der Kombination mit einer Seminarnummer.
Die restlichen Spalten sind auch befüllt, jedoch habe ich diese rausgelöscht, da für dieses Thema irrelevant.
Danke für einen Tip
Holger
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 10:24:25
neopa
Hallo Holger,
... und zwar mit einer Matrixfunktion(alität)sformel die keines spez. Formelabschluss wie eine klassische Matrixformel benötigt.
In E7:

=WENN(A7="";"";WENNFEHLER(INDEX(Tabelle2!$R:$R;AGGREGAT(15;6;ZEILE(Tabelle2!R$2:R$99)/
(Tabelle2!$H$2:$H$99=$A7)/(((Tabelle2!$A$2:$A$99=D$1)+(Tabelle2!$C$2:$C$99=D$2))>0);1));"-"))
und Formel nach unten kopieren und danach in die entsprechenden Spalten nach rechts.
Das "-" in der Formel könntest Du natürlich auch durch "nein" ersetzen.
Gruß Werner
.. , - ...
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 16:45:33
Holger
Hallo zusammen,
Danke für Eure Hilfe. Die Formel von Werner ist für mich als Laie etwas besser zu händeln. Auch wenn ich sie in ihrer Gesamtheit nicht durchblicke.
Soweit ich das versteh müssen jedoch Seminarnummer und Seminartitel übereinstimmen. Zumindest bezieht sich die Formel in einem Teil auf "D2".
Wie müsste die Formel aussehen, wenn lediglich Personalnummer und Seminarnummer abgeglichen werden und die Teilnahme ja/nein ausgegeben wird.
Danke nochmals
Holger
AW: es geht auch mit INDEX() und Co ...
13.01.2019 16:53:31
onur
Nix gegen Werners Lösung - sie ist sehr gut - , aber:
"Die Formel von Werner ist für mich als Laie etwas besser zu handeln"?
Was ist denn für einen Laien noch einfacher zu handeln, als eine auf dein Problem perfekt zugeschnittene UDF?
Offensichtlich weisst du nicht, was eine UDF ist oder wie meine Lösung funktioniert.
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 17:02:52
Holger
Ich war im Modul drinne und da ich mich mit VBA nicht auskenne, habe ich es nicht verstanden, ja.
Dein UDF bezieht sich u.a. auf die Zelle D2 (Seminartitel), ich würde jedoch den Zellebzug D1 (Seminarnummer) benötigen. Und da ich dies im Modul nicht zuordnen konnte, war es im ersten step für mich die kompliziertere Lösung.
Wobei die Lösung von Werner für mich ebenfalls kompliziert ist.
Wie müsste Dein UDF aussehen, wenn Seminarnummer und Personalnummer Vergleichsgrundlage sind?
Danke für Deine Hilfe
Holger
AW: es geht auch mit INDEX() und Co ...
13.01.2019 17:12:43
onur
Ging ja auch nicht, da auf Blatt 1 nicht überall über den Seminartiteln auch die jeweilige Nummer eingetragen war.
https://www.herber.de/bbs/user/126715.xlsm
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 17:32:22
Holger
Hallo onur,
danke für die erneute Antwort.
Ich habe jetzt einmal versucht in Deine Datei meine realen Daten reinzukopieren, aber irgendwie klappt es nicht.
Mein Tabellenblatt 1 hat ca 2000 Zeilen und ca 130 Spalten mit Seminarnummern bzw 260 Spalten, wenn zwischen jeder Spalte mit Seminarnummer eine Leerspalte steht, wo dann Deine Formel reinkommt. Die erste Seminarnummer steht jedoch wirklich in H1.
Mein Tabellenblatt 2 hat momentan etwas mehr als 43000 Zeilen.
Und wenn ich Dein UDF richtig verstehe, ist es nicht "generell" programmiert (weiß nicht ob das überhaupt geht) sondern es ist begrenzt bis zu einer speziellen Spalte oder Zeile?
Sorry, ich hab von VBA keine Ahnung.
Danke Dir
Holger
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 17:38:20
onur
Mach einfach aus
For ze = 2 To 1000

das hier
For ze = 2 To 45000

Das reicht.
Wieviel Zeilen oder Spalten Tabelle1 hat, ist irrelevant.
AW: dann würde die Formel einfacher ...
13.01.2019 17:55:23
neopa
Hallo Holger,
... wie ich vorhin an Luschi geschrieben habe, steht das "+" in der Formel für eine ODER-Bedingung. Die hatte ich angenommen, weil Du sonst bei Deinen eingestellten Daten in Spalte I und K überall nur "-"-Ergebnisse erhalten hättest.
So aber reicht folgende Formel in E7:
=WENN(A7="";"";WENNFEHLER(INDEX(Tabelle2!$R:$R;AGGREGAT(15;6;ZEILE(Tabelle2!R$2:R$99)/
(Tabelle2!$H$2:$H$99=$A7)/(Tabelle2!$A$2:$A$99=D$1);1));"-"))

Wenn Du Deine Datentabelle in Tabelle 2 als "intelligente" Tabelle formatierst (google mal danach), könnte man die Formel auch so definieren, dass sie sich automatisch an den wirklichen Datensatzbestand in dieser anpassen würde.
Allerdings wenn wirklich ca 43000 Datensätze in Tabelle 2 in 2000 Datensätzen für 130 Seminarnummern auszuwerten sind, wie ich jetzt erst lesen konnte, könnte Dein PC schon etwas ins Schwitzen geraden. Allerdings dürfte diese Auswertung ja anderseits nicht alle Tage bzw. oft vorgenommen werden müssen. Oder?
Gruß Werner
.. , - ..
Anzeige
AW: es geht auch mit INDEX() und Co ...
13.01.2019 17:19:41
Luschi
Hallo Werner,
ich würden diesen Teil Deiner Formellösung:

(((Tabelle2!$A$2:$A$99=D$1)+(Tabelle2!$C$2:$C$99=D$2))>0)

so schreiben:
((Tabelle2!$A$2:$A$99=D$1)/(Tabelle2!$C$2:$C$99=D$2))
Dabei geht es mir nicht um die kürzere Schreibweise sondern um diese Addition, die nach meinem Vba/C# -lastigen Programmierverständis mehr Rechenaufwand erfordert als reine logische Wahr/Falsch-Vergleiche, hinter der ein Bit-Vergleich steckt. Wie denkst Du darüber?
Gruß von Luschi
aus klein-Paris
AW: ohne es jetzt zu prüfen ...
13.01.2019 17:29:37
neopa
Hallo Luschi,
... würde ich meinen, dass Dein Vorschlag falsche Ergebniswerte ergeben könnte. Das "+" in einer Matrixfunktion(alität)sformel oder auch in einer klassischen Matrixformel steht ja für eine ODER-Bedingung, die hier zwingend notwendig ist und durch "/" nicht abgebildet werden kann.
Gruß Werner
.. , - ..
Anzeige
Ich hatte mal gelernt, ...
13.01.2019 22:47:10
Luc:-?
…Luschi,
dass Vgle intern mehr RechenOperationen erfordern als reine Arithmetik, es sei denn, es geht um Vgle mit 0 & Co. In einem Pgm dürfte aber auch das Provozieren einer 0-Division nicht gerade vorteilhaft sein.
Gruß, Luc :-?

227 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige