怎么获取excel单元格数组
使用一个公式返回一个数组,该数组包含多个工作表中给定范围内的所有数据。如下图1至图5所示有5个工作表:
图1
图2
图3
图4
图5
如果使用上述示例工作表,则公式返回的结果类似于:
{18,””,19,63,””,””,67;””,46,””,””,”L”,””,7;”N”,”Z”,””,”F”,70,19,””;””,””,””,””,””,””,73;””,””,”T”,””,””,88,”Y”;”U”,””,”B”,”F”,”Q”,71,””;””,”H”,”U”,”R”,86,84,”Q”;11,”R”,84,””,””,43,72;39,53,””,””,”R”,60,80;””,”V”,”B”,33,””,46,39;””,”B”,””,””,”V”,””,””;”P”,””,”M”,””,””,””,85;”O”,””,9,””,””,””,””;””,”I”,9,””,”S”,”S”,59;””,”X”,”J”,””,””,””,”X”;46,72,””,22,””,67,”P”;35,32,69,”O”,””,””,”V”;24,””,””,””,”R”,””,””;””,5,”B”,69,”C”,””,””;”P”,”A”,19,””,””,”K”,”B”}
为了保持一致,在任何公式中,指定的单元格区域(示例中为A1:G4)定义为名称Rng。同样,对于引用工作表集合的任何引用,例如:={“Sheet1″,”Sheet2″,”Sheet3″,”Sheet4″,”Sheet5”},定义为名称Sheets。
先不看答案,自已动手试一试。
公式
可使用公式生成中间结果:
=CELL(“contents”,INDIRECT(T(INDEX(Sheets&”!R”&MOD(ROW(INDIRECT(“A1:A”&ROWS(Rng_2)*COLUMNS(Rng_2)))-1,ROWS(Rng_2))+1&”C”&INT((ROW(INDIRECT(“A1:A”&ROWS(Rng_2)*COLUMNS(Rng_2)))-1)/ROWS(Rng_2))+1,)),))
小结
这个案例值得好好研究一下,在公式中应用了一些数学计算来获取结果。在原文的评论中,还有不少公式,有时间可以逐个调试,增强对公式的理解。