2017-10-24 1 views
0

Ich habe einen Datensatz, der zeigt;Generieren Sie oder füllen Sie Zellendaten basierend auf einem anderen Dataset aus

  • Mitarbeiter Name
  • Datum
  • Zeitarbeit begann
  • Zeitarbeit beendet

dataset

Jetzt versuche ich, einen Bericht wie Blatt zu haben, wo ich eine auswählen können bestimmter Name des Mitarbeiters aus einer Liste von Mitarbeitern, um die für einen bestimmten Monat besuchte Zeit einzusehen

report

Ich versuchte vlookup ging aber nicht, wo da ich von zwei Spalten und eine Reihe Nachschlag benötigen.

Ist das möglich? ohne Makros oder VBA. Dank

+0

Ist es möglich, dass ein Mitarbeiter an einem Tag zwei unterschiedliche "Time-In" oder "Time-Out" hat, mit anderen Worten: sind Name und Datum eindeutige Identifikatoren? – Roosz0rd

+0

Name und Datum werden eindeutig sein. es wird nicht zwei verschiedene "Time in" oder "time out" geben – dhuvvamundha

+0

Haben Sie versucht, mit sumifs? – Roosz0rd

Antwort

0

Da Name und Datum eindeutige Bezeichner sind, ist es möglich, die Funktion sumifs zu verwenden.

Für ‚Zeit in‘ und ‚Rachel‘ folgt aussehen wie folgt:

=Sumifs(column ‘time in’ from data set, column ‘name’ from dataset, “Rachel”, column ‘date’ from data set, “10/01/2017”) 

Wo Rachel und das Datum kann auch eine referenzierte Zelle sein.

0
=AGGREGATE(15,6,ROW(SHEET1!$A$2:$E$22)/((SHEET2!$B$1=SHEET1!$B$2:$B$22)*(SHEET2!$A4=SHEET1!$C$2:$C$22)),1) 

Die obige Formel wird die Zeilennummer aufnehmen, die Ihren Kriterien entspricht. um die gewünschten Informationen zu ziehen, können Sie die Zeilennummer innerhalb einer INDEX-Formel platzieren folgendes zu erhalten:

=INDEX(SHEET1!$D:$E,AGGREGATE(15,6,ROW(SHEET1!$A$2:$E$22)/((SHEET2!$B$1=SHEET1!$B$2:$B$22)*(SHEET2!$A4=SHEET1!$C$2:$C$22)),1),COLUMN(A1)) 

Sie die oben platzieren in Ihrer ersten Zeit Zelle und kopieren sie nach rechts und nach unten. Wenn Kriterien nicht vorhanden sind, werden Fehler angezeigt. dh keine Person mit diesem Namen oder keine Datumsangaben für diese Person. um dies zu vermeiden kann man das Ganze in einem IFERROR wie unten wickeln:

=IFERROR(INDEX(SHEET1!$D:$E,AGGREGATE(15,6,ROW(SHEET1!$A$2:$E$22)/((SHEET2!$B$1=SHEET1!$B$2:$B$22)*(SHEET2!$A4=SHEET1!$C$2:$C$22)),1),COLUMN(A1)),"Nothing found") 

wenn Sie lieber ein leerer als die „nichts gefunden“ auf „“ oder 0, wenn Sie 0 ändern nichts Anzeige gefunden werden wollen angezeigt.

Hinweis: Aggregat führt in diesem Fall Array-ähnliche Berechnungen durch. Daher möchten Sie keine vollständigen Spaltenreferenzen, da dies zu unnötigen Berechnungen führt. Da Sie eindeutige Einträge haben, ist die Option SUMME, die in einer anderen Antwort angegeben wird, eine viel bessere Wahl.

0

Ich denke, eine Pivot-Tabelle wird die Arbeit für Sie erledigen.

  1. Platz der Mitarbeiternamen im Filter, legen Datum und mal in den Zeilen.
  2. Teilsumme aus der Pivot-Tabelle
  3. ändern Tabellen-Layout zu tabellarischen entfernen und wiederholen Reihen
  4. Right In auf der Zeit klicken und wählen Ungroup

enter image description here

Dann haben Sie das Bild unten.

enter image description here

0

Ich habe folgendes Layout:

enter image description here

In B11 Schreib dieser Formel und nach unten ziehen:

=INDEX($B$2:$E$5,MATCH($B$7&$A11,$B$2:$B$5&$C$2:$C$5,0),3) 

In C11 schreibe dies und nach unten ziehen:

=INDEX($B$2:$E$5,MATCH($B$7&$A11,$B$2:$B$5&$C$2:$C$5,0),4) 

Beachten Sie, dass dies Array-Formeln sind. Sie müssen sie also mit CTRL + SHIFT + ENTER anstelle des normalen Enter eingeben.

Sie erhalten einen Fehler #NV, wenn der Mitarbeiter an einem der Daten A11 und A12 nicht gearbeitet hat. Sie könnten also die Formel mit IFERROR umgeben, um dies zu vermeiden.

+0

danke. das ist sehr interessant – dhuvvamundha

Verwandte Themen