2016-06-14 6 views
0

Arbeiten mit 2 separaten Datensätzen (mit Duplikaten) Das Dataset ist eindeutig durch eine ID identifiziert. Es gibt möglicherweise keinen Eintrag für den Zeitstempel, den ich benötige. Datasets sind ziemlich groß und aufgrund von Duplikaten kann vlookup nicht verwendet werden.Excel - 2 Tabellen - Wenn 2 Zellen in einer einzelnen Zeile übereinstimmen, geben Sie eine andere Zelle derselben Zeile zurück.

Proben:

Tabelle 1:

Device Name|Time Bracket| On/Off? 
    ID1  |06:20:00 | 
    ID2  |06:20:00 | 
    ID3  |06:30:00 | 

Tabelle 2:

Device Name |Timestamp |On/Off? 
    ID1   |06:20:00 |On 
    ID2   |06:50:00 |Off 
    ID3   |07:20:00 |Off 

Was ich erreichen möchte:

möchte ich eine if-Anweisung, wenn überprüfen: 1) Geräte ID entspricht AND 2) Zeitstempel entspricht

Wenn ja, geben den Wert der Ein/Aus aus Tabelle 2 Wenn nicht, dann über den Wert der Zelle zurückkehren will ich es IF es ist das gleiche Gerät, sonst nur setzen „abwesend“ in die Zelle.

ich dachte ich, das wie so mit einigen IF-Anweisungen tun könnte:

=if(HOUR([@[Time Bracket]]) = HOUR(Table13[@[Timestamp Rounded (GMT)]]) and 
    minute([@[Time Bracket]]) = minute(Table13[@[Timestamp Rounded (GMT)]]) and 
    [@[Device Name]]=Table13[@[Device Name]], Table13[@[On/Off?]], 
    IF([@[Device Name]]=Table13[@[Device Name]], INDIRECT("B" and Rows()-1), "absent")) 

(ich dort ein paar neue Zeilen zum besseren Lesbarkeit setzen)

Allerdings scheint dies gar nicht zu lösen. .. Was mache ich falsch? Ist das überhaupt der richtige Weg?

Ich habe auch etwas ähnliches mit einem VLookUp versucht, aber das scheiterte fürchterlich.

Vielen Dank!

+0

Sie würden wollen, sehen hier INDEX/MATCH verwenden http : //stackoverflow.com/questions/18767439/lookup-using-index-and-match-with-two-criteria Es gibt zwei Methoden, um die Sekunde zu betrachten. –

+0

Danke, lassen Sie mich einen Blick darauf werfen ... –

+0

Hey danke, ich habe eine Implementierung der Verkettung/Helfer Spalte gemacht, und das schien zu funktionieren! –

Antwort

0

Um nicht mit Array-Formeln oder Zusammenführen von Strings, die (in Ihrem Fall) kann immer noch falsch am Ende sein, schlage ich die Verwendung von aufgrund der Tatsache, haben Sie eine sehr geringe Menge an Ergebnissen (nur ein oder aus) ...

für die erste Tabelle (bei A1 beginnen, so dass die Formel in C2):

=IFERROR(CHOOSE(
OR(COUNTIFS(Table13[Device Name],[@[Device Name]],Table13[Timestamp],[@[Time Bracket]],Table13[On/Off?],"On"))+ 
OR(COUNTIFS(Table13[Device Name],[@[Device Name]],Table13[Timestamp],[@[Time Bracket]],Table13[On/Off?],"Off"))*2 
,"On","Off","Error"),IF(A1=[@[Device Name]],C1,"Absent")) 

dies auch „Fehler“ eines Spiels für „on“ zeigen und "Aus" wird angezeigt ... um dies zu überspringen und die Geschwindigkeit zu erhöhen, könnten Sie auch verwenden:

=IF(COUNTIFS(Table13[Device Name],[@[Device Name]],Table13[Timestamp],[@[Time Bracket]],Table13[On/Off?],"On"),"On", 
IF(COUNTIFS(Table13[Device Name],[@[Device Name]],Table13[Timestamp],[@[Time Bracket]],Table13[On/Off?],"Off"),"Off", 
IF(A1=[@[Device Name]],C1,"Absent"))) 

Für beide ist der "Gerätename" in Spalte A, "Time Bracket" in Spalte B und "On/Off?" in Spalte C, während beginnt die Tabelle in Zeile 1 ... Wenn das nicht der Fall ist für Sie, dann ändern A1 und C1 so passen sie

(auch eingefügte Zeilenumbrüche für eine bessere Lesung)

Bild zu zeigt das Layout:

layout

ich die zweite Formel zu zeigen, nahm, wie es funktioniert ... auch sollte diese Formel nicht 0 ‚s zurückkehren kann ...Ich bin verwirrt

+0

Hey, danke, dass du wieder zu mir gekommen bist. Ich habe beide versucht, aber ich bekomme eine Reihe von 0 ... Also für beide habe ich die Spalten Device ID | eingestellt Zeitstempel/Klammer | an aus. Meine Tabelle hat Header, also habe ich folgendes geändert: = IF (COUNTIFS (Tabelle13 [Gerätename], [@ [Gerätename]], Tabelle13 [Zeitstempel], [@ [Zeitklammer]], Tabelle13 [Ein/Aus?], "Ein"), "Ein", IF (COUNTIFS (Tabelle13 [Gerätename], [@ [Gerätename]], Tabelle13 [Zeitstempel], [@ [Zeitklammer]], Tabelle13 [Ein/Aus ?], "Aus"), "Aus", IF (A2 = [@ [Gerätename]], C2, "Nicht vorhanden"))) Nicht sicher, was passiert. –

+0

@ R.Sama nicht sicher, warum das passiert ... Ich habe es getestet, und es funktionierte ohne Fehler ... auch ein Bild zur Antwort hinzugefügt ... auch pls überprüfen, ob es irgendwelche "versteckte" Zeichen wie Führende Leerzeichen und all das Zeug ... –

+0

Ah - Ich habe (eines der) Probleme mit der Verwendung dieser jetzt - die Formatierung der Zellen -, weil ich unterschiedliche Daten von allen Seiten kommen, ist es schwierig, das richtige zu halten Formatierung auf Zellen, was bedeutet, dass manchmal, obwohl der angezeigte Wert korrekt ist, die Art, wie Excel es interpretiert, nicht ist. Wenn Sie dies auf einem einfachen, selbst erstellten Datensatz versuchen, funktioniert es tatsächlich! –

0

Paar gute Vorschläge, jedoch mit Hilfe der Helfersäule wie in dem Thema von Scott Craner oben beschrieben gearbeitet. Eine Helper-Spalte mit der ID und dem Zeitstempel der Concat-Geräte für beide Tabellen erstellt. Anschließend wurde ein einfaches VlookUp erstellt.

Eine weitere Lektion gelernt haben: Denken außerhalb der Box, und gehen Sie mit einfachen Lösungen, anstatt + zu versuchen, zu klug sein wie ich tat ... :)

Verwandte Themen