内存数组的处理_LOOKUP()LOOKUP()在处理内存数组中的应用例子一:x_1是数组{"A";"B";"C";"D";"E";"F";"G";"H";"I";"J"}ABCDEFGHIJ取出数组x_1中第3至5个数组元素组成新的数组:定义名称:rowsx_1=ROW(INDIRECT("1:"&ROWS(x_1)))x_1_1=LOOKUP(ROW(INDIRECT("3:5")),rowsx_1,x_1)CDE取出数组x_1中第7至10个数组元素组成新的数组:定义名称:x_1_2=LOOKUP(ROW(INDIRECT("7:10")),rowsx_1,x_1)GHIJ取出数组x_1中奇数位的元素组成新的数组:定义名称:x_1_3=LOOKUP(SMALL(IF(MOD(rowsx_1,2),rowsx_1),ROW(INDIRECT("1:"&SUM(MOD(rowsx_1,2))))),rowsx_1,x_1)ACEGI例子二:在汇总工作簿时,有一个汇总表,N个分表,计算时汇总表不计算在内,只计算各分表,就要把汇总表去掉,只留各分表的表名。1、汇总表放在工作簿最前面:定义名称:names_1=LOOKUP(ROW(INDIRECT("2:"&COLUMNS(wk))),MATCH(wk,wk,),wk)Sheet2Sheet3Sheet4Sheet5注:我们要取得1到工作簿内工作表的个数的垂直数组{1;2;3;4;5}一般都是用ROW(INDIRECT("1:"&COLUMNS(wk)))但我们知道,工作簿内的工作表是不可能同名的,所以可以直接用MATCH()来返回以缩短公式:MATCH(wk,wk,)。2、汇总表放在工作簿最后面:定义名称:names_2=LOOKUP(ROW(INDIRECT("1:"&COLUMNS(wk)-1)),MATCH(wk,wk,),wk)Sheet1Sheet2Sheet3Sheet43、汇总表放在工作簿任意位置:定义名称:names_3=LOOKUP(SMALL(IF(wk<>sh,COLUMN(INDIRECT("C1:C"&COLUMNS(wk),0))),ROW(INDIRECT("1:"&COLUMNS(wk)-1))),MATCH(wk,wk,),wk)Sheet2Sheet3Sheet4Sheet5注:这个公式结果可到Sheet2:Sheet5!看看比较清楚。这样,我们就可以在任意工作表内取出工作簿内不含本工作表的所有工作表名。例子三:数组:x_2={158;158;13;100;45;358}取出x_2中大于100的常量元素,组成新的数组,结果应为{158;158;358}定义名称:x_2_1=LOOKUP(SMALL(IF(x_2>100,ROW(INDIRECT("1:"&ROWS(x_2)))),ROW(INDIRECT("1:"&SUM(--(x_2>100))))),ROW(INDIRECT("1:"&ROWS(x_2))),x_2)158158358例子四:数组:x_3={"PowerPoint";"Access";"Excel";"Word";"WPS";"Outlook";"WPS"}去除x_3中为"WPS"的常量,组成新的数组。定义名称:x_3_1=LOOKUP(SMA
内存数组的处理 LOOKUP() 来自淘豆网www.taodocs.com转载请标明出处.