Excel公式中的降维技术( 二 )


因为A1:A9是列向量,所以MID函数的参数start_num的值必须是行向量 。如果试图使用公式:
=MID(A1:A9,{1;2},1)
结果将是{“A”,”s”,#N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A} 。
再继续扩展,公式:
=MID(A1:C9,{1,2},1)
我们希望其返回由54个元素组成的数组,该数组等于54个单独的MID构造的结果:
=MID(A1,1,1)
=MID(A1,2,1)
=MID(A2,1,1)
=MID(A2,2,1)
等等 。
但实际上,结果是一个仅包含27个元素的数组:
{“A”,”?”,#N/A;”E”,”a”,#N/A;”P”,”l”,#N/A;”C”,”a”,#N/A;”R”,”o”,#N/A;”B”,”i”,#N/A;”M”,”o”,#N/A;”A”,”i”,#N/A;”A”,”i”,#N/A}
可参考《Excel公式技巧06: COUNTIFS函数如何处理以数组方式提供的条件》中解的对数组的解析的内容 。
同样,改变公式中参数的向量类型:
=MID(A1:C9,{1;2},1)
结果是:
{“A”,”S”,”P”;”s”,”a”,”a”;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A;#N/A,#N/A,#N/A}
现在怎么办呢?Excel对可以操作的数组维数的固有限制,是否意味着我们必须放弃获取正在寻找的54个元素数组的尝试?
的确,我们不能改变维数数量,但并不是说不能通过其他方式实现 。
在继续刚才的MID函数示例之前,我们以另一个示例来解释 。假设在单元格A1:E10中的数据如下所示 。

Excel公式中的降维技术


 
显然,这里的数据是二维的,是一个10行5列的数组,其Excel表示为:
{“A1″,”B1″,”C1″,”D1″,”E1″;”A2″,”B2″,”C2″,”D2″,”E2″;”A3″,”B3″,”C3″,”D3″,”E3″;”A4″,”B4″,”C4″,”D4″,”E4″;”A5″,”B5″,”C5″,”D5″,”E5″;”A6″,”B6″,”C6″,”D6″,”E6″;”A7″,”B7″,”C7″,”D7″,”E7″;”A8″,”B8″,”C8″,”D8″,”E8″;”A9″,”B9″,”C9″,”D9″,”E9″;”A10″,”B10″,”C10″,”D10″,”E10”}
但是,由于某些原因,我们需要将上述数据放置在一维数组中:
{“A1″;”B1″;”C1″;”D1″;”E1″;”A2″;”B2″;”C2″;”D2″;”E2″;”A3″;”B3″;”C3″;”D3″;”E3″;”A4″;”B4″;”C4″;”D4″;”E4″;”A5″;”B5″;”C5″;”D5″;”E5″;”A6″;”B6″;”C6″;”D6″;”E6″;”A7″;”B7″;”C7″;”D7″;”E7″;”A8″;”B8″;”C8″;”D8″;”E8″;”A9″;”B9″;”C9″;”D9″;”E9″;”A10″;”B10″;”C10″;”D10″;”E10”}
如何得到这个50行1列的数组?
(或者,一个1行50列的数组:
{“A1″,”B1″,”C1″,”D1″,”E1″,”A2″,”B2″,”C2″,”D2″,”E2″,”A3″,”B3″,”C3″,”D3″,”E3″,”A4″,”B4″,”C4″,”D4″,”E4″,”A5″,”B5″,”C5″,”D5″,”E5″,”A6″,”B6″,”C6″,”D6″,”E6″,”A7″,”B7″,”C7″,”D7″,”E7″,”A8″,”B8″,”C8″,”D8″,”E8″,”A9″,”B9″,”C9″,”D9″,”E9″,”A10″,”B10″,”C10″,”D10″,”E10″})

猜你喜欢