2017-09-29 1 views
0

Ich versuche, Code zu schreiben, der einen Zellwert benötigt, um innerhalb eines Datumsbereichs zu sein. Dies ist, was ich bisher geschrieben (wenn auch ein paar Namensänderungen der Einfachheit halber):Countifs and ranges

=IF(COUNTIFS('[SheetA.xlsx]TabA'!A2:AA2, "submit", '[SheetA.xlsx]TabA'!B2:AB2, '[SheetA.xlsx]TabB'!**A9:A13**) >= 1, '[SheetA.xlsx]TabA'!C2, "") 

Grundsätzlich, wenn eine Zelle in einer Zeile das Wort enthält „Eintragen“ und die Zelle rechts von ihm hat ein Datum (innerhalb eines bestimmten Bereichs von fünf Tagen) möchte ich, dass die Funktion die dritte Zelle dieser Zeile zurückgibt.

Der Bereich in Fettdruck ist eine Reihe von Daten.

Diese Formel funktioniert nicht, wenn ich einen Bereich verwende, aber bei Eingabe eines einzelnen Datums die erwarteten Werte zurückgibt. Was soll ich ändern?

Antwort

0

Was COUNTIF() kein Datum in einem Bereich zu finden, wenn der Bereich in Folge ist, können Sie rund um das zu bekommen, wie so:

COUNTIFS(A2:AA2, "submit", B2:AB2,">=" & LowestDate,B2:AB2,"<=" & HighestDate) 

Das Problem ist, dass Sie einen Bereich auf einen Bereich sind zu vergleichen , also muss die gesamte Palette der ganzen anderen Reihe entsprechen. Dies wird immer falsch zurückgeben, da die Bereiche nicht einmal die gleiche Form haben. Wenn Sie stattdessen einen Bereich mit einem einzelnen Wert vergleichen, geht Excel automatisch davon aus, dass Sie den Wert true haben möchten, wenn der einzelne Wert irgendwo im Bereich vorhanden ist.

Es klingt wie Ihr anderes Problem ist, dass seit COUNTIFS() nicht zurückgibt, wo es "einreichen" und ein Datum gefunden, die äußere IF Anweisung kann nicht bestimmen, wo die dritte Zelle ist.

Wenn es nur eine Einsendung geben soll, können Sie verwenden, um die relative Spalte von "submit" zu finden, 2 hinzufügen und dann ADDRESS() verwenden, um die Adresse der dritten Zelle basierend auf der Zeile zu erstellen. Zuletzt setzen Sie das innerhalb einer INDIRECT(), um die dritte Zelle zurückzugeben. Etwas wie:

=INDIRECT(ADDRESS(ROW(A2),MATCH("submit",2:2,0)+2,1,1)) 

Beachten Sie, dass dies nicht für mehrere Übereinstimmungen arbeiten, wie Sie den ersten Wert MATCH() Funde Rückkehr sind.

Ich benutze ROW(), weil ADDRESS() die Zeilenreihe möglicherweise nicht sehr gut füllt, wenn Sie die Formel eine Spalte nach unten ziehen, wenn Sie eine einfache Zeilennummer verwenden.