• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの質問。同じ数字なら違う列の数字を返す)

エクセルで異なる列の数字を取得する方法

このQ&Aのポイント
  • エクセルのA列に数字が入力されており、B列と同じような数字をC列に入力します。
  • C列の数字がB列に存在すれば、その行のA列の数字をD列に表示することができます。
  • 例えば、C列に「2011111」と入力すると、7行目のA列の数字「2」がD列に表示されます。

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

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

C列に入力した数字が何処の行にあるかはMATCH関数で判る。 そしてその行のA列をINDEX関数で取ればよい。 問題は見つからないときの処理で式が長くなるが。 例データ A-D列 x y z u 1 11 34 3 3 34 2 21 D2に =INDEX($A$1:$A$10,MATCH(C2,$B$1:$B$10,0)) B列に該当無いという手当ては、CountIFで0かどうかが良いでしょう。 =IF(COUNTIF($B$2:$B$10,C2)=0,"",INDEX($A$1:$A$10,MATCH(C2,$B$1:$B$10,0))) もしも空白入力したら、上記でカバーできる。 ーー Match関数のエラー判定ISERRORも使える。 またMATCH関数の代わりにVLOOKUPも考えられるが、取ってくるA列が、検索するB列より左列にあるため使えない。

iso39
質問者

お礼

ありがとうございました。 他の問題があって困惑気味でしたが、なんとか 理想の形になりました。 また宜しくお願いします。

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

その他の回答 (2)

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

A,B列が逆ならばVLOOKUP関数ですが、以外はINDEX関数かOFFSET関数での使用になります。 先にINDEX関数例が回答されていましたのでOFFSET関数例です。 =IF(COUNTIF(B:B,C1),OFFSET($A$1,MATCH(C1,B:B,0)-1,),"")

iso39
質問者

お礼

御回答ありがとうございました。 また宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

D1: =IF(OR(C1="",COUNTIF(B:B,C1)=0),"",INDEX(A:A,MATCH(C1,B:B,0))) などで。

iso39
質問者

お礼

御回答ありがとうございます。 またお願いします。

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

