• ベストアンサー

C列から複数ある"東"の文字を検索し、セル番地を上から順番に求めたい。

  ┃  A  |  B  |  C  |  D  |  E  | ━━━━━━━━━━━━━━━━━━━━━━━━ 1 ┃     |     |  北  |     |  ※1  | ──────────────────────── 2 ┃     |     |  東  |     |  ※2  | ──────────────────────── 3 ┃     |     |  西  |     |  ※3  | ──────────────────────── 4 ┃     |     |  東  |     |  ※4  | ──────────────────────── 5 ┃     |     | おおお |     |     | ──────────────────────── 6 ┃     |     |  南  |     |     | ──────────────────────── 7 ┃     |     | あいう |     |     | ──────────────────────── 8 ┃     |     |  東  |     |     | ──────────────────────── 10┃     |     |  み  |     |     | ──────────────────────── 11┃     |     |  北  |     |     | ──────────────────────── 12┃     |     |  あ  |     |     | 上記のようにC1:C100の範囲に"東"の文字が入力されており、  ※1のE1セルには上から1番目の"東"の文字が入力されているセル番地を表示。  ※2のE2セルには上から2番目の"東"の文字が入力されているセル番地を表示。  ※3のE3セルには上から3番目の"東"の文字が入力されているセル番地を表示。  ※4のE4セルには上から4番目の"東"の文字が入力されているセル番地を表示。 といった具合にセル番地を求めたいと考えています。 ただし、マクロ、配列数式は使わない方法を探しています。 また、別のセルで一度計算した結果をE1セルの計算に使用するなど段階を追った方法も使用しないで、E1セルの一つの式で求めたいと考えています。 よろしくお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

E1=IF(ROW(A1)>COUNTIF($C$1:$C$50,"東"),"","C"&(SMALL(INDEX(($C$1:$C$50<>"東")*100+ROW($1:$50),),ROW(A1)))) または、 E1=IF(ROW(A1)>COUNTIF($C$1:$C$50,"東"),"",ADDRESS(SMALL(INDEX(($C$1:$C$50<>"東")*100+ROW($1:$50),),ROW(A1)),3,4)) ★下にコピー

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

