Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

INDEX & Vergleich (Datum)
#1
Hallo Zusammen,

stehe vor folgendem Problem:

Ich möchte anhand der Tätigkeit und des Datums den eingesetzten Mitarbeiter herausfinden.
INDEX und Vergleich habe ich schon etwas aufgebaut, so dass ich tatsächlich den Namen bekomme. Aber leider nur des ersten Mitarbeiters in der Liste.

Vielleicht kann jemand helfen:

Tabelle1

ABCDEFGH
1TätigkeitIDDatumMitarbeiternameMitarbeiternameTätigkeitIDBeginnEnde
212301.05.2020Max MustermannMax Mustermann12301.01.202001.04.2020
3Ben Mustermann45601.05.202031.12.2020
Formeln der Tabelle
ZelleFormel
C2=+INDEX(E1:H3;VERGLEICH(A2;F:F;0);1)

Antwortento top
#2
Hola,

und wo fragst du das Datum ab? Und warum soll ein weiterer Mitarbeiter ausgegeben werden? Der ha doch eine völlig andere ID?

Gruß,
steve1da
Antwortento top
#3
Pardon, die ID bei Bem Mustermann war nicht korrekt.

Die Erklärung lautet folgendermaßen:

Manche Mitarbeiter können manche Tätigkeiten ausführen.
Die ID ist hierbei die Tätigkeit und der Mitarbeiter steht in diesem Zeitraum zur Verfügung um diese Tätigkeit durchzuführen.


Die Datumabfrage ist nicht eingebaut Wink Das ist genau die Fragestellung.
Wie frage ich nun ab welcher Mitarbeiter diese Tätigkeit zum Datum (B2) durchführen kann/wird/hat.

Tabelle1

ABCDEFGH
1TätigkeitIDDatumMitarbeiternameMitarbeiternameTätigkeitIDBeginnEnde
212301.05.2020Max MustermannMax Mustermann12301.01.202001.04.2020
3Ben Mustermann12301.05.202031.12.2020
Formeln der Tabelle
ZelleFormel
C2=+INDEX(E1:H3;VERGLEICH(A2;F:F;0);1)

Antwortento top
#4
Hola,

ungetestet:
Code:
=index(E2:E3;aggregat(15;6;zeile(E2:E3)-1/((B2>=G2:G3)*(B2<=H2:H3)*(F2:F3=A2));1))

Gruß,
steve1da
[-] Folgende(r) 1 Benutzer sagt Danke an steve1da für diesen Beitrag:
  • xtrive
Antwortento top
#5
Funktioniert! Danke

Leider ist es jedoch sehr ressourceneinnehmend.
Vielleicht gibt es eine Variante mit schonenderen Ressourceneinsatz?
Antwortento top
#6
Hola,

ich hoffe du hast die Formel nicht über komplette Spalten laufen lassen?

Gruß,
steve1da
Antwortento top
#7
Hallo, können sich (die) Zeiträume überschneiden..? Ich könnte eine Lösung mit Power Query anbieten...

Arbeitsblatt mit dem Namen 'Blatt1'
ABCDEFGHI
1TätigkeitIDDatumMitarbeiternameMitarbeiternameTätigkeitIDBeginnEnde
212301.05.2020Ben MustermannMax Mustermann12301.01.202001.04.2020
3Lisa MüllerBen Mustermann12301.05.202031.12.2020
4Lisa Müller12301.04.202001.06.2020
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Jörg

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antwortento top
#8
Doch Wink
In der Spalte C. Die geht bei mir bis ca. 47000 Wink


Hallo,

eine Überschneidung gibt es nicht. Eine Tätigkeit kann in dem Zeitraum nur von 1 Person durchgeführt werden.

VG
Antwortento top
#9
Hallo xtrive,

hier eine Variante mit durch VBA automatisiertem Spezialfilter (Filter - Erweitert):

Tabelle1

ABCDEFGH
1TätigkeitIDDatumMitarbeiternameMitarbeiternameTätigkeitIDBeginnEnde
212325.05.2020Ben MustermannMax Mustermann12301.01.202001.04.2020
3Ben Mustermann12301.05.202031.12.2020

Kriterien

ABCD
1TätigkeitIDBeginnEnde
2123<=43976>=43976
3
Formeln der Tabelle
ZelleFormel
A2=Tabelle1!A2
B2="<="&Tabelle1!B2
C2=">="&Tabelle1!B2



' **************************************************************
'  Modul:  Tabelle1  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Select Case Target.Address(0, 0)
    Case "A2", "B2", "A2:B2"
      Worksheets("Tabelle1").Range("E:H").AdvancedFilter xlFilterCopy, Worksheets("Kriterien").Cells(1).CurrentRegion, Range("C1")
  End Select
End Sub

Gruß Uwe


Angehängte Dateien
.xlsm   SpezialfilterAutomatisch.xlsm (Größe: 15,38 KB / Downloads: 1)
Antwortento top
#10
(25.05.2020, 08:29)xtrive schrieb: Doch Wink
In der Spalte C. Die geht bei mir bis ca. 47000 Wink


Hallo,

eine Überschneidung gibt es nicht. Eine Tätigkeit kann in dem Zeitraum nur von 1 Person durchgeführt werden.

VG

Hallo, was ist da so witzig... du kannst das auf 50.000 Zeilen begrenzen und siehst schon einen Unterschied... Sollte zumindest. Und ich bleibe bei PQ, obwohl Uwe's VBA- Vorschlag mit Sicherheit auch toll funktioniert. Aber VBA ist "nicht meins"...
Gruß Jörg

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste