• 締切済み

2表を比較し、相違している行番号と差額を表示したい

お世話になります。 下記の様な「A.xls」と「B.xls」2表があり照合したいと思います。 MATCH関数を使用したのですが、比較対象データの頭からの行数が表示されてしまいます。 現状 A表C3セルに =MATCH($A$3:$A$20,[B.xls]Sheet1!$A$3:$A$15,0) 入力しただけです。 これをEXCELのB表左端の行番号を表示し、また比較対象となったものの差額を表示したいと 思います。 「#N/A」の場合は、何も表示しないようにするか「対象データがありません」等のメッセ時を表示 したい。 賢者の皆様、お知恵をお貸し下さい。 よろしくお願いいたします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>相違している行番号と差額を表示したい まず,ご相談でヤリタイことをキチンと実現するなら, C3には =IFERROR(MATCH(A3,'[B.xls]Sheet1'!A:A,0),"") D3には =IFERROR(B3-INDEX('[B.xls]Sheet1'!B:B,C3),"") として下向けにコピーして埋めておきます。 その上で,ごく一般的なエクセルの使い方では,わざわざ行番号を計算するような使い方をすることは少なくて, C列を用意せずD列でいきなり =IFERROR(VLOOKUP(A3,'[B.xls]Sheet1'!A:B,2,FALSE),"") のようにコタエを出してしまう事が多いとは思います。

happy_rio123
質問者

お礼

keithin 様 早速の回答ありがとうございます。 最初のC3およびD3に式を入力して行ったところ。見事に求める結果が得られました。 ありがとうございます。 ただし、 >その上で,ごく一般的なエクセルの使い方では,わざわざ行番号を計算するような使い方をすることは少>なくて,C列を用意せずD列でいきなり=IFERROR(VLOOKUP(A3,'[B.xls]Sheet1'!A:B,2,FALSE),"") >のようにコタエを出してしまう事が多いとは思います。 では、D列に入力すると、結果のB.xlsシートの数値のみが表示され、求めたい差額および,B.xlsシートの行が表示されませんでした。 私の理解度が低く,申し訳ございません。 もう少し詳しくお教えいただけると幸いです。 よろしくお願いいたします。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

C3セルに =IF(A3="","",IF(COUNTIF([B.xls]Sheet1!$A:$A,A3),VLOOKUP(A3,[B.xls]Sheet1!$A:$B,2,FALSE),"対象データがありません")) としてコピーでいいと思います。

happy_rio123
質問者

お礼

mar00様 早速の回答ありがとうございます。 C3列に入力し試して見ましたが、残念ながら結果は、「#VALUE!」となってしまいました。 どこか間違っているでしょうか? よろしくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

C列に差額を表示させるのでしたらC3セルには次の式を入力してC20セルまでオートフィルドラッグコピーします。 =IF(OR(A3="",COUNTIF([B.xls]Sheet1!$A$3:$A$15,A3)=0),"",B3-VLOOKUP(A3,[B.xls]Sheet1!$A$3:$B$15,2,FALSE))

happy_rio123
質問者

お礼

KURUMITO様 早速の回答ありがとうございます。 C3列に入力し試して見ましたが、残念ながら結果は、お教えいただいた、1,2とも 「#VALUE!」となってしまいました。 どこか間違っているでしょうか? よろしくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

C3セルには次の式を入力してC20セルまでオートフィルドラッグコピーします。 =IF(OR(A3="",COUNTIF([B.xls]Sheet1!$A$3:$A$15,A3)=0),"",VLOOKUP(A3,[B.xls]Sheet1!$A$3:$B$15,2,FALSE))