最初の位置 =match("東",データ範囲,0) これは説明不要ですね。 2番目以降は、検索範囲を変えることで発見します。すなわち、 =match("東",offset(データ範囲,E1,0,rows(データ範囲)-E1),0)+E1 のようにoffset関数で前回発見した位置だけ縮んだデータ範囲を発 生させ、最後にその分だけ数値を足してやって本来のデータ範囲に おける位置を算出するわけ。これはフィルハンドルでドラッグする だけで3番目4番目と順次直前の値を参照しながら列記できます。 1~3番目なしでいきなり4番目を見つける方法ってのは、上記の式を ひたすら入れ子にすれば出来ますが面倒くさいので書きません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ある列に検索値が複数あり,そのうちの上から○番目のセルの番地を求める(等の)方法を質問です。

      ┃  A  |  B  |  C  |  D  |  E  | ━━━━━━━━━━━━━━━━━━━━━━━━ 1 ┃  A  |     |     |     ┃     | ──────────────────────── 2 ┃     |     |  東  |     ┃     | ──────────────────────── 3 ┃     |     |     |     ┃     | ━━━━━━━━━━━━━━━━━━━━━━━━ 4 ┃  B  |     |     |     ┃     | ──────────────────────── 5 ┃     |     |  西  |     ┃     | ──────────────────────── 6 ┃     |     |     |     ┃     | ━━━━━━━━━━━━━━━━━━━━━━━━ 7 ┃  C  |     |     |     ┃     | ──────────────────────── 8 ┃     |     |  東  |     ┃     | ──────────────────────── 10┃     |     |     |     ┃     | ━━━━━━━━━━━━━━━━━━━━━━━━ 11┃     |     |     |     |     | ──────────────────────── 12┃     |     |     |     |     | ──────────────━━━━━───── 13┃     |     |     ┃  ※1 ┃     | ──────────────━━━━━───── 14┃     |     |     ┃  ※2 ┃     | ──────────────━━━━━───── 15┃     |     |     |     |     | 上記のようなA,B,Cの表があったとして, 【※1】【※2】に検索して検索値として表示させたい概要は以下の通りです。 【※1】D13セルに表示させたいもの→A1セルに記入している「A」     検索方法:C列から「東」という文字を検索し、上から数えて1番目にある「東」の文字からオフセット等によりA1セルに入力してある文字を表示する。 【※2】D14セルに表示させたいもの→A7セルに記入している「C」     検索方法:C列から「東」という文字を検索し、上から数えて2番目にある「東」の文字からオフセット等によりA7セルに入力してある文字を表示する。 上記の表はA,B,Cの3つの表しかありませんが,実際は20個程度の表があります。 また,【※1】【※2】に表示された結果を元に,各表「A表,B表,C表」から必要な情報のみを別表で表示したいと考えています。 以上を踏まえて色々計算式を考えたのですが,【※1】【※2】の計算式が思い浮かびません。 【※1】【※2】に入れる計算式を教えてください。 マクロを使わないで作成しているので関数による回答をお願いします。

  • セル内の文字列から特定の文字の有無を検索したい。

    セル内の文字列から特定の文字の有無を検索したい。 (A1)セルに、文章が書かれており、その中に、(B1)セルに入力した文字列が含まれているか調べて、有無を(C1)セルに1,0で表示する方法を教えて下さい。よろしくお願いいたします。

  • 一つ上のセルを検索したい

    エクセルの関数で教えてください。 エクセルで、一つ上のセルが0の場合はもう一つ上のセルを検索したいのですが、どのようにしたらいいのかわからないので、どなたか教えていただけますか。 具体的には、下のような表を作成しています。   A  B C 1 15日   10 2 16日  0 10 3 17日  2 12 4 18日  5 19日 6 20日 □ 13 計算式としては、C2-C1の値がB2に入るのですが、休日の日があると、前日は空白なので上の例だと20日の場合には□の部分に-13と表示されてしまいます。 実際は、17日の分と比較したいので、13-12で1と入れたいのです。今までは、手書きでなおしていたのですが、何か良い方法があればと思いまして。 たとえば、一つ上のセルを検索し、0ならば、もう一つ上のセルを検索のような方法がよいのかと思ったのですが、他に方法があるならば、全然構いません。 わかりづらい説明で大変申し訳ありませんが、どなたかご教授願います。

  • COUNTIF関数で検索条件にセル番地を指定する方法を教えてください

    COUNTIF関数を使用しています。 検索条件にセル番地を指定する方法を教えて頂けますでしょうか。 例えば、下記の通りデータが入っていた場合に セルA1 = 90 セルB1 = 100 =COUNTIF(A1,"<=100") という式をセルC1に入力し、 セルA1の数値が100より小さい場合はデータ個数は”1”と返し、 セルA1の数値が100より大きい場合はデータ個数は”0”と返すようにしました。 しかし、 =COUNTIF(A1,"<=B1") という式のように 検索条件にセル番地を指定した場合は正しくデータの個数が1個だと表示されません。 どのようにしたらセル番地を指定しながら正しい結果を返せるのでしょうか。 恐れ入りますが、どなたかご教示頂けますでしょうか。 どうぞ宜しくお願いいたします。

  • エクセルで他のセルの値と決められた文字列

    エクセルで他のセルの値と指定した文字列を入力したい。例えば、あるセルに[1234]という数値を入力した時その右側のセルには[東京1234番地]と表示させたいのですがセル書式のユーザー定義で何とかなりますか?

  • Excel 複数セルから文字列の検索、表示

    エクセル初心者です。 過去のものを探しては見ましたが、うまくキーワードを見つけられなかったので 質問させてください。 リストで次のようなものがあるとします。  A   B  C  D  E  F  G 1○ 12 45 - 98 - 2■ - - 12 - 06 3◇ 35 12 01 99 - 4× - - - - 12 5☆ 08 61 20 12 - このリストで各行ごとにB~F列のセルにある「1」で始まる文字列を検索して 該当する文字列をG列に表示する方法はありますでしょうか? 関数とかVBAについては???なので、わかり易くお教え頂けると助かります。 よろしくお願いいたします。

  • 1つのセルの数字を複数のセルに1文字づつ表示したい

    こんばんは。 いつも勉強させていただいています。 下記について、ご教示いただければ幸いです。 K1セルには、最小で1桁から最大で9桁までの数値が入力されます。 それを A1からI1までに1つづつ表示させたいのです。 例1) K1 に 10105 と入力した場合 A1からD1まではブランク E1に1、F1に0、G1に1、H1に0、I1に5 例2) K1 に 101050235 と入力した場合 A1に1、B1に0、C1に1、D1に0、E1に5、F1に0、G1に2、H1に3、I1に5 なお、同じシートの他のセルには0を入力する場合があるため、「ゼロ値のセルにゼロを表示する」のチェックを外すことはできません。 私なりに考えたのは、K1セルの数値をL1に =TEXT(K1,"000000000")として文字にし、M1から右のセルに =MID($K$1,1,1) というように各桁を抜き出す方法だったのですが、10000 のように丸い数字をK1に入力すると 1 は表示できても 0 がブランクになってしまいます。 いい方法がありましたら、ぜひご教示下さい。 よろしくお願いいたします。

  • Excelの1セル内で複数の文字を左に90度回転・横書き表示する方法は?

    例えば「東京都」という文字を東・京・都それぞれの文字を左に90度回転し、横書き状態で表示する方法はないか苦心しています。 セルの書式設定で90度回転を選択すると+90度のときは下から上に、-90度のときは上から下に表示されます。そうでなくて1セルに東・京・都の各文字が左に90度回転し横並びにした状態(いいかえると縦書きの「東京都」の文字をそのまま左に横倒しにした状態)に表示させたいのですが方法が分かりりません。 仕方ないので1セル(例えばA2)に「東京都」と入力し、別に3セル(例えばA3,B3,C3)を設けて書式設定で各セルを+90度回転に設定、あらかじめ1行目のA1から右列のセルに1,2,3,4,5,……と入力して置いて、上記の3セルに次の式を入力して表示させています。 A3……=MID($A2,A$1,1)  これをプルダウンコピーして B3……=MID($A2,B$1,1) C3……=MID($A2,C$1,1) と入力、前記の表示となるようにしています。 このように複数セルを用いる面倒な方法でなく、1セルで表示できるもっと簡便な方法はないか、マクロを含めてご教示ください。 なお、Excelのバージョンは2000Proです。

  • エクセル 複数の検索文字列を削除したいのですが。

     あるセルに住所が入力されているのですが、郡と町と大字と番地が一つのセルに入っています。  郡と町は、手作業で別のセルに入力できたので、残っている作業は、元のセルから郡と町を消去することなのですが、簡単に関数で別のセルに書き出せないでしょうか。  ただし、あるセルには郡と町、あるセルには町からの住所になっています。 例 セルQ2   中頭郡嘉手納町字嘉手納588  というセルと セルQ3   嘉手納町字嘉手納588     というセルがあります。 SUBSTITUTE関数かと思いましたが、一つの検索文字列なら空白にできましたが、2つの検索文字列は一括処理ってできるんでしょうか。 私が考えたのは、最初に任意のセルに =SUBSTITUTE(Q2,"中頭郡","")として中頭郡を消し、さらに別の任意のセルに =SUBSTITUTE(Q2,"嘉手納町","")として完全に郡と町を消す方法です。ですが、ちょっと要領が悪いですよね。 SUBSTITUTE関数の効率の良い計算式、もしくは、もっと別の方法で一発OKの方法はあるでしょうか。 もしかして、編集の「検索と置換」を使えばできるんでしょうか? この機能は、使ったことが無いので、使い方が分かりません。元データは残さなくていいので、別のセルに書き出さなくてもいいのです。 どなたか、ご教授願います。

  • セル値の文字列で式を作りたいのですが

    お教え下さい、エクセル2000です    A 1 5000  <--数値 2 A1   <--文字 3 [5000] <--ここに(A2セルにある"A1"(セル番地の文字列)を使ってA1の数値を表示させたいのですが) あちこち検索してみましたが答えがみつからずよろしくお願いします。

専門家に質問してみよう