列をコピーして Excel で自動的に更新する

列をコピーして Excel で自動的に更新する

たとえば、シート A に現在数字の列があります。この列をシート B にコピーしたいのですが、これは簡単です。
ただし、シート A の列の値を変更した場合、シート B の値を自動的に変更する方法はありますか? (私は Mac で作業していますが、Windows または Mac での回答が役立つと思います)。

現在、シート A は数字の長いリストで、シート B は重複が削除された同一リストです。AI に新しい値を追加すると、それが自動的に B に表示されるようにしたいと思います。

答え1

これを実現するにはマクロが必要です。このマクロを作成し、ボタンまたはキーボード ショートカットに割り当てることができます。

サブ RemoveDups()

'宛先列をクリアします
Sheets("Sheet2").Columns(1).ClearContents

'Sheet1 から Sheet2 に値をコピー/貼り付け
Sheets("Sheet1").Columns(1).Copy Sheets("Sheet2").Cells(1, 1)

'Sheet2 から重複を削除します
Sheets("Sheet2").Columns(1).RemoveDuplicates Columns:=Array(1), Header:=xlNo

終了サブ

答え2

これにマクロを使用したくなく、データを更新するときに手動でフィルターを更新する必要があることを受け入れられる場合は、次のアイデアをお勧めします。

Sheet2 では、数式を使用して、Sheet1 から対応するセルをコピーすることで、Sheet1 の列を複製するだけです (これは簡単だと言ったので、これ以上説明しません)。

次に、Sheet2の隣の列に、最初の行から目的の行までの行の値の出現回数をカウントする数式を入力します。

例:

列AにはSheet1と同じ値(=Sheet1!A1A1など)が含まれています

列 B=COUNTIF($A$1:A1,A1)には B1 が含まれています (セル範囲の最初の部分は $ を使用してブロックされているため、最初の行は固定されたままになります)。次に、数式を下にコピーします。列 A にあるものの出現回数が上から下に向かって増加します。

最後に、列 B にフィルターを設定して、列 B の値が 1 より大きいすべての行を非表示にします。

(事前に行わなかった場合、Sheet1 の列 A に新しいデータを挿入する場合は、列 A と B の数式もコピーする必要があることに注意してください)

PS 非常に簡単な方法がありますフィルターを自動的に更新する...しかし、マクロ(単純なもの)が必要になります

関連情報