- ベストアンサー
excel関数 matchの使い方について
早速質問します。 行 A B C 1 2 2 2 4 3 5 4 3 5 8 6 2 C1セルにMATCH(B1,A1:A6,0)を式を入れるとA1セルに「2」という値があるので、C1には戻り値として「1」が返ると思うのですが、続けてC2セルに続きの検索を行いたい(A6セルに「2」というデータが入っているのでC2セルには「5(=6-1)」という結果を期待してます)のですが、うまくいく方法が思いつきません。 知恵をお貸しいただけないでしょうか? MATCH(B2,A1:A6,0)と第1セクションに手動で「B2」といわれと、目的の結果が得られますが、汎用性を持たせるため自動で結果が入れれるようにしたいのでお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 失礼しました。ご質問の意図、了解しました。 そういうことであれば、 C1に =MATCH(B$1,A1:A$6,0) C2に =IF(SUM(C$1:C1)+1>6,"",MATCH(B$1,INDIRECT("A"&SUM(C$1:C1)+1):A$6,0)) でC3以下にコピー でいいと思います。 上記式中で、SUM(C$1:C1)+1>6 の「6」は、検索範囲の最下セルの行番号です。この処理をしないと、最下セルに検索値があった場合に正しい結果が出てきません。 もし、検索範囲の一つ下のセル(A7)に、検索値と同じ数字が入ることがないのであれば、検索範囲を1行分広げて =MATCH(B$1,INDIRECT("A"&SUM(C$1:C1)+1):A$7,0) としても構いません。 なお、検索値が見つからなかった際の#N/Aについて、もし非表示にされたい場合、#2さんの使われた方法の他に、条件付き書式で見えなくする方法もあります。 C1:C6を選択して、書式→条件付き書式で 「数式が」「=ISNA(C1)」 として、「書式」でフォントの色をセルの背景色と同色にします。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
A2:A13に 2 3 4 5 6 2 3 2 2 3 4 2 C1に0を入れる。 C2に =MATCH(2,INDIRECT("A"&SUM($C$1:C1)+1&":$A$20"),0) と入れてC6まで複写。 結果はC1:C6に 0 2 5 2 1 3 C7以下は2のカウント数6を越えるので、エラーになります。 出したくなければ、それをIF文に組み込んでください。 ROW()がCountIf(A2:A20,2)+1より大なら""を、でないときは上記式を。 次は難行下にあるかを出しているが、質問の題意にあっているかな。
お礼
どうもわざわざご返事ありがとうございました。 無事、問題が解決いたしました。 重ね重ねありがとうございました。
- s_yoshi_6
- ベストアンサー率73% (1113/1519)
>MATCH(B2,A1:A6,0)と第1セクションに… の部分の数式は 「MATCH(B2,A2:A6,0)」ではないでしょうか。 数式をコピーする時に、A6の部分だけを固定されたいのであれば、そこのセル番地の列番号を絶対参照にして、C1に、 =MATCH(B1,A1:A$6,0) として以下コピーされると良いと思います。 (または、数式をC列以外にもコピーされるのであれば、列も絶対参照として =MATCH(B1,$A1:$A$6,0) とします) 参考:相対参照と絶対参照について http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu3.htm
お礼
わざわざ未熟者にお答えくださいましてありがとうございました。 また間違い箇所の指摘もありがとうございました。 わたしの質問に不備がありましたので、よろしければもう一度回答願えたらと思います。 お手数をかけまして誠にすみませんでした。
補足
お答えありがとうございます。 すいません、言葉が足りませんでした。(汗) >「MATCH(B2,A2:A6,0)」ではないでしょうか。 その通りです。 御指摘ありがとうございます。 で、例が悪かったのでもう一度、 行 A B C 1 9 7 2 7 3 5 4 3 5 8 6 7 C1セルにMATCH(B1,A1:A6,0)を式を入れるとA2セルに「7」という値があるので、C1には戻り値として「2」が返ると思うのですが、続けてC2セルに続きの検索を行いたい(A6セルに「7」というデータが入っているのでC2セルには「5(=6-1)」という結果を期待してます)のですが、うまくいく方法が思いつきません。 MATCH関数の第1セクションに自動に1回目の検索結果以後の値が検索できるよう、(今回の場合で言うと、1回目の検索で2行目を返したので、C2にC1式をコピー&ペーストした際に第1セクションに「B3」という値が自動ではいるよう)にしたいんです。 よろしくお願いいたします。
お礼
わざわざ2度も回答を下さりありがとうございました。 無事解決いたしました。 INDIRECT関数の存在を知りませんでしたので、今回非常に勉強になりました。 ありがとうございました。