答え1
のような検索関数はVLOOKUP()
、検索値を見つけて何らかの結果を返すか、または検索値が見つからず #ERROR! を返すために使用できます。明らかに、これは通常、何らかの結果を探す「肯定的な」意味で使用されますが、「否定的な」意味で使用して、何らかの結果ではなく #ERROR! を探すこともできます。
また、 関数を使用して #ERROR! の存在をテストすることもできますISERROR()
。 を使用できる場合もありますが、のメカニズムIFERROR()
に適さない状況も多く、これはその 1 つです。ここでは、 をより洗練された として使用します。 その後、 INSTRUMENT が見つからない場合、テストは成功します。これは、そのような失敗を探しているためです。 その場合の TRUE の結果は、ルックアップ セルの値です。 テストが失敗した場合 (INSTRUMENT がそこに存在する場合)、"" が返されます。IFERROR()
ISERROR()
NOT()
IF()
次の式でこれを実行します。
=IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"")
機能がある場合はSPILL
、最初のセルにのみ数式が必要です。機能がない場合、最初のセルに貼り付けて、{CSE} を使用して配列を作成する古い方法を実行します。
数式の結果は出力範囲全体に散らばっていることに注意してください。それらをグループ化するには、空のものがリストの一番下になるように並べ替える必要があります。そうすることで、リストの使いやすさや見た目のどちらが重要になるかに関係なく、空のものがリストの一番下に表示されるようになります。
ただし、上記の数式の「」や、空白スペースになるはずのもっと大きな文字など、存在する文字に使用するほぼすべての文字はUNICODE(160)
、リストの先頭に並べ替えられます。これには、コピーして値として貼り付け、並べ替えるなど、さまざまな方法がありますが、操作する必要がないように数式を使用して実行するには、次のような方法を試すことができます。
=SUBSTITUTE(SORT(IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"ZZZZZZZZZZ")),"ZZZZZZZZZZ","")
常にリストの末尾に並べる文字列を使用します。この数式では「ZZZZZZZZZZ」が使用されています。次に、SORT()
それらすべてを末尾に強制し、最初に表示したいものを先頭に表示します。次に、SUBSTITUTE()
その文字列を「」のように空白で囲むと、それらはすべて「消えます」... もちろん実際にはそうではありませんが、見た目上は消えます。
(当然ですが、選択または適応する式では実際の参照を使用する必要があります。)