老親介護に悩む30~60代の方へ
老親介護ねっと[老人ホーム編]
トップ 老人ホームの選び方 介護関連ニュース 新規オープンホーム情報 老人ホーム取材レポート お問い合わせ リンク集 Q&A

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

何故「COLUMN」でB3,C3,D3を指定?

現在グーグルスプレッドシートでゴルフ管理のファイルを作成しています。
OKWAVEで分からないところは質問しながら作成していました。
結果は問題なく出力される以下の式なのですが、よく意味が分からない場所があります。
(1)AE
(2)AF
(3)AG
の式をダブルクリックすると一か所だけまったく意味のない場所が出てきます。
結果は問題く、Referenceシートから
(1)5
(2)4
(3)3
を拾ってきてくれています。
ただ、何故「COLUMN」でB3,C3,D3を指定してるのか全く理解できず、
これから管理していくうえでこの部分を理解したく質問させていただきました。

以下の式で
J2にある単語をReferenceというシートからA1からJ300の範囲内で検索して。。。
そのあと「COLUMN」の所が理解できません。
(1) =VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(B3),FALSE)
(2) =VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(C3),FALSE)
(3) =VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(D3),FALSE)

添付した、イメージのようにCOLUMNで示している
(1)B3
(2)C3
(3)D3
が色が変わっているのですが、まったく意味のない場所なのです。

なぜ、ここを「COLUMN」する必要があるのか理解できる方がいましたら教えて頂けないでしょうか。
どうか宜しくお願いいたします。

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2018-02-15 11:40:53

QNo.9429285

困ってます

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

追記。

「セルを横にコピーしたら、式が、列の位置に合わせて、適切に変更される」というのを、解かり易い式で書くと

=VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN()-COLUMN($AE1)+2,FALSE)

と言う式になります。

この式をAE列に書くと「COLUMN()」は「31」に、「COLUMN($AE1)」も「31」になり「COLUMN()-COLUMN($AE1)+2」の結果は「2」になります。

同じ式をAF列に書くと「COLUMN()-COLUMN($AE1)+2」の結果は「3」になります。

「COLUMN()-COLUMN($AE1)+2」と書いてあれば、この部分は「AE列を基準にして2、3、4、5…と言う値になる」と言うのが理解し易いと思います。

この書き方だと「どの列も、まったく同じ数式になる」ので、判り易いし、セルのコピーではなく「数式のコピー」で横方向にコピーする事も出来ます。

投稿日時 - 2018-02-15 12:43:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>が色が変わっているのですが、まったく意味のない場所なのです。

これは「AEのセルをAF~AMにコピーした時に、いちいち手直ししなくて済むようにするため」です。

セルAEの式
=VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(B3),FALSE)
は、本来ならば
=VLOOKUP($J2,Sheet2!$A$1:$J$300,2,FALSE)
と書きます。

欲しい結果は、Sheet2!$A$1:$J$300の「2列目の値」なので、本来は「2」と書きます。

セルAEにこう書いてから、セルAEをセルAFにコピーした場合、セルAFの式
=VLOOKUP($J2,Sheet2!$A$1:$J$300,2,FALSE)

=VLOOKUP($J2,Sheet2!$A$1:$J$300,3,FALSE)
に書き変えて「3列目の値」を取ってくるように変更しなければなりません。同様に、AGは「2を4に」、AHは「2を5に」、AIは「2を6に」手作業で変更しないとなりません。

ですが、そういう書き換えをAF~AMの列で行なうのは面倒なので、セルAEに
=VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(B3),FALSE)
と書いておくのです。

そして、AEセルをAF~AMセルにコピーすると、自動的にB3がC3に、B3がD3に、B3がE3に書き換わってコピーされます。

つまり、手作業で「2を3に」「2を4に」「2を5に」書き変える、と言う手作業が不要になるのです。

言い替えれば「横方向にセルをコピーしたら、式の内容が、列の位置に合わせて、適切に書き換わってくれるようにしてある」のです。

投稿日時 - 2018-02-15 12:28:16

ANo.1

COLUMNは、列番号を求める関数です。
COLUMN(B3)は2
COLUMN(C3)は3 になります。そのようにに置き換えても、何の問題もないし、その方が判りやすいです。

それでは、なぜわざわざCOLUMN(B3)としたのか、
これは、コピペの為です。この書き方なら、
AEだけ入力して、後右にコピペすればいいわけです。

=VLOOKUP($J2,Sheet2!$A$1:$J$300,COLUMN(B3),FALSE)
=VLOOKUP($J2,Sheet2!$A$1:$J$300,2,FALSE)
全く同じですが、上のように書けば、横にコピペすればB3はC3に代わります。下のように書けば、その後、1つ1つ式を変更しなければならないので大変です。

私は、このようなやり方があったのかと感心しました。

投稿日時 - 2018-02-15 12:10:01

お礼

SI299792さま
こんなに早く適切な返答をいただきましてありがとうございました。
お陰様で問題を解決することができました!
本当にありがとうございました!

投稿日時 - 2018-02-15 12:22:35