• ベストアンサー

Excel関数を使って、対象文字が検索文字列でn番目に出現した位置を知りたい

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

>対象文字が検索文字列でn番目に出現した位 文字桁番目数ならFind、Searchなどで解決する。 Instrと似ている。 >⇒○(例えば1)行目を検索し、□(例えば0)が△(例えば3)回目に出てくる位置を返す。 の意味がわからない。 第1行目で0が出てくるセルの列番号は、単純にMATCH関数で できるのでは。A列に出てきているのでA1か1列ではないの? >【答え】E1  とは?質問例では、A列ではないの? >数字でなく色々な文字(ABとか)を使ってもいいです 「いいです」ではなくーー>「場合もあります。」でしょう。 >OracleのInstr関数のような使い方と言えばよいでしょうか オラクルの使用者<<エクセルの使用者だと思うので、例が適当でないと思う。普通は特殊例をあげて一般例を想起に使わない。 http://oracle.se-free.com/dml/05_instr.html などに夜と、VBのInstrと同じで、文字列の中での話しのようですね。 本質問は「行目を検索し」といっているから、セルの位置(列番号)を発見して返す質問ではないの。 この点は非常に回答を左右します。 ーー 「部分一致で文字列を含む最初のセルの列番号を探せ」ということなのですか? ーー 例データ 列データの例 a as ghfg dfg ase dfgr =MIN(IF(ISERROR(FIND("fg",A1:A6)),"",ROW(A1:A6))) と入れて、SHIFT+CTRL+ENTER(配列数式) 結果 3 行データにするとうまくいかない。この点は考えて見ます。

mochiokun
質問者

お礼

ご回答有難うございました。 確かに仰るとおり、位置を知りたいと言ってるのに、文字列検索とかInstr関数とか話をして質問内容が非常に意味不明でした。。申し訳ありません。 要は、対象範囲の中で、指定した値が左から数えて指定した回数登場してきたところの位置を知りたいのです。 ここで、例えば対象範囲の文字列(0とか1)を、文字列連結し、 Instr関数のように、前から数えて何番目かという値を取得することができれば、INDEX関数を使ってセルの位置を確認できるのではないかという考えを持っていました。この思いがあったので対象範囲なのか文字列なのかわからない質問をしてしまっていました。 ちなみに >数字でなく色々な文字(ABとか)を使ってもいいです 「いいです」ではなくーー>「場合もあります。」でしょう。 の部分ですが、対照表の各セルに、IF関数を使って「~だったら0、~だったら1」という指定をしている為、極端な話0か1だろうが、AかBだろうが、指定しているのは自分なのでどっちでも可、なのです。説明不足でした。。

