• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル column 指定した文字の列番号を返す)

エクセルで指定した文字の列番号を返す方法は?

このQ&Aのポイント
  • エクセルで特定の範囲に名前をつけ、その範囲内の特定の文字の列番号を返す方法についてご質問です。
  • 特定の範囲に名前をつけておいて、その範囲の中のある文字の列番号を返すために「COLUMN」関数を使用していますが、エラーが解決できないという問題が発生しています。
  • 具体的な例を挙げると、A列に「No.」、B列に「項目」、C列に「メガネ」、D列に「時計」、E列に「指輪」というデータがある場合、C列の列番号である3が返されるべきですが、エラーが解消されません。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

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

teruku106
質問者

お礼

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

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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") と書き方が違うだけ。

teruku106
質問者

お礼

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

回答No.2

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

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

あなたが何か勘違いされているか、そのサイトの情報が間違っているんじゃないでしょうか。 COLUMN(価格表[メガネ]) この書き方ですと 価格表[メガネ] が、範囲名ですが、名前定義には大かっこは使用できません。 提示された例の場合、A1:E1セルの範囲を「価格表」と名付け、 =MATCH("メガネ",価格表,0) で、「メガネ」の位置が取得できます。

teruku106
質問者

補足

ご回答ありがとうございます。 確認したリンク先URLを付けて捕捉投稿したのですが、規約に反してるようで、ソースをご覧いただけなくて残念です。 できるネットというサイトで類似数式があがっておりました。そこではVLOOKUPの応用という位置付けでした。 お示しいただいた通り、MATCH関数でやりたかったことは行えるようなので、ひとまず解決出来そうです。 しかし、COLUMNでできるような解説されたサイトについてはスッキリさせたいですね。。

関連するQ&A