• ベストアンサー

エクセルの関数?について

お世話になります。 今、次のような調書を作成中ですが、処理効率を上げるためにエクセルの関数?を活用してと考えております。 シート1には、次のようなデータが入っております。 「・・」本質問のために各セルの位置を合わせるために 入れているだけです。 ・・・・A・・・B・・・C・・・D・・・E・・・ 1・・氏名・・1位・・2位・・3位・・4位・・・  2・・佐藤・・・・・・・○・・・・・・・・・・・ 3・・吉田・・・○・・・・・・・・・・・・・・・ 4・・伊藤・・・・・・・・・・・・・・・○・・・ シート2に、シート1のデータを参照して、氏名の該当者に 対して、B2以降に該当順位を付す方法を教えてください。 ・・・・A・・・B・・・ 1・・氏名・・順位・・・  2・・佐藤・・2位 3・・吉田・・1位 4・・伊藤・・4位 シート1は外部から受けたデータであり、シート2は内部で 新たに加工する調書です。1500件ぐらいあるので、何と かエクセルを活用したいと考えておりますので、よろしく お願いします。

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

  • ベストアンサー
  • gookkj
  • ベストアンサー率49% (64/129)
回答No.2

シート2のB2に、次の式を入れてください。それ以降も同じイメージです。「・・」は空欄と仮定します。 =LOOKUP("○",シート1!B2:E2,シート1!B$1:E$1)

makoteru
質問者

お礼

ありがとうございます。 皆さんから、違った関数の方法で回答をいただいておりますので、 それぞて試してみます。

その他の回答 (2)

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

例データ 1 2 3 4 5 6 A ○ 6位 B ○ 1位 C ○ 4位 D ○ 3位 E ○ 5位 G ○ 2位 ーーー 式 例えばJ2に =INDEX($A$1:$H$1,1,MATCH("○",OFFSET($A$1,MATCH(A2,$A$1:$A$10,0)-1,0,1,10),0)) J7まで式を複写する。 結果 6 1 4 3 5 2 Sheet2で結果を出すときは =INDEX(Sheet1!$A$1:$H$1,1,MATCH("○",OFFSET(Sheet1!$A$1,MATCH(A2,Sheet1!$A$1:$A$10,0)-1,0,1,10),0)) のように修正。 「何位」の位は & "位" とつけてください。

makoteru
質問者

お礼

ありがとうございます。 これから作業にとりかかってみます。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

名前の行がsheet1とsheet2で同じ行なら sheet2のB2に =MATCH("○",Sheet1!B2:K2) で、10位まで表示されます K2 の部分をみぎに増やしていけば何位まででも...

makoteru
質問者

お礼

ありがとうございます。 早速試してみます。

関連するQ&A

専門家に質問してみよう