2016-04-27 4 views
0

Hier entspricht ein Screenshot meiner Daten:2010 übertreffen, leere Zellen in zwei Spalten nachschlagen, kehren Text in verschiedenen Spalte

Data

Ich möchte B4 suchen: B40 und C4: C40 und finden Alle Zellen, die für beide angegebenen Bereiche leer sind. Wenn in beiden Bereichen leer, geben Sie den Text in der entsprechenden Zeile in Spalte A zurück. Im Idealfall könnte die Ausgabe kombiniert werden, und es könnte etwas wie 8: 00-2: 00 auflisten.

hier ist das, was ich bisher: =INDEX('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B4:B40, MATCH("",'C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B4:B40,0),'C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!B2)

Bin ich auf dem richtigen Weg?

+0

So wäre das, was die Ausgabe von den obigen Daten? –

+0

es funktioniert nicht ganz, es gibt mir nur keinen Fehler, sondern nur eine leere Zelle? – William

+0

Ich fragte nicht, was die Formel tat oder nicht tat. Bitte sagen Sie mir anhand der Daten aus Ihrem Beispiel, was wären die gewünschten Ausgaben? Es mag einfacher sein, zum Ende zu springen, dann versuchen Sie, das zu reparieren, was Sie haben. –

Antwort

2

Die Formel, die Sie wollen, ist:

=IFERROR(INDEX($A$18:$A$40,AGGREGATE(15,6,(ROW($A$18:$A$40)-ROW($A$18)+1)/(($B$18:$B$40="")*($C$18:$C$40="")),ROW(1:1))),"") 

Ich werde Sie in der Arbeitsmappe und Blatt Referenzen setzen. Sie werden nur auf den Ranges benötigt. Fügen Sie sie nicht den Bereichsreferenzen in den ROW() - Funktionen hinzu. Sie sind nur da, um eine Nummer zurückzugeben, und es spielt keine Rolle, auf welches Blatt sie verweisen. Stellen Sie nur sicher, dass die Bereiche selbst übereinstimmen.

enter image description here

Die Verkettung mit der Arbeitsmappe Referenzen würde die Formel lang und unhandlich machen. Um dies zu tun, wäre VBA der beste Weg.


Edit:

langweilig wurde und entscheiden, in Ihrer Arbeitsmappe und Arbeitsblatt Referenzen zu setzen:

=IFERROR(INDEX('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$A$4:$A$40,AGGREGATE(15,6,(ROW($A$4:$A$40)-ROW($A$4)+1)/(('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$B$4:$B$40="")*('C:\Path\to\other\worksheet\[Blank Schedule Grid.xlsx]Susan'!$C$4:$C$40="")),ROW(1:1))),"") 
+0

danke scott! Ich lege das hier rein und es gibt mir .25? (Es soll als eine korrekte Arrary ausgeführt werden?) – William

+1

@William Das bedeutet nur, dass Sie den tatsächlichen * Zeitwert * ziehen und die Zelle auf "h: mm" oder "h: mm AM/PM" als formatieren müssen bevorzugt. – tigeravatar

+0

@William Nein, es braucht nicht die Strg-Umschalt-Eingabetaste, um zu bestätigen. AGGREGATE() ist eine Nicht-CSE-Array-Formel. –

0

Möchten Sie alle Werte in einer einzelnen Zelle oder in einer neuen Spalte?

=IF(AND(ISBLANK(B18), ISBLANK(C18)), A18, "") 

Angenommen, Ihre Daten in A18 beginnt (nach dem Screenshot), können Sie diese in Zelle D18 setzen und kopieren Sie den ganzen Weg hinunter.

+0

danke für die Antwort, aber die Formel ist in einer separaten Arbeitsmappe vollständig, daher die Remote-Pfade. – William

+0

und sorry, um zu klären, sind meine Daten in B4: B40 (gemäß meinem obigen Code) und in C4: C40.Ich möchte, dass die Eingabe diese zwei Spalten liest und eine Ausgabe für jede Zeile in diesem Bereich "wahr" ist, wenn sich Daten in dieser Zeile in Spalte B oder Spalte C befinden. Wenn es wahr ist, möchte ich das entsprechende ausgeben Wert in Spalte A – William

+0

'Ausgabe als 'wahr' für jede Zeile in diesem Bereich, wenn in dieser Zeile Daten in Spalte B oder Spalte C vorhanden sind ' Sie möchten also den Wert in Spalte A zurückgeben, wenn in beiden Daten vorhanden sind B oder C? 'Wenn in beiden Bereichen leer, geben Sie den Text in der entsprechenden Zeile in Spalte A zurück. –

Verwandte Themen