- ベストアンサー
エクセルで指定した文字の列番号を返す方法は?
- エクセルで特定の範囲に名前をつけ、その範囲内の特定の文字の列番号を返す方法についてご質問です。
- 特定の範囲に名前をつけておいて、その範囲の中のある文字の列番号を返すために「COLUMN」関数を使用していますが、エラーが解決できないという問題が発生しています。
- 具体的な例を挙げると、A列に「No.」、B列に「項目」、C列に「メガネ」、D列に「時計」、E列に「指輪」というデータがある場合、C列の列番号である3が返されるべきですが、エラーが解消されません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
[ ]から連想して、下記を記す。 何か参考になれば。 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") と書き方が違うだけ。
お礼
ご回答ありがとうございます。 VBAについてはよく分からず、解読困難でありまして。せっかく描いて頂いたのに申し訳ございません。。
- nan93850673
- ベストアンサー率32% (179/553)
>COLUMN(価格表[メガネ]) この書き方だと、「価格表[メガネ]」は変数名になりますが、変数名に大括弧は使えません。
- mt2015
- ベストアンサー率49% (258/524)
あなたが何か勘違いされているか、そのサイトの情報が間違っているんじゃないでしょうか。 COLUMN(価格表[メガネ]) この書き方ですと 価格表[メガネ] が、範囲名ですが、名前定義には大かっこは使用できません。 提示された例の場合、A1:E1セルの範囲を「価格表」と名付け、 =MATCH("メガネ",価格表,0) で、「メガネ」の位置が取得できます。
補足
ご回答ありがとうございます。 確認したリンク先URLを付けて捕捉投稿したのですが、規約に反してるようで、ソースをご覧いただけなくて残念です。 できるネットというサイトで類似数式があがっておりました。そこではVLOOKUPの応用という位置付けでした。 お示しいただいた通り、MATCH関数でやりたかったことは行えるようなので、ひとまず解決出来そうです。 しかし、COLUMNでできるような解説されたサイトについてはスッキリさせたいですね。。
お礼
テーブルに変換、恥ずかしながら全く知りませんでした。 こんな機能があるなんて、普段エクセル使っていて全然知りもしませんでした。 勉強不足でご迷惑おかけしました( _ _ )