関連するQ&A

  • 2つの表データの比較

    こんにちは。 Excelの2つの表(AとB)を比較し、Aにないデータ、Bにないデータを抽出したいです。 例: A表 品番 アイテム カラー サイズ B表 品番 アイテム カラー サイズ A表の品番にあって、B表の品番にない物 B表の品番にあって、A表の品番にない物 それぞれを抽出したいです。 Accessで行うといいと聞いたのですが、Accessがよくわからないので、お力を貸していただきたく質問しました。 宜しくお願いします。

  • Excell 2007で同じAとBの表を比較し、同じ行で同じ名前があげ

    Excell 2007で同じAとBの表を比較し、同じ行で同じ名前があげれTRUE、違えばFALSEを返したいのです。 この時大文字と小文字を区別しない方法をお教え下さい。 例 A1=ヒロ B1=ヒロ  (小文字で表示しています) A2=HIRO B2=HIRO これに対して A1=B1 A2=B2 などの式を入れるとFALSEになってしまいます。 これをTRUEで返すにはどうしたら良いでしょうか? ちなみに元のデータはそのままでお願いします。

  • 印刷行の長さ比較をして印刷をしたいのです

    Sheet1・Sheet2・Sheet3があります。 Sheet1は印刷用シートです。 Sheet1のA1にはSheet2のA1、Sheet1のB1にはSheet3のA1が 式としてリンクされており、それぞれの列における 以下の行も同様に式をコピーしてリンクさせています。 Sheet2とSheet3のデータ行数を比較して、多い方の 行数をSheet1の印刷範囲として行指定したいのですが、 どうしたらよろしいのでしょうか? なおSheet1における印刷列はA~Bで固定されています。 ご教授ください。

  • 表のある番号のものだけ抽出する

    ------ 01|a|あ ------ 01|b|う ------ 01|c|お ------ 02|d|き ------ 02|e|け ------ 上記のような表があったとします。 別のシートの、とある一箇所に例えば「02」と入力すると、 --- d|き --- e|け --- と、出るような表を作りたいと考えています。 それぞれ「d」「e」「き」「け」と入力されている部分には どのような式を入力すればいいでしょうか。 もちろん「01」と入力したら、以下のように出るようにしたいです。 --- a|あ --- b|う --- c|お --- 元となるデータの行は1000行くらいで、 抽出したい行数は最小で1行、最大で20行くらいです。 よろしくお願いいたします。

  • エクセルでデータを1行づつ別の表に3行毎に表示

    下のようにもとデータがあり1行ごとのデータを別の表に3行おきに表示したい。 コピーすると3行おきのデータになってしまう。 元     希望     実際 A  →   A   →   A   B C D  →   B   →   D    E F G  →   C   →   G    いちいちコピーしないとだめでしょうか。

  • 表1と2を比較し、重複しない物のみ抜き出す方法

    ここにメルアドを記録したメルアド表1、メルアド表2があります。 なお、それぞれ、シートもファイルも別々なのですが、考え方を簡略化するために、 とりあえず、メルアド表1を記録したシート上にメルアド表2をコピペする、 ということにします。 (解りやすく単純にするために、シート1のA1列にメルアド表1が縦一列にズラっと並んでいる、 シート1のB1列にメルアド表2が縦一列にズラっと並んでいる、ということにします) メルアド表1は「潜在顧客のデータベース」であり、メルアド表2は「既に顧客となった相手のメルアド表」です。 さて、この状態で、メルアド表1とメルアド表2を照合して、メルアド表2には記載のないメルアドのみを 抜き出した、メルアド表3を新たに生成したいと思います。 どのようにやればいいでしょうか? なお、メルアド表2「既に顧客となった相手のメルアド表」に記載があるメルアドが、必ずしもメルアド表1「潜在顧客のデータベース」に記載があるとは限りません。 なお出来上がった表3をそのままメールソフトにコピペしたいと思います。 ですので、 「C列以降に抜出対象となったメルアド表1のメルアドを同じ行に記載する」 という形式で計算結果を表してください。 (その場合、当然抜出対象にならなかったもの(つまり、同じメルアドがメルアド表2に存在するもの)は空白行になりますが、それは構いません) よって、 「抜出対象となったA1列のセルを赤塗りすることによって計算結果を表す」 「A列とB列の間に1列挿入し、 抜出対象となったA1列のセルの隣のB列に○×印を表示することによって、計算結果を表す」 という方法は避けてください。 作業列を新たに挿入することは構いません。(その際はそのむね、説明をしてください) よろしくお願いします。

  • エクセル 長い表を2つに分けて表示する方法

    B2~D21に空白行の入ったA表があり当データをB表(F2~H8)とC表(J2~L13)に分けてデータを表示したい。 B表のデータ5行以降はC表に折り返し表示させる。 関数を使用して2つの表に分けて表示するにはどのようにしたらよいでしょうか。 よろしくお願いします。

  • Excel 必要な部分だけを抽出

    素人です。 あるデータ「a.xls」の中から必要な部分だけを b.xlsの表に表示させたいです。 a.xlsは必要ないので、捨てていきたいのですが a.xlsがなくても、b.xlsへデータを表示させることは 出来るのでしょうか? 出来るのであれば使うのは関数ですか?

  • Excelで入力した数値を行番号として使用したい

    「一覧」と「抽出」というexcelブックがあり、今は「抽出」ブックで作業しています。 セルA1には以下のような数式が入力されています。 ='[一覧.xls]'!A1 A2には 『='[一覧.xls]'!B1』、 A3には『='[一覧.xls]'!C1』、 A4には『='[一覧.xls]'!D1』・・・・・。 と、続きます。 ここで、各セルの内容をその都度一気に変えたいと思います。 今はすべて「一覧」ブックの1行目を参照していますが、 全て5行目にしたり、20行目にしたいのです。 参照したい行数をセルB1に入力し、 ='[一覧.xls]'!A【B1に入っている数値】 というような式をイメージしています。 INDIRECT関数を使用すればよいのかと思い試行錯誤しましたが うまくいきませんでした。 いい方法があったら教えてください。 ※質問が分かりにくくて申し訳ありません。  自分でも何が言いたいのか分かりにくいと感じています。

  • 差額を常にプラスの数値で表示させるには

    エクセルで横四つのマスの数値が例えば下記のようなものだとします。 A1 B1 C1 E1 \20150 \20220 \20090 \20180 これは、それぞれ1日の株価の始値と高値と安値と終値を表示しているのですが、その日の高値と安値が始値といくら差額があるかということを求めたいのですが。 その場合、高値のB1とA1の始値との差額なら、単に"B1-A1"で\70と出ますが、C1の安値とA1の始値差額を同じように"C1-A1"とすれば-\60と出てしまいます。こんな場合、マイナス表示ではなくプラス表示で出すにはどうすればいいでしょうか。差額を正の数値で出したいのです。 もちろん、"A1-C1"にすれば正の数値で出るでしょうが、それはなしで、あくまでも"C1-A1"で出したいのですが。 よろしくお願いします。

専門家に質問してみよう