• ベストアンサー

エクセルと表引き

エクセル初心者です。 エクセル2003で下記画像のような2枚のシートを作りたいのです。 上段画像のシート1は作成済です。 それぞれ勤務地の希望表なのですが ○印だけのセルを探して、その項目名(東京・大阪・神奈川) をセルに表引きしたいのですが。 よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.7

>東京→東 >大阪→大 >神奈川→神 B2: =IF(A2="","",LEFT(INDEX(Sheet1!B$1:D$1,MATCH("○",Sheet1!B2:D2,0)))) そのようにしたいのであればLEFT関数を使いますが,他の方から寄せられている回答と少し関数の使い方が違うのを見落とさないようにしてください。 #非常に余談でOFFSET関数を使っても勿論出来ますが,「ブックを開いて何もせずそのまま閉じる」だけでも「ブックの変更を保存しますか」の警告を出す原因になります。 #余談ついでに,複数の回答者から「ホントに○は一個しかないのですか?」とか「縦方向はどういう具合に結果を並べたいのですか?」といったご相談内容の説明不足が指摘されている点について,スルーせず「実際はこうです」といったキャッチボールを心がけると,より役に立つ結果が得られますよ。

その他の回答 (6)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.6

LEFT関数を覚えるついでに、RIGHT関数、MID関数、FIND関数も勉強しましょう。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.5

東京→東 大阪→大 神奈川→神 LEFT関数を使います。 =LEFT("東京",1) とすれば、"東京"という文字列の左端の1文字「東」を取得できます。 =LEFT("神奈川",2)だと、左端の2文字「神奈」を取得できます。 今回の場合であれば、最初の例の"東京"の部分に計算式を入れて、 =LEFT(OFFSET(Sheet1!$B$1,,MATCH("○",Sheet1!B2:D2,0)-1),1) とすれば良いです。

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

Aが1行しか出てこず、○が各行で1つしか出てこないなら(この点質問には明記のこと) 外に両シートの氏名が同じ順番かどうかも。 Sheet1のA列で 例データ A1:D6 氏名 東京 大阪 神奈川 a ○ b ○ c ○ d ○ e ○ 簡単のため同一シートで出す例 A9:A14に 氏名 a b c d e を作る。 B10に =INDEX($A$1:$D$1,1,MATCH("○",OFFSET($A$1,MATCH(A10,$A$1:$A$10,0)-1,0,1,4))) 下方向に式を複写 結果 氏名 勤務地 a 東京 b 大阪 c 大阪 d 神奈川 e 東京 式の$A$1:$A$10の10の部分は適宜広げてください。 式の4(列数)とか、列範囲の$A$1:$D$1のD1も同じ事情。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

一例ですが ■行が同じでいいなら B2=INDEX(シート1!$B$1:$D$1,1,MATCH("○",シート1!$B2:$D2,0)) ■行も検索対象(氏名 A列)だと B2=INDEX(シート1!$B$1:$D$1,1,MATCH("○",OFFSET(シート1!$B$2,MATCH($A2,シート1!$A$2:$A$100,0)-1,,,3),0))

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

一例です。 Sheet2のB2に、 =OFFSET(Sheet1!$B$1,,MATCH("○",Sheet1!B2:D2,0)-1) と入力し、下にコピペ。

aidorumary
質問者

補足

ありがとうございます。 この式で、凄く対応できました。 ひとつ追加で勉強したいのですが シート2の値を例えば 東京→東 大阪→大 神奈川→神 のように一部省略して表示するには この式をどのように変更すればいいのでしょうか。 お願いします。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

A列は氏名の再掲:  A2: =Sheet1!A2&""  以下コピー C列はE列の再掲:ただしE列には「2年」のように言葉で記入してある前提で  C2: =Sheet1!E2&""  以下コピー B列はご相談に書かれている通りに○が一つしかない(かつ必ず一つある)のならば  B2: =IF(A2="","",INDEX(Sheet1!B$1:D$1,MATCH("○",Sheet1!B2:D2,0)))  以下コピー #もし○が一つもない場合もあるなら  B2: =IF(OR(A2="",COUNTIF(Sheet1!B2:D2,"○")=0),"", 同上 )  などのように,実際のデータの入り具合に応じて色々応用します。

aidorumary
質問者

補足

ありがとうございます。 ひとつ追加質問なのですが、例えば、シート2の B列に値を表引きする際に 東京→東 大阪→大 神奈川→神 のように表示するには、関数をどう応用 すればいいのでしょうか。 よろしくお願いします。

関連するQ&A