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

解決済みの質問

エクセル column 指定した文字の列番号を返す

とあるサイトでcolumnの関数の使い方で、標題のようなことができることが書かれていたのですが、エラーとなって一向に解決できず質問です。

ある範囲に名前をつけておいて、(仮に価格表とします)
その範囲の中のある文字(ここではメガネとしておきます)の列番号を返すのに以下のように式を組まれてましたが、[ ]この括弧が悪さをしているのか、
一向にエラーがとけません。

 COLUMN(価格表[メガネ])


以下例の場合、3が返されるようなのですが、このエラーが解けません。

A  B   C   D   E
No. 項目 メガネ 時計 指輪
1
2
3 

以上、どなたか詳しい方がいらっしゃいましたらご教授いただけませんでしょうか。
情報が少ないなど何かございましたらよろしくお願い致します。

投稿日時 - 2018-03-19 18:58:52

QNo.9479560

困ってます

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

あぁ、ようやく意味が解りました。
あなたは、セル範囲に名前定義と書かれていますが、これが違います。
セル範囲(A1:E3)をテーブルに変換し、そのテーブル名を「価格表」としています。

これでしたら =COLUMN(価格表[メガネ]) で3が返ります。

投稿日時 - 2018-03-20 10:45:32

お礼

テーブルに変換、恥ずかしながら全く知りませんでした。
こんな機能があるなんて、普段エクセル使っていて全然知りもしませんでした。
勉強不足でご迷惑おかけしました( _ _ )

投稿日時 - 2018-03-21 09:56:26

ANo.3

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

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

回答(4)

ANo.4

[ ]から連想して、下記を記す。 何か参考になれば。
VBAの問題にすると
F2に、セルの値を32を入れて、名前定義を「メガネ」する。
C5セルに34といれて、名前定義を「財布」にする。
ーー
標準モジュールに
Sub test01()
MsgBox [メガネ]
MsgBox [財布]
'MsgBox Column([メガネ])
MsgBox Range("メガネ").Column
MsgBox [財布].Column
MsgBox [f2]
MsgBox [c5]
End Sub
と入れて実行すると、
24,34,6,3,24,34が順次出てくる。
6,3は列番号を表示している。
[と]で囲むと、セル指定の扱いになる。これは解説で見たことがある。使ったことはない。
Sub test02()
MsgBox [F5]
MsgBox [F5].Column
End Sub
F5は名前定義してなくても、そのセルの値や列番号を表示してくれる。
Msgbox Range("F5")
と書き方が違うだけ。

投稿日時 - 2018-03-20 18:42:29

お礼

ご回答ありがとうございます。

VBAについてはよく分からず、解読困難でありまして。せっかく描いて頂いたのに申し訳ございません。。

投稿日時 - 2018-03-21 09:52:51

ANo.2

>COLUMN(価格表[メガネ])

この書き方だと、「価格表[メガネ]」は変数名になりますが、変数名に大括弧は使えません。

投稿日時 - 2018-03-19 21:08:30

ANo.1

あなたが何か勘違いされているか、そのサイトの情報が間違っているんじゃないでしょうか。
COLUMN(価格表[メガネ]) この書き方ですと 価格表[メガネ] が、範囲名ですが、名前定義には大かっこは使用できません。

提示された例の場合、A1:E1セルの範囲を「価格表」と名付け、
=MATCH("メガネ",価格表,0) で、「メガネ」の位置が取得できます。

投稿日時 - 2018-03-19 19:26:39

補足

ご回答ありがとうございます。

確認したリンク先URLを付けて捕捉投稿したのですが、規約に反してるようで、ソースをご覧いただけなくて残念です。

できるネットというサイトで類似数式があがっておりました。そこではVLOOKUPの応用という位置付けでした。
お示しいただいた通り、MATCH関数でやりたかったことは行えるようなので、ひとまず解決出来そうです。
しかし、COLUMNでできるような解説されたサイトについてはスッキリさせたいですね。。

投稿日時 - 2018-03-20 08:37:32

あなたにオススメの質問