2012-04-10 16 views
3

Excelで指定された値に一致する最初の項目の行番号を返すために使用している数式があります。Excel MATCH + COUNTIF関数:配列のn番目の値を取得する

式:=MATCH(0,COUNTIF($B$1,List),0) + CTRL + + をENTER SHIFTおよびMacで:CMD + RETURN

は次のようになります。

MATCH(0,{**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0) 

出力:1

関数を更新して、指定した値に一致する2番目、3番目などのインスタンスを見つけることができます。

MATCH(0,{0;**0**;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0},0) 

そして、この出力:2

+0

:http://stackoverflow.com/questions/9588286/match-or-vlookup-starting-from-the-end-of -the-range – assylias

答えて

3

は、あなたの現在の式ががないマッチB1を行うことをリストの最初の値の位置を見つけることができませんでしょうか?このよう

2について

この配列数式

=SMALL(IF(List<>$B$1,ROW(List)-MIN(ROW(List))+1),2)

は、n番目の一致のための任意の値nと2を交換してみてください。リストは単一の列であると仮定します

+0

これは、小さな修正を加えた手袋のようにフィットします。より小さいか大きい値の代わりに等号を使用します。= SMALL(IF(List = $ B $ 1、ROW(List)-MIN(ROW(List)) +1)、2) – krumholz

+0

@ user1311882 - 問題ありません - あなたのオリジナルと一貫性を持たせようとしていたように、COUNTIFに対してゼロをマッチさせると、最初のセルの位置が「等しくない」 $ B $ 1 - $の最初のインスタンスの位置を見つけるB $ 1あなたは単純に '= MATCH($ B $ 1、List、0)'を使います –

0

オカレンスが見つかるたびに動的にリストを移動することができます。これにより、次回の出現時にリストが最後に見つかった位置から開始されます。

使用このMATCH(<Match value>,INDIRECT(" <column of data> " & <Last position found> +1 & ":<Column of Data><Last Row Of Data>"),0)+<Last position found>

これを参照してください。これは助けることができるfilter dynamic

関連する問題