网友问到:在 Excel 中,若要将多个工作表(例如以下的A,B,C工作表)转换为一个工作表(合併ABC),该若何处置? A工作表 B工作表 C工作表 转换成下表=A+B+C 【公式设计与解析】 由于每一个工作表的资料数纷歧样多,要直接转换其实不轻易。是以,先将每一个工作表的资料调集在第 11 列。 工作表A的贮存格B11:=OFFSET($A$3,MATCH("V",B3:B6,0)-1,0) 複製贮存格B11,贴至贮存格B11:AF11。 MATCH("V",B3:B6,0):操纵 MATCH 函数找出每栏中"V"的位置,并传回第几个的一个数值。 OFFSET($A$3,MATCH("V",B3:B6,0)-1,0):将上式传回值代入 OFFSET 函数,找出A3:A5中对应的贮存格内容。 同理,工作表A的贮存格B11:=OFFSET($A$3,MATCH("V",B3:B5,0)-1,0) 同理,工作表A的贮存格B11:=OFFSET($A$3,MATCH("V",B3:B7,0)-1,0) 由于 A,B,C 三个工作表的格局都是一致的,所以可以操纵公式来转换多列为多栏。 贮存格C2:=INDIRECT(C$1&"!"&ADDRESS(11,COLUMN($A:$A)+ROW(1:1))) 複製贮存格C2,贴至贮存格C2:E32。 (1) COLUMN($A:$A)+ROW(1:1) COLUMN($A:$A)=1,当公式向下複製时,ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→ ...。本式传回 2,3,4, ...。 (2) ADDRESS(11,COLUMN($A:$A)+ROW(1:1)) 发生 ADDRESS(11,2),当公式向下複製时公式变成:ADDRESS(11,2)→ADDRESS(11,3)→ADDRESS(11,4)→ ...,即发生贮存格B11→贮存格C11→贮存格D11→ ... 。 (3) INDIRECT(C$1&"!"&ADDRESS(11,COLUMN($A:$A)+ROW(1:1))) C$1&"!"&ADDRESS(11,COLUMN($A:$A)+ROW(1:1)):发生『A!B11』,当公式向下複製时,发生字串:A!B11→A!C11→A!D11→ ...。当公式向右複製时发生字串:A!B11→B!B11→C!B11。 将上式操纵 INDIRECT 函数将字串转为现实贮存格位址,便可传回贮存格的内容了。 创作者先容 vincent 北京拓展公司
汗青上的今天
|