引用: siguoxiang 发表于 2014-4-28 18:48
第一步我就不懂,行列的扩充为什么。
啊…原來是行列擴充的概念比較不清楚…其實這個是數組公式最基礎最重要的概念,說不定你常常用到,只是一下子忘記了
舉例來說,以下表格要求第1行為"BBB"、A列為"CC"的值,
| A | B | C | D |
1 | | AAA | BBB | CCC |
2 | AA | 1 | 2 | 3 |
3 | BB | 4 | 5 | 6 |
4 | CC | 7 | 8 | 9 |
一個常用的公式會是:
- =SUMPRODUCT((B1:D1="BBB")*(A2:A4="CC")*B2:D4)
(B1:D1="BBB")返回{FALSE,TRUE,FALSE}
(A2:A4="CC")返回{FALSE;FALSE;TRUE}
單行和單列要怎麼相乘呢?在此就發生了行列擴充,
{FALSE,TRUE,FALSE}往下擴充三列:{FALSE,TRUE,FALSE;FALSE,TRUE,FALSE;FALSE,TRUE,FALSE}
{FALSE;FALSE;TRUE}往右擴充了三行:{FALSE,FALSE,FALSE;FALSE,FALSE,FALSE;TRUE,TRUE,TRUE}
如此才能一一對應,相乘的結果就是{0,0,0;0,0,0;0,1,0}
相關的基礎精華文可參考下篇的第三、四部分:
[原创] 一起来认识数组公式(最基础)
同理,一個函數的不同參數間也會發生行列擴充,比方說
- =MID(123456,{1,2,3},{2;3})
因為第二、三參數的行列不對等,因此會擴充成:
- =MID(123456,{1,2,3;1,2,3},{2,2,2;3;3;3})
一一對應後,就會返回{"12","23","34";"123","234","345"}
這個和上篇OFFSET的擴充原理是完全相同的~
------------------------------------------------------------------------------------------------------
唉我發現自己很不會寫基礎教學文,希望以上的解釋還算清楚