- 締切済み
エクセルについて教えてください。
エクセルについて教えてください。 コードの振られたデータシートが新旧2つあります。旧データに含まれる項目を新データに追加項目として反映させたいのですが、関数は何を使って、どう範囲などを入れたらよいのでしょう。追加・削除されたコードもあります。 このような感じのデータです⇒新データはA列:コード、B列:氏名となっており、旧データには、AB列にC列:グループ名が入っています。 新データにC列の内容を反映させ、最終的にはグループごとにソートをかけたいのです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
>追加・削除されたコードもあります。 ⇒追加コードは旧シートにない為、反映できないがどのようなコードにするのでしょうか。 NO1様の回答補足で2行目以降が「#N/A」とはこの状態と思います。 仮に追加コードは空白でよいのならば、次のような数式でエラーは回避できます。 =IF(COUNTIF(旧シート!A:A,A2),VLOOKUP(A2,旧シート!A:C,3,FALSE),"") 旧シートには見出し行ありとしていますので2行目開始としています。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 外していたらごめんなさい。 一つの案です。 ↓の画像で左側(Sheet1)が旧データ・右側(Sheet2)が新データとします。 Sheet2の空いている場所にSheet1・Sheet2のデータを重複なしに表示させてみてはどうでしょうか? Sheet1の作業列D2セルに =IF(OR(A2="",COUNTIF(Sheet2!$A$2:$A$1000,A2)),"",ROW(A1)) という数式を入れ、フィルハンドルの(+)マークでダブルクリック、又はオートフィルで下へコピーします。 そして、Sheet2のE2セルに =IF(COUNT($A$2:$A$1000)>=ROW(A1),A2,IF(COUNT(Sheet1!$D$2:$D$1000,$A$2:$A$1000)>=ROW(A1),INDEX(Sheet1!A$2:A$1000,SMALL(Sheet1!$D$2:$D$1000,ROW(A1)-COUNT($A$2:$A$1000))),"")) という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 尚、数式はそれぞれのSheetの1000行目まで対応できるようにしています。 E列~G列はあくまで数式が入っているだけですので、 このままでは並び替えは出来ません。 E~G列全てを範囲指定 → コピー → 好みの列を選択 → 形式を選択して貼り付け → 「値」にチェックを入れOK これでグループでのソートが可能だと思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
- qyukip
- ベストアンサー率40% (13/32)
VLOOKUPを使ってみてはいかがでしょうか。 例えば新データのC列にVLOOKUP(A1,"旧シート名"!A:C,3,FALSE) のような記述をすればできると思います。
補足
早々の回答ありがとうございます。 入れてみました。できました。ところが、2行目以降に数式をコピーすると「#N/A」となってしまうのです。 2行目以降はA1部分がA2、A3となっているのですが・・・これでは違うのでしょうか。