関連するQ&A

  • エクセルの行と列の変換

    エクセルで作った表の行と列をそっくり入れ替えたい(下記例参照)のですが、どのようにすればよいでしょうか?もしできないなら、入力のしなおしが必要でしょうか?どなたか教えてください! 例)   1 2 3 4 ・・ A B C D ↓   A  B C D 1 2 3 4

  • 2行目で数字が入っている列までを1行目で計出したい

    エクセルで質問です。 下記の状態で、F1に、2行目で数字が入力されている列までを1行目で 合計額を出したいです。 計算式はありますか??? 例えばで、下記の例でいうと、「28」を自動集計したいです。 それでいて、次回C2に数字を入れた場合、F1を「34」となるように したいのです。         A  B  C  D  E F         1月  2月  3月  4月  5月 合計 1行目 H25  10  18  6  25   30 「28」 2行目 H26   4  40          44 どなたかわかる方、教えてください。 よろしくお願いします。

  • エクセルのIF関数について

    エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、     A列  B列  C列  D列 1行目  111 2行目  222 3行目  333 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999 上記のようなシートがあったとして、     A列  B列  C列  D列 1行目  111       999 2行目  222       333 3行目  333   ○   123   × 4行目  444 5行目  555 6行目  666 7行目  777 8行目  888 9行目  999   ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。

  • エクセル、B列に入力した数字と対になった数字をC列に表示させたい

    B列に21600~21699までの数字を入力したらC列に300プラスされた数字21900~21999を表示させる。同じようにB列に1100~1199までの数字を入力したらC列に800プラスされた数字1800~1899を表示させる。同じくB列に3500~3599までの数字を入力したら、今度は500マイナスの数字3000~3099が表示されるようにしたいのですが、過去の質問の中から探し出せません。下に例を書きました宜しくお願いします。 (例)     B列      C列 1   21610     21910(B列+300) 2   21685     21985(B列+300) 3    1106      1806(B列+800) 4    1131      1813(B列+800)  

  • エクセルでこんな事出来ます?

    エクセル2000で教えて下さい。 ABCDの列に任意の数字が入ります。 例えば     A   B   C   D 1  -10 -20 -30  60 2   50 -30  0  -20 3   10  30 -25 -15 のように同じ行で4つのセルをプラスマイナスすると等しくなります。 数値の入力は小さい数字(マイナスの大きい数字)から順番に入力されていきます。 最後に一番大きい数字が入るように式を入れたいのです。 例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 列は4列のみです。マイナスの数値は最低でも1つ入ります。   

  • エクセルで二つのセルにある数字の差の個数を表示したい

    エクセルでの質問です。 どう質問したら良いか、うまく伝わるかよくわからないのでわかりづらかったらすみません。 Aの列に「1」Bの列に「~」Cの列に「4」が入力されているとします。 入力されている数字は、通し番号の一部です。 Dの列に、1~4までの数字の個数である「4」を表示させたいと思っています。 1234、と指を折って数えると4になる、それです。 数字の多い方から少ない方を引いて、1を加えるというのは考えたのですが A列のみの入力でC列に入力なしの、D列の結果が「1」という場合もあり それをスマートに表示させる方法は何かないかと模索しております。 質問がわかりにくくてすみません。 A B C D 1 ~ 4 4 7 ~   1 こんな感じです。 実際は6桁の通し番号で、行も多いです。 計算式を入れて、下行にコピー。で対応したいのですが、 なんともうまくいきません。 ご教授頂けると助かります。

  • エクセル関数の質問

    よろしくお願いします。 エクセル2003を使用してます。 A     B     C     D      1      2     3 1     1     1      1 2     3     4      5 3     5     7      9 4     7     10     13 5     9     13     17 6     11     16 7     13    19 8     15 9     17 10    19 11 12 13 14 15 16 17 18 19 20 上記のA列の1~20(実際はもっと多い)の数字を B列、C列、D列のように並べたいのですが、 1行目の1,2,3の意味は 1だったらA列の数字を1行間隔ずつあけて、B列に行を詰めて並べる 2だったらA列の数字を2行間隔ずつあけて、C列に行を詰めて並べる というような意味なのですが、わかる方がいましたらご教示お願いします。

  • 行列データ?の文字列操作についてです。

    行列データ?の文字列操作についてです。 ----------------------------------------------- ID A B C D E 1 1.5 1.1 a 6 2 7.4 b 1 3 7.2 c 1 4 3.2 3.1 a 1 5 1.9 1.6 a 4 6 4.0 d 3 8.0 (上手く張れませんので、画像ファイルをつけました。 実際のデータはこのようにtabが入っています。) ----------------------------------------------- 上記のような文字列?をテキストボックスのようなところに入力(ペースト)し、 変換ボタンを押すことにより、 変換後文字列 1.1-1.5(6, a), 1.6-1.9(4, a), 3.1-3.2(1, a), 4.0(3, d, 8.0), 7.2(1, c), 7.40(1, b) と変換させたい。 行っていることは下記になります。 1、B列の数字が入力されていて、A>Bの時にはAとBを入れ替える。 2、A列の数字で昇順でソートする。 3、B列の数字が入力されているものは「A-B」とする。 4、それぞれの行を「A-B(D, C,E)」として「,」でつなぐ。 今回文字列の例として6行のものを示しましたが、行数は増減します。 列はE列まででこちらは増減しません。 Excel VBAを用いて行っているのですが、javascriptで組みたいと考えています。 可能なものでしょうか?

  • エクセルの数字の桁数

    エクセル2000です。 3000行程のデータです。横に並べた3つのセル(A~C列)の数字をひとつのセルにまとめてD列に表示しようと思います。希望はゼロも含めて8桁の番号10036803にしたいのですが、ゼロがとれて13683になってしまいます。 なお、Dのセルには=A1&B1&C1としています。    A  B  C    D  1 1 00368 03  10036803 よろしくお願いします。

  • エクセルで数字の下1桁を見て並び替える

    エクセルで下記の様な数字が並んでいます。 A列の下1桁の数字は上から順に増えていて、ある数字で1に戻りまた増えています。 その数字は毎回同じではなく、6までの場合もあれば10までの場合もあります。 下記の例では上から6行、次は4行、次は7行と下1桁の数字によってグループ分け出来ますよね? それで上から6行目までのB列の値(462~530)をコピーしてSheet2のA1から横方向に並べます。 その次は7行目から10行目までのB列の値(356~487)をコピーしてSheet2のA2から横方向に並べます。 その次も同じように並べます。 B列が空欄の場合もありますが、その場合はそのままSheet2にも空欄のセルを作ります。 1グループ全部のB列が空欄でもそのままSheet2に空欄の行を作ります。 この動作をマクロで出来る式を教えて頂けないでしょうか? A列          B列 0213240101     462 0213240102    387 0213240103    556 0213240104    585 0213240105    536 0213240106    530 0213240201    356 0213240202    632 0213240203    486 0213240204    487 0213240301    586 0213240302    670 0213240303    619 0213240304 0213240305    645 0213240306    487 0213240307    651 0213240401 0213240402 0213240403 0213240501    455 0213240502    623 0213240503    411 Sheet2 A列   B列    C列   D列    E列    F列   G列 462    387    556    585    536    530 356    632    486    487 586    670    619            645    487    651    455    623    411

専門家に質問してみよう