• ベストアンサー

【エクセル】一覧の値を複数シートの決まったセルに表示させたい。

いつもお世話になっております。 [Sheet1]の一覧の値を、複数シートの決まったセルに表示させたいと思っております。 [Sheet2]から[Sheet1]のデータを引っ張ってくるような 数式などありましたら教えて下さい。 ex)[Sheet2]の(B1)に鈴木、(B2)総務部と表示させたい。 ex)[Sheet3]の(B1)に佐藤、(B2)人事部と表示させたい。 ()内の文字はセルの名前です。 宜しくお願いします。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ [Sheet1] (A1)シート名 (B1)名前 (C1)部署名 (A2)Sheet2  (B2)鈴木 (C2)総務部 (A3)Sheet3  (B3)佐藤 (C3)人事部 [Sheet2] (A1)名前  (B1)鈴木 (A2)部署名 (B2)総務部 [Sheet3] (A1)名前  (B1)佐藤 (A2)部署名 (B2)人事部

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

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.2

#1です。 ということでしたら、こんな数式でどうでしょうか。 =LOOKUP(RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename"))),Sheet1!A:A,Sheet1!B:B) シート名を取得するのに手間が掛かるので長くなってしまいました。 シート名は手入力でよいというのなら、 =LOOKUP("Sheet2",Sheet1!A:A,Sheet1!B:B) といった感じでよいですが、それでは本末転倒ですよね。 数式ではないですが、名前を使う方法もあります。 シート1のB2のところにカーソルを合わせた状態で、メニューの[挿入]-[名前]-[定義]を選択してください。 名前の下のテキストボックスには質問の例のままのデータなら鈴木と入っているはずです。 これをSheet2(もしくはお好きな名前)に変更して[追加]ボタンを押してください。 これでこのセルにはSheet2で参照できることになりました。 参照したいセルで =Sheet2 とすればこのセルに参照できます。

uentks_2005
質問者

お礼

ありがとうございます! このような数式を待っていました。 思い通りに動いています。 助かりました。

その他の回答 (2)

回答No.3

シート数が多い場合は、以下のようなVBAを使ってやる方が早いでしょう。 (1)VBAのコントロールツールボックスから、コマンドボタンをクリックしてSheet1の好きな場所に貼り付け (2)そのボタンをダブルクリックしてコード入力画面表示 (3)その部分に以下のコードをはりつけ Private Sub CommandButton1_Click() Dim a, b, c As String Dim n As Integer n = 2: 'Sheet数 For i = 1 To n 'データ呼び出し a = Worksheets("Sheet1").Cells(i + 1, 1).Value: 'Sheet名 b = Worksheets("Sheet1").Cells(i + 1, 2).Value: '名前 c = Worksheets("Sheet1").Cells(i + 1, 3).Value: '部署名 'データコピー Worksheets(a).Cells(2, 1).Value = b Worksheets(a).Cells(2, 2).Value = c Next i End Sub (4)後は、ボタンをクリックして実行。

uentks_2005
質問者

お礼

VBAは未経験なので、今回は数式で試してみます。 ありがとうございました。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

シート間のセルの参照は簡単です。 セル指定の前に「シート名!」を付加するだけです。 例えば、シート1のB1の値をシート2に表示するには、 =Sheet1!B1 とするだけです。

uentks_2005
質問者

補足

説明不足で申し訳ありません。 [Sheet2]から[Sheet1]を参照する場合は、 > =Sheet1!B2 で良いと思うのですが、 [Sheet3]から[Sheet1]を参照すると =Sheet1!B3となり、各シートごとに参照先を変更しなくてはなりません。 都度参照先を変更しなくても良いように、 [Sheet1]のA列にあるシート名を使って、自動的に参照できるような方法はないでしょうか?

関連するQ&A