Excel2013,2016…参照先シート上の表の行列追加・削除に追従するリンク貼り付け
ブック1のシート上の表をブック2のシートにリンク貼り付けすると、ブック1のシート上の表の値の変更が即座にブック2の表に反映します。これはこれで便利なのですが、ブック1の表の行列を追加・削除した場合はブック2の表に反映しないため、リンクを再設定しなければなりません。OFFSET貼り付けを用いることで、行列の追加・削除に追従するリンク貼り付けが可能となります。
- ブック1のシート1
ブック2のシート1…左側がリンク貼り付け、右側がOFFSET貼り付け
- ブック1のシート1に行を挿入します。
ブック2のシート1…左側がリンク貼り付け、右側がOFFSET貼り付け
リンク貼り付けの方は、行の挿入が反映しませんが、OFFSET貼り付けの方は行の挿入が反映しています。
OFFSET参照の仕方は以下の通りです。
F2=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(F2)-2,0)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(F2)-2,0))
G2=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(G2)-2,1)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(G2)-2,1))
H2=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(H2)-2,2)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(H2)-2,2))
I3=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(I2)-2,3)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(I2)-2,3))
F3=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(F3)-2,0)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(F3)-2,0))
G3=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(G3)-2,1)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(G3)-2,1))
H3=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(H3)-2,2)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(H3)-2,2))
I3=IF(OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(I3)-2,3)=””,””,OFFSET([Book1.xlsx]Sheet1!$A$1,ROW(I3)-2,3))
(以下続く)
※リンク先のセルが空白で無い場合に、SA$1を起点としてOFFSET関数でセルの値を持ってきます。