• ベストアンサー

前月のランキングの抽出をしたい

Excelで例えば以下のようなシートがあり9月のC2に前月のランキングを抽出したい場合、どのような関数を使えばよろしいでしょうか?ちなみに情報番号はユニークです。 sheet9月 A        B  C ランク 情報番号 前月のランキング 1      145 2      212 3     5553 4     4669 sheet8月 A        B ランク 情報番号 1     5553 2      145 3      354 4     2730

質問者が選んだベストアンサー

  • ベストアンサー
  • Admiral
  • ベストアンサー率19% (65/330)
回答No.2

No.1です。 ごめんなさい。間違えてしまいました。 正しくは、 セルC1=前月のランキングとして、 sheet9月のセルC2 =INDEX(sheet8月!A2:A5,MATCH(B2,sheet8月!B2:B5),1) です。

hikson
質問者

お礼

ありがとうございます。下記の説明で大筋理屈が分かりましたので、その後、試行錯誤の末、上記と同じ結果になりました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

(データ)Sheet5のA1:B5 ランク 情報番号 1 5553 2 145 3 354 4 2730 Sheet6のA1:B5とC1:C5(関数の結果) ランク 情報番号 前月のランキング 1 145 2 2 212 ランク外 3 5553 1 4 4669 ランク外 (関数式) C2に=IF(ISERROR(MATCH(B2,Sheet5!$B$2:$B$5,0)),"ランク外",MATCH(B2,Sheet5!$B$2:$B$5,0)) といれ、C3:C5に式を複写する。 Sheet5!$B$2:$B$5の$B$5は最下行に修正すること。 (結果) 上記のC列の通り。 Sheet5は順位の順に並んでいるものとしている。

hikson
質問者

お礼

なるほど、これはパーフェクトですね。エラーをランク外にしてしまうわけですね。ありがとうございます。

  • Admiral
  • ベストアンサー率19% (65/330)
回答No.1

sheet9月のセルC1 =INDEX(A:A,MATCH(B1,sheet8月!B:B),1) でどうでしょうか。 MATCH(検索値,検索範囲) で検索範囲内で検索値に一致するセルの行番号を返します。 INDEX(範囲,行番号,列番号) で指定するセルの値を返します。

hikson
質問者

お礼

ありがとうございます。簡潔でよく理解できました。

関連するQ&A