Excel 隣接しない列に値貼り付け
Excel 隣接しない列に値貼り付け
※「Excel 隣接しない列に一発で値貼り付け」の書き直しです。
ある一定の書式にしたがって作成された20~30のシートのデータを1つのシートに集約しており(集約シートを含み全てのシートは同じデータ内です。)、データを集約した集約シートの「表A」は下記の添付画像左側のようになります。
やりたいことは、「表A」のB列、C列、D列、E列をある条件のもとに右側の「表B」のH列、J列、L列、N列に値の貼り付けを行いたいのです。
現在の作業工程は、C列の空白行は必要ないため(C列が空白=他の列も空白)C列に文字入力があるとチェックが入るA列のオートフィルターで、「○」のみ表示にし、B~E列を順にそれぞれ、2行目からデータが記載された最終行までコピーし
「表B」のそれぞれの箇所に値貼り付けを行っています。
この時の注意点として、A列のオートフィルタ利用のためC列には空白がありませんが、B、D、E列には空白が存在します。
データがある最終行以下の空白は必要ありませんが、データ間の空白には意味があります。(下記の図で示すと「B3、4」や「D3、4」)
現在の作業工程でも問題はないのですが、この作業は最初に記載した20~30のシートに記載されたデータの校正に使うため取りこぼしをしたくなく、不特定多数の方が簡単に使えるようにしたいので、どうにか作業工程を減らしたいと考えています。
よろしくお願いします。
▼書式シート
*シートの数は増減する。
*集約シートが参照するセルには、必ずデータが入力されているわけではない。
*入力データは全て数値ではなく文字である。
▼集約シート
*他のブックと共通使用なため、一部の式は他のブックへのコピーに対応する形である。
*空白セルを参照している場合に結果として返される「0」は、オプション設定で非表示にて対応
*「表A」の行長は増減する。
*貼り付け先「表B」の列は飛び飛びである。
▼ちなみに「表A」に使われている計算式(実際とは一部変えています)
■A列 :C列に文字入力がある場合「○」が表示されます
{=IF(OR($C1>""),"○","")}
■B-E列:他のシートの任意のセルの値をコピー
{=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))}
PC環境:Win XP / Excel 2003
お礼
ありがとうございます。参考になりました