
1 つのスプレッドシート (Resource.xlsx) に、「People」というテーブルがあります。新しい人が組織に加わると、このテーブルのサイズが大きくなります。
別のスプレッドシート (Planning.xlsx) があり、そこに Resource.xlsx のデータの動的なレプリカを作成したいと考えています。つまり、Resource.xlsx のテーブルに行を追加すると、Planning.xlsx に新しい行が作成されます。また、Resource.xlsx の複製されたテーブルに列を追加できるようにしたいと考えています。
頭の中では、これはかなり簡単なはずのように思えますが、苦労しています。あるいは、間違った検索用語を使用しているのかもしれません。ご協力いただければ幸いです。
答え1
ご存知のとおり、これはそれほど簡単なことではありません。主な理由は、Excel が特に適した作業ではないからです。本当に必要なのはデータベースです。
それを解決したら、いくつかのオプションが提示されますが、もう少し範囲を理解する必要があります。変更を即座に実行しますか、それとも 2 番目のワークブックを後で更新しても構いませんか?
前者の場合、1 番目のワークブックに、2 番目のワークブックを開いて People テーブルの変更イベントを監視する VBA スクリプトをいくつか記述する必要があります。変更イベントが発生すると、新しい行が追加されているかどうかを確認し、それを 2 番目のテーブルに追加します。VBA は、かなり複雑になります (ここで書くには長すぎると思います) が、それほど難しくはありません。
2 番目のケースは、実際にはずっと簡単です。これで、最初のテーブルのクエリに基づいて 2 番目のテーブルを作成できます。2 番目のテーブルに追加データを追加したいので、最も簡単で堅牢な解決策は、Microsoft の無料 PowerQuery アドインをインストールすることです。これを使用して、1 番目のテーブルに対してクエリを作成し、必要な列を追加するだけです。1 番目のテーブルを更新するたびに、2 番目のテーブルを保存して閉じ、開き、クエリを更新します (開いたときに実行されるように設定できます)。