
http://oshiete1.goo.ne.jp/qa921075.html
に「エクセルで他のシートを動的に参照するには」
という質問で
=INDIRECT(A1&"!"&B1)
と入力することで
例えば
a1="いちまいめ"
b1="d5"
と入っていれば
=いちまいめ!d5
と同じ意味に動的に出来るとありましたが
シート名の参照だけを動的にしたい場合はどうすればよいのでしょうか?
ただし
=INDIRECT(A1&"!d5")とすると
上下左右にコピーした際も d5 が
例えば d6 d7 d8 d9 ... と相対的に変わってくれないのでNGです。
また
=INDIRECT(A1&"!"&B1) のままで
b1 b2 b3 b4 b5
にそれぞれ
"d5" "d6" "d7" "d8" "d9" と入れておく
などという、計算エリアを別にもう1つ使うやり方や
A1から参照する以外の汎用性がないもの(例えばrow()なんかを
使うとコレに陥りやすい)もNGです。
ごちゃごちゃと注文が多い上に解りにくいですがどうぞご教授
下さいませ。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
=INDIRECT(A1&"!"&B"&ROW(A1))
または
=INDIRECT(ADDRESS(ROW(A1),2,,,A1))
で
=いちまいめ!B1
になります。
上記を下方にずらすとA1がA2,A3と変わり参照先もB2,B3に変化します。
早い回答ありがとうございます。
多少訂正を加えて試してみましたところ
うまくいきました♪
何かを作りたいと思うとどんどん思いが発展し
あれこれついやりたくなります。
思い立っても一般てきな記述意外を考え出すのが
なかなか至難の業です。
というのもやはり、知っている関数であっても一般的な
記述方法しかわからす、配列にしてみたり驚くような
組み合わせにしてみたりなかなか思いつかないものですね♪
ありがとうございました。
No.2
- 回答日時:
セルの参照位置の指定については、ROW関数やCOLUMN関数で行や列の位置を抽出して計算に利用するなどの方法で解決できます。
その場合、ADDRESS関数やOFFSET関数も有用かもしれません。
例:
=OFFSET(INDIRECT(A1&"!"&"B1"),ROW(A1)-1,COLUMN(A1)-1,1,1)
=INDIRECT(ADDRESS(ROW(A1),COLUMN(A1)+1,,,A1))
など
ANo.1 mshr1962さんの回答の一部を訂正させてもらいます。
※mshr1962さんの回答はいつも参考にさせてもらっています。正直ADDRESS関数は念頭にありませんでした。
些細な問題で、自動で修正されますが…ダブルクォーテーションが不足していますね。
=INDIRECT(A1&"!"&B"&ROW(A1))
↓
=INDIRECT(A1&"!"&"B"&ROW(A1))
または
=INDIRECT(A1&"!B"&ROW(A1))
列の参照が 2に固定されていますので常時B列参照になっています。
=INDIRECT(ADDRESS(ROW(A1),2,,,A1))
↓
=INDIRECT(ADDRESS(ROW(A1),COLUMN(A1)+1,,,A1))
アドバイスありがとうございます。
丁寧な回答感謝いたします。
本当は何でもかんでも人に聞いてしまうのは正直
やってしまいたくないのですが
どうしてもアイデアが出ない、あるいはまた
もともとそれに関しては応用方法の種類が頭の中に
備わっていないなんてことが多く、
やむにやまれず質問してしまいます。
今回の件でも、相当(一日思案し、3時間ほどネットで
調べたり・・・)考えたのですが、なにぶんまだまだ
至らないものでで結局答えが出ず・・・。
答えを教えてもらってしまえばものすごく簡単だったりするのが
またかえって悔しいです…。
Cupper より頂いた新たな式や発展した式も色々試したいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
シート参照で変数を使いたい(EXCEL)
Excel(エクセル)
-
別シート参照のセルをシート毎にずらしたいです
Excel(エクセル)
-
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
-
4
EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい
その他(ソフトウェア)
-
5
Excel > ピボットテーブル「(空白)」非表示
Excel(エクセル)
-
6
別シートのセルを絶対参照にする
その他(Microsoft Office)
-
7
INDIRECT関数の代替方法は?
Excel(エクセル)
-
8
他のワークシート名の取得方法 (VBAを使用せずに)
Excel(エクセル)
-
9
エクセルで他のシートを動的に参照するには
Excel(エクセル)
-
10
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
iPhoneのExcelアプリで、別のシ...
-
Excelで複数シートの選択セルを...
-
Excelの「0」だけ非表示、小数...
-
Excelシートの保護時にデータの...
-
エクセルで条件に一致したセル...
-
日付が未入力の際はゼロか、空...
-
Excelでスクロールすると文字が...
-
EXCELのハイパーリンクのセルを...
-
エクセルで1月0日と表示される!!
-
エクセルで、加筆修正したセル...
-
ハイパーリンク で『指定された...
-
エクセル ハイパーリンクで画像...
-
エクセルで複写のように自動入...
-
ExcelでTODAY関数を更新させな...
-
VBA シートの内容の範囲を指定...
-
複数シートの同じセル内容を1シ...
-
別シートのセルを絶対参照にする
-
INDIRECT(空白や()がある文字列...
-
エクセルで複数のシートの同じ...
-
VBAで、セル(Range)のオブジ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの「0」だけ非表示、小数...
-
Excelで複数シートの選択セルを...
-
Excelシートの保護時にデータの...
-
日付が未入力の際はゼロか、空...
-
エクセルで1月0日と表示される!!
-
エクセルで条件に一致したセル...
-
複数シートの同じセル内容を1シ...
-
ExcelでTODAY関数を更新させな...
-
別シートのセルを絶対参照にする
-
Excelでスクロールすると文字が...
-
EXCELのハイパーリンクのセルを...
-
エクセルで20万行あるシート...
-
エクセルで、加筆修正したセル...
-
エクセル ハイパーリンクで画像...
-
Rangeメソッドは失敗しました。...
-
マクロ 新しいシートにデータ...
-
(Excel)あるセルに文字を入力...
-
エクセルで複写のように自動入...
-
EXCEL関数でシート名が変わる可...
-
エクセルで指定のセルのみ完全...
おすすめ情報