• ベストアンサー

一致した行を返したい

excel2007を使っています おしえてください    A   B   C 1   1   3 2   2   8 3   2   3 4   1   3 5   7   8 6   2   8 7   1   3 このような表がありA1の1と同じ1をA列2行目から検索 B1の3と同じ3をB列2行目から検索 どちらも値が一致した行(検索開始行から数えて何番目)をC1に返したい (この場合3と6がありますが早く一致した3を返したい) C2は4となります Cに入れる数式を是非教えてください

  • t_o_m
  • お礼率100% (4/4)

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 =SMALL(IF((A2:A100=A1)*(B2:B100=B1),ROW(A2:A100),999),1) 配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。

t_o_m
質問者

お礼

ありがとうございます 思いどおりに動作しました

その他の回答 (3)

  • harapeco7
  • ベストアンサー率54% (33/61)
回答No.4

計算に1列使用してもいいならば こんな処理はいかがでしょうか? D1へ(D列が計算列となります。) =A1*0.9854541564+B1*0.9542541935 を入力しD7までオートフィル。 C1へ =MATCH(D1,D2:$D7,0) を入力しC7までオートフィル。 C列の結果が #N/A ならば該当無しです。(if文で簡単に処理できます。)

t_o_m
質問者

お礼

ありがとうございます No2のお礼内容に訂正があります =SMALL(IF((A2:A100=A1)*(B2:B100=B1),ROW(A2:A100),999),1)-ROW(A1) で完全動作しました この場を借りて報告することをお許しください

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

>A1の1と同じ1をA列2行目から検索、B1の3と同じ3をB列2行目から検索 >どちらも値が一致した行(検索開始行から数えて何番目)をC1に返したい A1=A4、B1=B3なので3と2だからC1=2になりませんか? A2=A3、B2=B5なので1と3だからC2=1になりませんか? 上記でいいなら =MIN(IF(COUNTIF(A2:A$65535,A1),MATCH(A1,A2:A$65535,0),99999),IF(COUNTIF(B2:B$65535,B1),MATCH(B1,B2:B$65535,0),99999)) 99999が表示される場合は一致した行がない。

t_o_m
質問者

お礼

説明不足でした Aの値とBの値の組み合わせが完全一致している行を 下の行から探し、それが何番目の行にあたるのか? ということです

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

質問の例なら  =LARGE(INDEX((A2:A7=A1)*(B2:B7=B1)*ROW(A2:A7),),SUMPRODUCT((A2:A7=A1)*(B2:B7=B1)*1))-1 で「3」が得られます。式の最後で1を引いているのは検索開始行が2行目からだからです。

t_o_m
質問者

お礼

ありがとうございます C1に式をいれたら無事3が返ってきました コピーしてC2にいれたところ4ではなく5が返ってきました

