0

と関数を一緒に使用してIF、 2 つの列を持つ別のシートから出力を取得したい(そのうちの 1 つは常に空白であるため、空白ではない列からの値が必要です)。INDEXMATCH

私が使用している式は次のようになります。

=IF(ISBLANK('DATA 1'!B:B);
    INDEX('DATA 1'!B:B;MATCH(OUTPUT!B14;'DATA 1'!A:A;0));
    INDEX('DATA 1'!C:C;MATCH(OUTPUT!B14;'DATA 1'!A:A;0)) )

この数式は 1 つの列からのみ値を返し、対応する列が空白の場合は と表示されます#N/A

空白ではない列 (別のシートの 2 つのうち) の値を表示したい。

4

1 に答える 1

0

以下を使用する必要があります。

=IF(ISBLANK(INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0))),INDEX('DATA 1'!B:B,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)),INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)))

ただし、null 文字列 ( )が渡されるISBLANKと が返されることに注意する必要があります。そのため、エントリのいずれかにそのようなエントリが含まれている場合 (おそらくそれらのセルの数式の結果として)、上記では正しい結果が得られません。FALSE""'DATA 1'!B:B'DATA 1'!C:C

そのため、より厳密には次のようになります。

=IF(INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0))="",INDEX('DATA 1'!B:B,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)),INDEX('DATA 1'!C:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0)))

戻り値が数値ではなくテキストであると仮定すると、短いものを使用することもできます。

=LOOKUP(REPT("z",255),INDEX('DATA 1'!B:C,MATCH(OUTPUT!B27,'DATA 1'!A:A,0),N(IF(1,{1,2}))))

その簡潔さは間違いなくその複雑さによって相殺されますが、繰り返しになりますが、これらの範囲に null 文字列が存在する場合、これは失敗します。

于 2015-10-21T12:44:20.190 に答える