• 締切済み

列番号や相対的な位置を返す

nihonjinnの回答

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.1

作業列を使います。 B1に =A1-ROW()*0.00001 と入力し、B10までコピーします。そうすると同じ大きさの数字があっても、上の行の数字のほうが大きくなります。 あとは =MATCH(LARGE(B1:B10,6),B1:B10,0) とすればうまくいくと思います。 「0.00001」は適当な桁数にしてください。 整数だと数万行あったとしても正しくなると思います。 小数だと桁数を増やしたほうがいいかもしれないです。

khex001
質問者

お礼

ありがとうございました。こんなにはやく回答がいただけると思っていなかったので驚きました。 作業列を使うと、いろいろバリエーションが増えますね。現在入力しているデータのマスが大きいので、できればそのままの列を使いたかったのですが、どう考えても無理そうです。新しいブックにデータ変換して作業を進めています。おかげで、はかどりました。止まっていた作業が進むときの嬉しさを味わっているところです。改めてお礼申し上げます。ありがとうございました。まだまだわからないことだらけで恐縮ですが、今後ともよろしくお願い申し上げます。

関連するQ&A

  • エクセルの文字列検索で何番目の$の位置?

    たとえば、$A$1:$AG$25とか$AB$100:$AG$2550という文字列から、 1.文字列末尾の数値を取得する関数はあるでしょうか? 2.3番目の$の位置、4番目の$の位置を取得できる関数はあるでしょうか?

  • ある数値以上の値があるセルを取得したい

    エクセルの関数で、ある数値以上の値があるセルの位置を取得したいのです。 範囲B2:B11に任意の数値が入っているものとします。 その中で、仮に3以上の値が出現するセルの位置を取得する場合、どのような関数を用いればよろしいでしょうか? 数値をぴったり3に限定なら、=MATCH(3,B2:B11,0) で、範囲内で何番目にあるかわかりますが、3以上となると 補助列を用意し、=B2>3のような式を各セルに入れて、TRUEの位置を=MATCH(TRUE,A2:A11,0) で取得するくらいしか思いつきません。 ご教示ください。

  • エクセル関数 2番目~20番目の数値を表示させたい

    列Aに2行目からN(65536)行に100から100単位で5000まで数字が入力されています。 一番高い数値は"MAX"で求められますが、2番目以降の数値が"MAX"、もしくは"LARGE"ではうまく表示されません(それぞれ複数個存在するため)。 何か良い方法はないでしょうか?

  • LARGE関数 飛び飛びの範囲を指定

    複数ある数字の○番目に大きな数字を抜き出す。 これに便利なのはLARGE関数ですね。 例 : A1~A15のセルのうち2番目に大きな数字を表示させる =LARGE(A1:A15,2) それでは、範囲が飛び飛びの複数セルの中から探すことは出来るのでしょうか? A1 A3 A5 A6 の中から2番目に大きな数字を抜き出す。 と言うような事です。 詳しい方、よろしくおねがいしますー!!

  • Excel2010でセルの列番号を知る

    VBAを使っていて、Cells()でセルから数値を参照する際に、 そのセルの列番号を知るためにはどうしたら良いですか? CとかDぐらいならすぐに数えられるのですが、AAとかBBまでなってくると 何番目の列なのか数えるのが大変です。 いつも知りたいセルから A1セルまでドラッグして選択したセルの数から算出しているのですが もっと良い方法はないでしょうか? http://trendy.nikkeibp.co.jp/article/qa/other/20020819/101538/?rt=nocnt ここに書いてあるR1C1表示にすると、 VBAを使う時には便利なのですが、 ワークシート上で、数式を扱う際には、 セルが相対表示になるため、通常の表示の方が便利です。 A1B1表示のままで、セルの行列番号を手軽に知る方法がありましたら教えて下さい。

  • 【EXCEL】空白でないセルの位置を検索したい

    初めまして。 EXCELの関数を利用して、 下記のようなことをしたいと思案中です。  A B C D E F 1* 1   2   3 2* 1   2 3 3 3* 1   2    4* 1   2 3 3 *が計算式を挿入したい箇所です。 各行の最初のブランク位置を検索したいです。 ブランクの個数は不定ですが、 B~Fのセルに入れるデータは全て数値です。 MATCH関数を使い、MATCH("",B3:F3)のようにしても、 #N/Aとなってしまいます。 何か良い方法はないでしょうか? ご教授頂けますようよろしくお願い致します。

  • エクセル関数でこんな検索

    A1:A10にリストがあります。 表示されているのは文字列としての数字です。 このリストの中に、010,090,130,190,20Aの5つの値のいずれかが一つでも入っているか、いないかを判定する関数はないでしょうか? =MATCH("010",A1:A10)などという式を5個つくり、一つでも数値が返ってくれば存在することはわかりますが、もっとスマートな方法があるのではないかと思い質問いたします。

  • エクセルで最大値の隣の隣の数値を返したい

    お世話になります 使用はエクセル2003です。 シート1のA1~D35にぎっしり1~999のいづれかの数値が入っているとして、その中で最大値の右の隣の隣の数値をシート2に表示させたいのです。(たとえば最大値がA1にあればC1を返し、D5にあれば F5の値を返すということです。) 同じく2番目に大きい数の右の隣の隣の数値というふうに5番目まで 数値を出したいです。 IFとLARGEとOFFSETを組み合わせてやろうと思ったのですが うまくいきません。 よろしくお願いいたします

  • 正規表現での複数箇所の文字列置換について

    文字列から特定の文字を検出し、 HTMLタグに置換するスクリプトを作成しようとしています。 例: 元の文字列:xxxxxx[id:1]xxxx[id:2]xxxx  ↓ 置換後の文字列: xxxxxx (<A>タグによるリンク。idが1番のタイトルをDBから参照) xxxx (<A>タグによるリンク。idが2番のタイトルをDBから参照) xxxx 要求している処理順序:  1:文字列中から[id:xxx]を検出して<A>タグに変換  2:id:xxx の xxx部分(数字)を抽出  3:2で得た数字でSQLを実行  4:DBから得た文字列で<A>タグを完成    <A href="test.php?id=(2で得た数字)">(4で得た文字列)</A>  5:以上を[id:xxx]の個数分だけ繰り返し --- スクリプト: // 文字列 $str = "xxxxxx<br>[id:1]<br>xxxx<br>[id:2]<br>xxxx"; // 置換 $result = ereg_replace("\[id:([0-9]+)\]","<a href=\"test.php?id=\\1\">xxx</a>"; ここで、id: の次に続く数字を抽出して その数字を元にDBからデータを引っ張ってこようと思ってます。 // 抽出 $pregresult = preg_match("/[0-9]+/",$result,$match); $id = $match[0]; ここで $id に番号が入り、その番号でSQL文を作成したいのですが 文字列中に[id:xxx]がひとつだけなら正常に動作するのですが 二つ以上存在する場合、$id には最初に検出された数字(上記例では 1 ) しか入ってこないので、二つ目以降のidが認識できず困ってます。 複数の検出・置換対象を順次処理していく方法があれば ご教示いただければ幸いです。 もしくは、他にもっとスマートな方法があるのであれば ご提示いただければ幸いです。 以上、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • EXCEL関数 文字列の一部の数字文字を数値化して計算につかいたい

    EXCEL関数について質問です。 あるセルの文字列に記載されている一部の数字文字を 数値化して計算につかいたいと思っています。 <例>  あるセルの文字列(A1)⇒あいうえお12345番目の方  出力したい数字文字⇒12345 知る限りの関数を使って以下の関数式を作ってみました。 (1) MID関数を使う  最初の文字「あいうえお」は10バイトなので開始は「11」としました。 (2)後に登録されている「番目の方」を除きたいので  SEARCHB関数を使って、「番目」の開始バイトを見つけ  そこから最初の文字バイト「11」を引き、抽出するバイトを求める。 (3)抽出した文字列を数値に変換するVALUE関数を使う。 次の関数式を作ってみました。   =VALUE(MIDB(A1,11,SEARCHB("番目",A1,1)-11)) でも結果は「」となります。 何がいけないのかわかりません。エラーの原因がわかれば教えて下さい。 ほかによい方法があれば教えてください。 よろしくお願いします。