excelで同じ列のなかで同じ値があった場合の隣の値をひろいたい
◇-?excelで同じ列のなかで同じ値があった場合の隣の値をひろいたい-yamayu-06/04-21:32(1778)-No.511965 ┣?!Re:excelで同じ列のなかで同じ値...-o6asan-06/05-15:59(1759)-No.511967 ┗?!Re:excelで同じ列のなかで同じ値...-独覚-06/06-13:21(1738)-No.511969
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
511965 | excelで同じ列のなかで同じ値があった場合の隣の値をひろいたい | yamayu | 2013/06/04-21:32 |
メーカー名:自作PC 作ってもらった OS名:Windows7 パソコン名:214v -- EXCELで A列 B列 101 15 102 19 103 35 104 36 とあり、A列は連番で、B列に随時数字を入力しているのですが、 B列に入力したときに同じデータがあったら、A列の値を c列に表示させたいのです。 例えば、 A列 B列 C列 107 19 102 108 31 109 35 103 というふうにしたく、関数で処理したいのですが、 どのようにしたらいいか教えてください。 |
▲このページのトップに戻る
511967 | Re:excelで同じ列のなかで同じ値があった場合の隣の値をひろいたい | o6asan | 2013/06/05-15:59 |
記事番号511965へのコメント お使いのEXCELのバージョンがわかりませんが,当方は,2007です。 それほど特殊な関数は使っていないので,大丈夫ではないかと思います。 一応,以下でできました。実のところ,もう少しエレガントな式があるかもしれませんが…… C列に 以下の式を入れてください。 C1には =IF(A1=(IF(COUNTIF($B$1:$B$13,B1)>1,INDIRECT(ADDRESS(MATCH(B1,$B$1:$B$13,0),1)),"")),"",(IF(COUNTIF($B$1:$B$13,B1)>1,INDIRECT(ADDRESS(MATCH(B1,$B$1:$B$13,0),1)),""))) C2には =IF(A2=(IF(COUNTIF($B$1:$B$13,B2)>1,INDIRECT(ADDRESS(MATCH(B2,$B$1:$B$13,0),1)),"")),"",(IF(COUNTIF($B$1:$B$13,B2)>1,INDIRECT(ADDRESS(MATCH(B2,$B$1:$B$13,0),1)),""))) という風に。 C1に入れたものをC13まで,フィルハンドルでドラッグしてコピーすればいいです。 A1〜A13には連番で101〜113が入っているものとします。そこが変われば,当然,$B$1:$B$13の範囲指定は変わります。 結果は, A列 B列 C列 101 15 102 19 103 35 104 36 105 106 107 19 102 108 31 109 35 103 110 111 19 102 112 113 15 101 のようになります。 追記: スレ主さんからのお返事はないようですが,独覚さんの式を参考に自分の式を直してみました。 独覚さん,勉強になりました。ずいぶん短くなりました。(汗)ありがとうございます。 やり方は,独覚さんのお書きの方法です。 =IF(COUNTIF($B$1:B1,B2),INDIRECT(ADDRESS(MATCH(B2,$B$1:B1,0),1)),"") |
▲このページのトップに戻る
511969 | Re:excelで同じ列のなかで同じ値があった場合の隣の値をひろいたい | 独覚 | 2013/06/06-13:21 |
記事番号511965へのコメント 1行目からデータがある場合はC2セル(C1セルではなく)に下記を入力して下へフィルコピーで。 =IF(COUNTIF(B$1:B1,B2),INDEX(A$1:A1,MATCH(B2,B$1:B1,0)),"") 追記 EXCELのバージョンが2007以降であれば =IFERROR(INDEX(A$1:A1,MATCH(B2,B$1:B1,0)),"") で。 |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|