- ベストアンサー
値を検索して列番号を返す関数
エクセルの関数で A1 A2 あ い となっている時、「い」は何列目なのかを取得する関数はありますか? 「B」ではなく、「2」というように列番号を返したいです。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
=MATCH("い",$A$1:$A$2,0) これで2を返します。
その他の回答 (5)
- takesun
- ベストアンサー率40% (22/54)
>「B」ではなく、「2」というように列番号を返したいです。 ご質問から察するに「A2」の部分は「B1」の間違いではないかな? であれば、=MATCH("い",A1:B1)で2が得られます。 範囲がA1:A2だったとしても =MATCH("い",A1:A2)で2が得られます。 外していましたら、もう少しご質問内容を 詳しくお願いします。
お礼
そうです。 すいません。 ありがとうございます。参考になりました。
- imogasi
- ベストアンサー率27% (4737/17069)
例がおかしいのでは無いですか。A1,A2と縦方向にデータを作っておいて >い」は何列目なのかを、はおかしいでしょう。何行目に有るかは、 MATCH関数を使う。 Googleででも照会のこと。 この関数を知っているかどうかだけの質問。この関数は関数の勉強で中級以上では多用される。 第2引数の検査範囲の取り方によって、答えが変わるから注意。A1:Ax とするか(存在すれば答えは行番号に一致したものが返る)データが始まる例えばA3:Axとするかで。
お礼
例が間違っていました。 A2ではなくB1に「い」と入れてました。 失礼しました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
MATCH関数は違った列や行を範囲に含めることはできません。マクロでなければ一気に求めることはできないでしょう。 関数で行うには例えば2行目からデータがあるとしてA1セルに次の式を入力し右横方向にオートフィルドラッグします。該当の列に列番号が表示されます。 =IF(COUNTIF(A2:A10000,"い")>0,COLUMN(A1),"") 上記の例ではA1セルに式を入力して、横方向にオートフィルドラッグして該当の列を求めていますが、A1セルに式を入力して下方向にオートフィルドラッグして列番号を求めるためには次の式をA1セルに入力して下方向にーオートフィルドラッグします。その場合には初めにA列を新たの挿入して式を入力することになりますね。 =IF(COUNTIF(B1:XX1,"い")=0,"",MATCH("い",B1:XX1,0)) MATCH関数では、該当するデータがない場合にはエラーとなります。エラー表示などをなくするためには上記のようにCOUNTIF関数などを使うとよいでしょう。
お礼
ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! 何度もごめんなさい・・・ あちゃぁ~~~! エラーになってしまいましたか? #N/A は 関数の中に値がみつからないという意味だと思いますので、 MATCH関数の検査範囲の指定などは「い」の行になっていますかね? 尚、先ほどの回答のデータ範囲はA1~C2の間違いでしたけど 大勢には影響はないように思われます。 そして回答画面の数式をそのままExcelのSheet上にコピー&ペーストしても ちゃんと「2」が表示されましたけど・・・ ん~~~ 原因がチト、分かりません。 どうもこの程度の回答でごめんなさいね。m(__)m
お礼
すいません、、、今気づきましたが、 A1 B1 あ い としたかったのでした。。。 あほなこと言って なんかすいません。 ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 行番号ではなくて・・・列番号なのですね? 一例ですが・・・ 表は A1セルから右に 1行目から A1 A2 A3 あ い う となっていると仮定して・・・ 「い」の列番号を取得したいということで回答させていただきます。 A1~B3セルに先ほどのデータがあるとします。 表示させたいセルに =COLUMN(INDEX(A1:C2,,MATCH("い",A2:C2,0))) としてみてください。 尚、エラー処理はしていません。 以上、参考になれば幸いですが、 的外れの回答なら無視してくださいね。m(__)m
お礼
んん?? すいません。#N/Aになってしまいました。。。。ご回答いただいたのにすいません。
お礼
縦と横を間違えてましたが 参照を変えたらできました。 ありがとうございます。