2010年05月13日(木)
Excelで、とあるセルの参照方法(PC&ネット)
タイトルが川柳っぽかった。
エクセルで
=
を入力してからとあるセルをマウスで選択すると、そのセルの内容を”参照”という形で利用する事ができる。
ある程度使っている人ならば常識の機能。
数値の計算とかをまとめてやるのにも都合が良い。
でもってエクセルにはこの”=”の先に使用できる様々な関数が用意されている。
なもんで当然、以下のような当然誰でも思いつく機能は、ヘルプを探して行けばすぐに見つかるはずだと思っていた。
とあるセルの値を数値として扱い、その数値を行番号or列番号として、セルの参照をしたい
要は多重に一段間を挟んで参照をしたいというもの。
プログラマーやVBでもやった事ある人ならば(でなくても)使いたい場合はある事だろう。
配列変数の添え字<変数名[この値]>として、特定のセルの値を使いたいというようなイメージ。
だがこれを普通にやろうとすると基本のセル参照の機能や、自分がヘルプから辿り着いた範囲での関数ではやり方が分からなかった。
こんな単純な機能がエクセルに無いわけが無い!
と思って躍起になって調べるが出てこず、気が狂いそうになる。
そこでVBにかなり詳しい部下(会社では先輩)のN君に聞いてみたら、
てのを使えば実現できるという。
試しにやってもらったところ、この目的の多重参照は意図通りに実現できた。
N君サイコーです。
ただ……。
何だよこの関数?
明らかにおかしいだろ常識で考えて。
1.一度値の一覧を行(か列)に沿って作成する
2.値の一覧のひとつ前の列(か行)に、値を参照する為の連番数値を振る
3.この[2列×(値の数)行]の範囲をVLOOKUP(1.が列ならHLOOKUP)の範囲として指定する
4.列位置には2を指定
5.検索値に参照したいセルの位置を指定
これでようやく意図した多重参照の結果になる、のだが……。
別にテーブルを値で検索して表示したい訳では全く無く、ただ単に特定のセルの値を使って順に参照したいというだけなのに、わざわざ連番を振らなければならない、テーブル化しなければならんというこの理不尽さ。
どう考えてもおかしい実装方法だろ。
自分で見つけるのはまず不可能だったコレは。
”Excel セル 参照 テーブル”でググると一発で出てきたんだけどね。
Excelは20世紀の中でも最高の発明だと思ってるんだが、たま~にこういう当たり前にできると思えるものができない、変な事があるのが困るな。
コメント
やまも ( 2010/05/15 02:07)
というか、普通に使える普通の変数を用意しておいてくれたら大抵の事はもっとラクに片付くのにな、と思いますね。いつも・・・
パピコン ( 2010/05/17 02:56)
なるほど確かに。<普通の変数
まあでも今のハードスペックなら全く問題は無いだろうけれど、
最初に作られた頃の情況だと変数を丸々サポートするのは
表計算の目的からしても難しかったんだろうなという気が。
その後はやる気がある人はVBAでやれや、って感じでそのまま
現在に至るって所ですか。