• ベストアンサー

Excelでの検索についての質問です

Excelの検索方法についての質問です 例として 1列目に手順の数 1 2 3 1 2 3 4 1 2 3 4・・・ 2列目に作業方法 a b c a b c d a b e d・・・ と数字と作業方法が並んでいます 例えば、 1 2 3 4 a b e d という8個のセルと一致する箇所を検索したいのですが なにかいい検索方法はありますでしょうか お手数ですが、教えていただけたらうれしいです

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#2です。 配列数式ならA7のところに、 {SUM(IF(A1:D2=$A$4:$D$5,0,1))} だそうです。 ※両側の{}は、Ctrl+Shift+Enterで式の入力を確定すると自動でつきます これを普通にEnterで確定すると#valueなどのエラーになります。念のため。 この値が0になるところが、該当する先頭列になります。 =MATCH(0,A7:K7,0) で見つけられます。目で見て探すなら、条件付書式を設定しておくといった方法も考えられます。

参考URL:
http://office.microsoft.com/ja-jp/excel/HA102284581041.aspx
o-roron
質問者

お礼

夜中から気にかけていただいたようで恐縮です 教えていただいたMATCH関数と条件付書式でやり繰りして 作業を進めています 作業効率が劇的に上がりました ありがとうございます

その他の回答 (3)

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

エクセルの関数は、セルの組み合わせ・集団(この場合4セル)について、一遍に比較するものが無いようなので、結構難しいと思う。 関数でやると、条件を満たした、最初の出現位置しか出せないような予想をする。普通は関数は答えは1つしか返らないから。 ーー それで、とりあえず、VBAでやってみます。 例データ A列   B列 1 a 2 b 3 c 1 a 2 b 3 c 4 d 1 a 2 b 3 e 4 d ーーー コード 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row x = "1234" y = "abed" '-- For i = 1 To d - 3 c = Range("A" & i) & Range("A" & (i + 1)) & Range("A" & (i + 2)) & Range("A" & (i + 3)) If c = x Then c = Range("B" & i) & Range("B" & (i + 1)) & Range("B" & (i + 2)) & Range("B" & (i + 3)) If c = y Then MsgBox i End If End If Next i End Sub 結果 8  (8行目以下11行目までが、一致部分。) 該当が2箇所あれば、OKの応答後に、続けて表示される。 ーーー 1234とabedの内容、すなわち 上記x、yの内容をその都度変える場合は x = InputBox("X=") y = InputBox("Y=") で置き換え、利用者に入力させるると良い。 ーー 文字列の結合にVBAでは、Concatenate関数が使えないので、セル数がA1:A4の部分が増えると式が長くなるので、別コードにする手がある(記述略)。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

入浴中に思いついて、夜更かししてしまいました。 ......A....B....C....D....E....F....G....H....I....J....K ..1.....1....2....3.....1....2....3....4.....1....2....3....4 ..2....a....b....c....a....b....c....d....a....b....e....d ..4.....1....2....3....4.......................................... ..5....a....b....c....d.......................................... ..7....0....0....0.....1....0....0....0....0....0....0....0 A7の式:=(A1=$A$4)*(A2=$A$5)*(B1=$B$4)*(B2=$B$5)*(C1=$C$4)*(C2=$C$5)*(D1=$D$4)*(D2=$D$5) 右にズズッとコピー。ヒットするブロックの先頭が1になる。 =MATCH(1,A7:K7,0) などとすれば、先頭列番号が求められる。 配列数式の達人ならもっとすっきりとまとめられる?かもしれませんが、ご参考まで。

  • kata_san
  • ベストアンサー率33% (423/1261)
回答No.1

えーっと、 ↓こちらなどは参考になると思いますけど? エクセル技道場 http://www2.odn.ne.jp/excel/ まだまだ、あるとはおもいますが・・・。 とりあえず。