関連するQ&A

  • エクセル 値が一致しないものを見つけたい

    お世話になります。 エクセルでA列B列にそれぞれ数値が入っている表があり、A列にはあってB列にはない数値を分かるようにしたいと思っています。      A列  B列   C列 1行目  1   1 2行目  1   5 3行目  4   0   4 4行目  5   1    5行目  1   0   1 ・A1、A2、A5の値が1であるように、A・B列とも重複する数値が入ることがあります。 ・A列とB列の値は1対1で対応し、例えばA1がB1と対応するならA2はB4と対応します。 この表ではA3、A5に対応する値がB列にないので、C列にその値を表示させています。 ・一致しない数字を分かるようにする方法にこだわりはなく、例のようにC列に値や×を表示させる、A列に色をつける、一致するものがあった数値は削除する等、なんでも構いません。 お分かりになる方、どうぞよろしくお願いいたします。

  • 3千行以上あるExcel表の一つの列を配列数式に

    3千全行以上あるExcel表の一つの列を配列数式にしたいです。 {=SUM(IF(A:A="みかん",B:B,))}のようなやつ。 色々試しましたが、配列数式を使わないと出したい値を出せませんでした。 3千行あるのですが、めちゃくちゃ重くなります。 重くならずに済む方法はありますでしょうか。 やはり配列数式を使うとしょうがないのでしょうか。

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • EXCELで指定した範囲の値を検索し、範囲内に対応する行の見出しを調べるには

    EXCEL2003で、シート内に以下のように値が設定されている場合に、 B1からD4の範囲を検索して値が一致した行のA列の値を求めるには どのようにすればよろしいでしょうか。 たとえば、文字列「EE」で検索して「いいい」を求めたいのです。 A B C D 1 あああ AA CC FF 2 いいい BB EE 3 ううう DD 4 えええ GG HH VLOOKUP関数を使用すれば列内や行内での検索は出来ますが、 複数行列内の検索は出来ないようです。 よろしくお願いします。

  • Excelの関数で

    お願いします。 Index関数とMatch関数を使用して表の中の値を求めようとしましたが、 検索行が複数あるため、うまくいきません。 検索する列は1列(a,b,c)ですが、検索行(あ、い、う~)が複数になっています。 更に空白もあります。 こんな感じ↓です。 ---------------------   あ  い   う   え      お   か ---------------------    a  10  20  30 b  40  50  60 c  70  80  90 --------------------- こういった場合にはどんな関数を使って一致する値を求めたら良いのでしょうか? 大変困っております。よろしくお願いします。

  • EXCEL2003出納帳残高欄の、計算結果がある最終行の数値を取り出し

    EXCEL2003出納帳残高欄の、計算結果がある最終行の数値を取り出したいのですが     A     B     C     D 1  日付   入出金   残高 2  繰越          30 3 8/1   100   130 4 8/2  -130     0 5 8/2    40    40 6               - 7               - 8               - 9                現在残高 40        途中には空白行はなく順に入力します 入力する行数は未確定です 残高は"0" の場合もあります C列2行目は 数式「=B2」  C列3行目から8行目までは 数式「=IF(B3=0,0,C2+B3)」 現在残高を表示したいのですが、 ここD列9行目には数式 「=LOOKUP(10^5,C3:C8)」 としてますが、 C列の6~8行目までは計算式が入ってるので、 その値”0”となってしまうようです。 また、 数式「=INDIRECT(ADDRESS(COUNT(C2:C8)+1,3))」 という式も入れてみましたが、”0”となってしまいます。 計算結果のある最終行の値 "40" にするにはどうしたらよいでしょうか?

  • 複数列の一致する行を検索する数式はありますか?

    2007でブロック別の10のブックに分けたデータがあり、その中で特定の複数列が一致するデータを、現在は数列をフィルタ抽出し、それと一致するものが他の列にあるかどうか、対象列を変えて調べる、というムダかな?とも思えることをやっています。 実際の表とは別に仮定として質問させていただきたいのですが、A~C,D~F,G~Iの各3列ごとに異質ではあるが表示を同一としているデータがあるとして、調べた結果、ABCが5,10,15であるものが100,500,1000行目に、CDFが5,10,15であるものが1500,2000行目に、G H I が5,10,15であるものが3000行目にあることが判りました。 このケースで3列の組合せ一致があるかないかは調べてみないと判らないのと、フィルタをかける場合、最初に基準にする3列をどれにするかで異なるのと、全てを調べるには何年かかるのかな?という感じです。 全表の中で、同じ組合せがあるなら、それはどんな組合せで、どこにあるか、を調べる数式はあるのだろうか?という疑問をもっています。 VLOOKUPについて本を調べてみたのですが、検索する指定値が決まっているわけではないので違うかな?と思っています。 関数はSUMとCOUNTを少し活用できるようになったかな?のレベルです。 よろしくお願いします。

  • Excel2003、配列から、複数の条件一致する行のデータを取り出す方

    Excel2003、配列から、複数の条件一致する行のデータを取り出す方法 配列は最大で10行、10列程度ですが、このデータはリアルタイム(0.5秒間隔)で更新されますので、 分類等はできません。 A列のデータがZ1のセルのデータと一致し、かつ、B列は、特定の”文字列”と一致し、かつ、C列は数量で、0より大きい(負のデータは無いが、""はあり得る)という条件に合致した行があったら、その行のD列の値をZ2のセルに格納したい。 条件に合致する行は複数あり得るが、そのときは最初に条件が合致した行のデータが必要。 いくつかの関数を調べましたが、つまづいています。

  • excel関数を用いてある行の範囲内の数値のみを違う行に抽出し、同じ列に対応する値も引っ張ってくることは可能ですか?

        A   B   C   D 1   33   180 2   58   300 3   89   310 4   152   240 5   205   74 上のような表になっている時に、EXCEL関数を用いて、[A]行の「60以上、180以下の数値」のみをC列に引っ張ってきて、なおかつ[A]行のそれぞれの値に対応する[B]行の値をD行に引っ張ってくることは可能でしょうか? 理想的な結果として   A     B      C      D 1   33  180     58    300 2   58   300    89    310 3   89   310    152    240 4   152   240 5  205  74 というようになってほしいのです。 オートフィルターの範囲指定を用いると、C行に範囲内の値を引っ張ってくる事は出来たのですが、関数ではない為、他の表に応用が効かず、毎回フィルターをかけなくてはいけなかったです…そのため出来れば関数を使いたいのですが、何か方法は無いものでしょうか…

  • 2つの値が同じという条件で行を消したい。

    下のような表で、1列目、2列目の値がともにダブっている行のみを消したいです。 1   A 1   B 1   B 1   C 2   A 3   C 3   A 3   C でいうと2、3行めの 1   B と 6、8行めの 3   C がダブっているので それを行ごと消して 次のようにしたいのです。 1   A 1   B 1   C 2   A 3   C 3   A ちなみに各行には他の列にもデータがならんでいます (3   A   あ   カ・・・・・・のようになっています)。 また、ダブるのは2行に限らず3行4行にわたるものもあります。 これってけっこう難しいのでしょうか? ぜひアドバイスを。

専門家に質問してみよう