EXCEL公式及函数的高级应用(6)

来源:互联网 发布:淘宝秒杀需要刷新吗 编辑:程序博客网 时间:2024/05/23 15:47
 

2.1.2.12  矩阵函数——TRANSPOSE函数、MINVERSE函数和MMULT函数

1TRANSPOSE函数

TRANSPOSE函数的功能是求矩阵的转置矩阵。公式为

= TRANSPOSE(array)

式中,Array需要进行转置的数组或工作表中的单元格区域。

函数TRANSPOSE必须在某个区域中以数组公式的形式输入,该区域的行数和列数分别与array的列数和行数相同。

【例2-7假设矩阵A中的值如图2-18中单元格区域A2:C5,求其转置矩阵的步骤如下:

2-18  求转置矩阵

1)选取存放转置矩阵结果的单元格区域,如E2:H4

2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数TRANSPOSE,在该函数对话框中输入(可用鼠标拾取)单元格A2:C5,按“Crtl+Shift+Enter”组合键,即得转置矩阵如图2-18所示。

利用TRANSPOSE函数可以把工作表中的某些行(或列)排列的数据转换成列(或行)排列的数据。例如,由于工作需要,要把工作表中的某些行数据改为列数据,若一个一个地改动数据,将是很麻烦也很费时的,而利用TRANSPOSE函数则可以很轻松地进行这项工作。但需要注意的是,利用TRANSPOSE函数对行(列)数据进行转换,则无法单独修改其中转换单元格区域中的某单元格的数据。

2MINVERSE函数

MINVERSE函数的功能是返回矩阵的逆矩阵。公式为

= MINVERSE(array)

式中,array具有相等行列数的数值数组或单元格区域。

MINVERSE函数的使用方法与TRANSPOSE函数是一样的。在求解线性方程组时,常常用到MINVERSE函数。

3MMULT函数

MMULT函数的功能是返回两数组的矩阵乘积。结果矩阵的行数与 array1 的行数相同,列数与 array2 的列数相同。公式为

= MMULT(array1,array2)

式中  array1, array2—要进行矩阵乘法运算的两个数组。

array1的列数必须与 array2 的行数相同,而且两个数组中都只能包含数值。array1array2可以是单元格区域、数组常数或引用。如果单元格是空白单元格或含有文字串,或是array1的行数与 array2 的列数不相等时,则函数MMULT返回错误值#VALUE!

同样地,由于返回值为数组公式,故必须以数组公式的形式输入。

以例2-7的原矩阵和其转置矩阵为例,它们的乘积矩阵求解方法如下:

1)选取存放乘积矩阵结果的单元格区域,如J2:L5

2)单击工具栏上的【粘贴函数】按钮,在【粘贴函数】对话框中选取函数MMULT,在该函数对话框中的array1栏中输入(可用鼠标拾取)单元格区域A2:C5,在array2栏中输入单元格区域E2:H4,然后按“Crtl+Shift+Enter”组合键,即得矩阵的乘积如图2-18所示。

2.1.2.13  ROUND函数

ROUND函数的功能是返回某个数字按指定位数舍入后的数字。公式为

= ROUND(number,num_digits)

式中  number—需要进行舍入的数字;

num_digits—指定的位数,按此位数进行舍入。

如果num_digits大于0,则舍入到指定的小数位;如果num_digits等于0,则舍入到最接近的整数;如果num_digits小于0,则在小数点左侧进行舍入。

利用ROUND函数可以防止利用格式工具栏上的【增加小数位数】或【减少小数位数】所带来的看起来“假数据”问题的出现,使得工作表上显示的数据真实可靠。实际上,如果需要调整数据的小数位数,最好使用ROUND函数,而不要使用格式工具栏上的【增加小数位数】或【减少小数位数】按钮。

例如,若单元格A1中的数据为14.3772,若使用格式工具栏上的【减少小数位数】按钮将小数位数设为两位,则单元格A1中的数据显示为14. 38,看起来似乎单元格A1的数据为14.38,但实际上仍为14.3772。若在单元格B1中输入公式“=3*A1”,则单元格B1中的数据显示为43.13,也许“不明真相”的人认为单元格B1的数据算错了(14.38乘以3应该等于43.14),但实际上单元格的数据为43.1316,这种看起来的“假”数据可能会对实际工作带来不便。因此,正确的方法应是:单元格B1中应输入公式“=ROUND(3*ROUND(A1,2),2)”,结果为43.14,即先将单元格A1的数据用函数ROUND四舍五入,然后再对计算后的数据四舍五入。

<SCRIPT type=text/javascript><!--google_ad_client = "pub-3488423754339938";/* 468x60, 创建于 08-6-30 */google_ad_slot = "9104345622";google_ad_width = 468;google_ad_height = 60;//--></SCRIPT><SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></SCRIPT><SCRIPT type=text/javascript><!--google_ad_client = "pub-9161750109226343";/* 468x60, 创建于 08-6-30 */google_ad_slot = "8489392757";google_ad_width = 468;google_ad_height = 60;//--></SCRIPT><SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript></SCRIPT>