関連するQ&A

  • 検索の仕方を教えて下さい

    Excelの検索の仕方を教えて下さい。 下記のような表があります。  A B C D E D … 1 あ い う え お か 2 1 A氏 5 3,198 35 計算式       6 3,215 27       7 3,148 41       8   0 0       9   0 0 7 2 B氏 5 18,000 25       6 17,250 41       7 18,140 30       8    0 0       9    0 0 1行目には、文字列が入力されています。 A2~A6・B2~B6及びA7~A11・B7~B11はセルが結合してあり、それぞれ1つのセルになっています。 D2に計算式を入れる場合ですが… 別のシートに表があり、=IF(Sheet2!A1=0,0,ここからの計算式です。) Sheet2のA1には数字の1が入力されています。 まず、A2の1という数字を検索し、次にC列の5を検索し、5の横列E列の数字(3,198)を求める。 C列とE列の交わる値を結果と出したいのです。 =IF(Sheet2!A1=0,0,VLOOKUP(Sheet2!A1,A2:E11,INDEX(C2:E11,MATCH(5,C2:C11,0),MATCH("え",C2:E2,0)))) としたのですが、計算結果は#REF!です。 どのように計算式を立てれば良いのでしょうか?

  • エクセルの文字列の検索に関して

    また、エクセルに関しての質問です。 例えば  A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、  A B C D E 1あ 1   お 5 2い 2   う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

  • エクセルで行から数値を検索し、検索した数値のある列

    エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。   A B C D E F 1  3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3  2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です

  • Excel マクロでの検索

    大量のデータ(約40000件)をDB(約3000件)から検索し該当する値を返す作業をしています。 マクロを今日初めて組んだのですが、うまく行きません。 だれか教えてください。 例:※同Sheet内での作業です。 DB(列1・2)     データ(列3・4)※ランダムに並んでます。   1  2      3     4 1 a  A      c   Cを返したい(cを1列より検索し2列の値を返す) 2 b  B      e   Eを返したい(eを1列より検索し2列の値を返す) 3 c  C      d   Dを返したい(dを1列より検索し2列の値を返す) 4 d  D      d   Dを返したい(dを1列より検索し2列の値を返す) 5 e  E      h   Hを返したい(hを1列より検索し2列の値を返す) 6 f  F      @   @が1列に無い場合は空欄でよい ・  ・ ・      ・     ・ ・  ・ ・      ・     ・ 今日、私は4列のワードを変数とし、1列より検索する方法をとりました。(Loopで組みました) Find.で組むと、不要なワードまで検索してしまう状況です。 例:aaaaで検索→aaaaaaがhitしてしまう。 同一ワードで検索する方法も試したのですが、エラーが出てしまいます。 自分なりにFindNextなども試してみましたが、無限Loopになってしまいます。 Loopを使わなくてもいいので、方法を教えてください。 本来自力で調べるべきですが、急ぎの仕事な為、ご協力ねがいます。

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  B列が昇順で並んでいる C列とD列は重複しない という条件で <=vlookup(b1,c:d,2,false)> という回答を頂いたのですが、 B列が昇順で無い(ランダムに数字が入っています) D列には同じ会社名が何度も出てきます。 どうすればいいのかわかる方お願いします。

  • エクセルの質問です

    A列は空白 B列に商品をあらわ5桁のコードが入っています。 C列にも同じく商品を表す5桁のコードが入っているのですが、 B列のセルと隣り合ったセルには同じ数字が入っていません。 D列には取引先の会社名が入っています。     B1に入ってる5桁の数字と同じ数字が入っている C列のセルを探し、 そのセルの隣のD列の会社名をA1のセルに表示させたいのですが、 どう関数を組んだらいいのでしょうか? A   B    C   D     12345 12354 A社    12334 12345 B社    12443 12544 C社 上の表の場合B1とC2数字が同じなのでA1にB社と表示させたいのです。  

  • エクセル”検索条件はセル内のあいまい値”

    どうにも検討がつかず調べても対応したものができないのでお力添え願います。 D列に”A”と入力し、C列へ「D列のセル値が含まれた場合C値からB値をマイナスし それ以外は上のセル値を反映させる」としたいのですがどうするのがいいでしょうか。 直接値を指定してあいまい検索は『=IF(COUNTIF($A2,"*A*"),C1-$B2,C1)』でできたのですが この "*A*" 部分を”B”というときもあるのでD列のセル値であいまい検索としたいです。 A列の値は以下のように”A”の後ろに複数の数字がつくことがあります。 A列 A2 A3 B4 B3 B4 A2 A4

  • エクセル 複数条件で検索する数式を教えてください。

    社員の作業時間入力シートが2つあり、それぞれに入力しているため、入力ミスによる誤差が生じます。それをチェックしています。 検索条件が複数になる場合の計算式を教えてください。 [sheet1]   A   B   C   D  E 1 社員CD 日付  作業時間1 作業時間2  誤差 2 1000 2008/1/1   3.5  ここに数式   =C2-D2 3 1000 2008/1/2  2.5    数式    =C3-D3 4 1001 2008/1/1   5.0    数式    =C4-D4 [sheet2]   A   B   C    1 社員CD 日付  作業時間2 2 1000 2008/1/1  3.0 3 1000 2008/1/3   1.5 4 1001 2008/1/1  5.5 sheet1のD列にsheet2のC列を表示させたいのですが、 条件はA列とB列が一致するものになります。 A・B列が文字列ではないため、1列挿入して=A2&B2列を作成することができませんでした。 D列に数式をいれる事で一発で表示させる方法を教えてください。

  • エクセル関数の質問です。

    エクセルでセルA1=4の場合セルB2=セルD1、セルA1=5の場合セルB2=セルE1、セルA1=6の場合セルB2=セルF1というように、セルA1に数字を入力するとセルB2に反映するようなセルB2に入力する関数を教えて下さい。  セルA1には月(4月から3月)の数字(4~12、1~3)が入り、4月のときにはD列(D1)、5月のときにはE列(E1)、6月~3月にはF列(F1)~O列(O1)の数字が入ります。よろしくお願い致します。

  • OpenOfficeについて質問です。

    A列には、右隣のB列セルと関係する番号入っています。 ※例:A1「0055」B1「OpenOffice」 Cセルの文字を、選択範囲全てのBセルから検索して、 Cと一致したBセルの、左隣のAセル数値を、Dに表示したいのです。 ※例 C1をB1-B1000に対して検索⇒B50と一致⇒A50をD1に表示 C2をB1-B1000に対して検索⇒B150と一致⇒A150をD2に表示 … C1000をB1-B1000に対して検索⇒B20と一致⇒A20をD1000に表示 といった感じです。 ABCが1000行を超えるので何とか自動化して楽にしたいです。 宜しくお願いします。

専門家に質問してみよう