関連するQ&A

  • 文字列検索で・・・

    Instr関数で文字列の存在チェックを行っています。 この場合、変数indexに1が入った場合 Instr("aaa1_a.sql","index") <----- この場合問題はないのですが、 Instr("aaa12_a.sql","index") <-----となる場合も値がとれてしまうので どうしたものかと困っています。 うまく検索させる方法はないでしょうか? ちなみに検索する文字列には aaa数字.sql aaa数字_a.sql aaa数字_b.sql というパターンがあります。 どなたかよきアドバイスをいただけませんでしょうか? よろしくお願い致します。

  • 文字列検索で

    よろしくお願いします。 文字列検索instr関数で、特定文字(スペース)でない文字を検索したいのですが、どのようにしたらいいですか? instr関数では、できないのでしょうか? たとえば、 文字列" osietegoo "  →  3 文字列"    situmon"  →  7 スペースでない文字が出現する位置を知りたいです。 instr(文字列,"o")ではなく、" "ではない、、、としたいのですが、できますか?

  • 文字列検索しセルの位置が知りたい

    指定範囲内で文字列を検索し、見つかったセルの行番号、列番号を知りたいのです。 マクロでなく関数で出来るでしょうか?

  • 文字列検索

    文字列検索 テキストファイルの検索を行いたいです. 下記のようなサンプルファイルでfooを検索し, 含まれるならマッチした個数,含まれないならnilを返す関数を作りたいです. mecabを用いて形態素解析を1行ずつしようかと思ったんですが, 大量のファイルを処理する予定なので,オーバヘッドが気になります. 関数でgrepがあるみたいですが,マッチした行しか返されません. 標準関数で1行ずつよみこんで,1行のなかでマッチした回数を返す関数はありますか? --sample.txt-- foo foo bar bar foo hoge,hoge,hoge,hoge hage-hage-hage-foo -- end --

    • ベストアンサー
    • Ruby
  • 表のばらばらの文字列を1列にまとめたい 関数

    添付の左の表を右の表にしたいです。 (1)左の表には数式が入っていて、この他にもう一つある表のデータに該当すると1列ごとにSMとかNPとか表示されるようになっています。 (2)この左の表は実際には136列あるので、結果を印刷すると一枚に収まりきらないのです。なので、右の表のように、1列に表示したいのです。 (3)1行のうち、2個以上文字列が入ることもありますが、その可能性は低いので、とりあえず1行に1個ずつ出現すると考えてもらっていいです。(2個以上文字列が出現する場合も分かれば教えてください。) (4)関数でできませんか? またはマクロでもいいです。

  • VBA/FIND関数を使っての先頭文字列の検索方法

    エクセルVBAにてFIND関数を使って、 文字列検索⇒コピー&ペーストのマクロを作成しているのですが、 どうしても、先頭文字列から検索をする方法がわかりません。 たとえば、 あいうえお いうえおあ おあいうえ えおあいう という文字列から「あいう*」を検索したい場合、 1行目だけを抽出したいのですが、 1,3,4行目が抽出されてしまいます。 find関数では先頭文字からの検索はできないのでしょうか? もし、不可能な場合、先頭文字からの検索を行うにはどのように行えばよいでしょうか? アドバイス、よろしくお願いいたします。

  • 表のばらばらの文字列をまとめるマクロ 関数

    以前、同じ内容の質問を聞いたのですが、少し条件を変えて質問です。 (1)左の表には数式が入っていて、この他にもう一つある表のデータに該当すると1列ごとにSMとかNPとか表示されるようになっています。 (2)この左の表は実際には136列あるので、結果を印刷すると一枚に収まりきらないのです。なので、右の表のように、最短の列に表示したいのです。 (3)この例ではたまたま1行に1個ずつしか文字列が入ってないので右の表は1列ですが、1行に付き2個以上文字列が入ることもあります。5個以上はほとんどないです。 (4)関数でできませんか? またはマクロでもいいです。 以前、回答でいただいた関数は =IFERROR(HLOOKUP("*?",$A1:$D1,1,FALSE),"") 又は =IF(COUNTIF($A1:$D1,"*?"),HLOOKUP("*?",$A1:$D1,1,FALSE),"") でしたが、これだと1行につき1個文字列があるときのみ可能です。 1行に付き2個以上文字列がある場合に、例えば空欄を削除して左に詰めるような感じでマクロでできないでしょうか?

  • エクセルのLOOKUP関数について

    LOOKUP関数とVLOOKUP関数はどう違うのでしょうか?わかりやすく教えて下さい。(使用例など)  文字だけの表(2行)から検索したんですが、VLOOKUP関数は検索できたんですが、LOOKUP関数だと間違った検索になってしまうんです‥。

  • Excel2010 SUM関数の参照列を指定

    いつもお世話になっております。 文字で説明しにくく、分かりにくい表現になっておりすみません。。 Excel2010 で年度(4月~3月)の集計表があり、最右列へSUM関数が入っています。 様々な項目が行方向に複数行あり、全て最右列へはSUM関数が入っています。 この各月の数字は日々変化していき、今月中は今月中の数字だけが変化していくとは限らず、 1年間のうちどの月の数値が日々変化するかは分かりません。 毎月、前月までの合計を出しておきたい為、SUM関数が入っている列は、毎月月初に 参照列が4月~前月までになるように修正をしています。 毎月置換で数式内のアルファベットを変更したりしていますが、複数Sheetに渡り表が続いていたり、 M列の時はSUM関数の"M"が"SUN"になってしまったり。。うまくいなかいことがあります。 この為、参照列のアルファベットを同じファイル内のどこかのセルで指定して参照させることはできないかと思っています。 例えば、こんな感じの参照表を作成し、、 A  B   A列 B列 1行 4月 E 2行 5月 F 3行  6月 G 4行  7月 H 5行  8月 I 6行 9月 J 7行 10月 M 8行 11月 N 20行 S20へSUM関数 9月選択→10月選択に変更すると、SUM関数内の<=SUM(E20:J20)>→<=SUM(E20:M20)> に変更できるような。 SUM関数が入っているセルは全て「J」→「M」に一括で変更できるようにしたいです。 分かりにくくすみません。質問あれば補足します。

  • Excel関数で”○”印を検索

    連続したセル(列、行)に”○”印があるセルの数を検索したい。 具体的に言いますと! Excelの表で、行事に参加する人は”○”、不参加は”×”印で表された表があります。 この表の中に、”○”が幾つあるかを検索する、関数は何がよいか教えてください。