
こんにちは。
以前からの疑問なのですが、ワークシート関数であるindirectとcolumnを使ってのセルの参照をしたいのですが、column()が数字を返してくるため、それを実現できずにいます。choose関数を使ったり、lookupで別表を参照する以外の、もっとスマートな方法で英字を得る方法はないものでしょうか?
具体例を挙げると、http://www.field-play.com/Book1.xls
において、sheet1ではrow()を使って黄色セルを埋めていますが、コレと同様に、sheet2の黄色セルを、column()で埋めたいのです。
ちなみに、VBAは殆どわかりません。
エクセル2007を使用しています。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
こんにちは。
通常は、セルというのは、数値で管理できますから、英字を文字で取る必要ありません。
OFFSET 関数は、基点になるセルを決めて、そこからいくつ、上下左右、離れるか、ということですから、
=OFFSET($B$1,1,COLUMN(A1)-1)
B1 を基点にしたら、その下---1セル、左は、0からということで、列に対して動かしていくわけですから、0 にするには、COLUMN(A1) = 1 ですから、そこから、-1 と引きます。
基点になるB1 は、必ず、絶対参照にして、$B$1 にしてください。
縦なら、
=OFFSET($B$1,ROW(A1)-1,0)
などとします。
あまり使いませんが、
=INDIRECT(ADDRESS(ROW(B2),COLUMN(B2)))
という方法でも可能です。詳しくは、ヘルプ等で確認してください。
ちなみに、英字を取る方法は以下のようにします。
=LEFT(ADDRESS(ROW(B2),COLUMN(B2),2),FIND("$",ADDRESS(ROW(B2),COLUMN(B2),2))-1)
よくよく考えれば、offsetを使うことでindirectを使わずにすむことが多そうですね。indirectだとどこまでを" "で括るかで悩むことがあったので、offset派に変更しようかな。
ありがとうございます。
No.3
- 回答日時:
いいものがありますよ
address関数です
http://www3.tokai.or.jp/excel/kansu/address.htm
なんかこの為にあるような関数で
=address(5,2,4,1,"Sheet1")
とすると文字列で
「Sheet1!B5」
(※ 「や」はその内側がテキストであることを強調するために
本来付かないものを敢えて付けたものです)
とお誂え向きに返してくれます
しかしながら
=indirect(address(row(A5),column(B1),4,1,"Sheet1"),1)
等とすると括弧の深さが総勢3つと深くなるので
オフセット関数を使って
=offset(Sheet1!$A$1,row(A5)-1,column(B1)-1,1,1)
の方が楽なのですが
ハイパーリンク関数とかの場合などもあり
かなり使えますよ
因みに数値を文字に置き換えるときは
char関数とか
lookup関数でした方が楽ですし
式自体もスッキリしますよ
=lookup(1,column($a$1:$z$1),char(column($a$1:$z$1)+64))→A
・
・
・
=lookup(27,column($a$1:$z$1),char(column($a$1:$z$1)+64))→Z
http://maglog.jp/excel/Article286981.html
char(64+row(a1))→A
char(64+row(a2))→B
・
・
・
・
char(64+row(a27))→Z
char(64+row(a1))&char(64+row(a1))→AA
http://www3.tokai.or.jp/excel/kansu/char.htm
そんな関数もあったんですね (^^;)
引数が多くてちょっと取っつきにくいですが、便利そうなのでaddressも使おうと思います。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) Excel 、この式はどのように解釈すればいいのでしょうか 4 2023/02/03 08:53
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) substitute関数についての質問です 3 2023/06/21 11:57
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) エクセル 関数参照範囲のセルの表示 1 2023/03/16 14:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について
-
エクセルの複雑なシフト表から...
-
エクセルのリストについて
-
【マクロ】元データと同じお客...
-
【画像あり】オートフィルター...
-
【マクロ】【相談】Excelブック...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
Office2021のエクセルで米国株...
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
他のシートの検索
-
【マクロ】左のブックと右のブ...
-
Amazonでマイクロソフトオフィ...
-
vba テキストボックスとリフト...
-
【マクロ】【配列】3つのシー...
-
【マクロ】列を折りたたみ非表...
-
【マクロ】オートフィルターの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報