开篇:润墨网以专业的文秘视角,为您筛选了一篇浅议EXCEL中的转置范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
一、转置的概念
查看数学中转置的定义如下:设A为m×n阶矩阵(即m行n列),第i行j列的元素是aij,即:A=(aij)m×n定义A的转置为这样一个n×m阶矩阵B,满足B=(aji),即bij=aji(B的第i行第j列元素是A的第j行第i列元素)。记AT=B。直观来看,将A的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线作镜面反转,即得到A的转置。一个矩阵M,把它的第一行变成第一列,第二行变成第二列,…,最末一行变为最末一列,从而得到一个新的矩阵N,这一过程称为矩阵的转置。
从上述定义中我们可以明确以下信息,被转置的区域和转置后的区域都为一个矩形区域,且转置前的行列数刚好等于转置后的列行数。
如下表中,表1为转置前的,区域为A1:C10,表2为转置后的,区域为E1:N3。
二、转置的方法
1、手工操作一
先用光标选定拟转置的数据区域,再“复制”,点选原区域的最左上角位置,点右键,“选择性粘贴”,下面有个“转置”,选上后确定即可。
2、手工操作二
若要将表格中的行列标识项相互转置,可以使用TRANSPOSE函数按如下方法实现:
首先选中被粘贴区域A1:J3单元格区域,在编辑栏中输入公式:=TRANSPOSE (A1:C10)。按组合键,即可将原行标识项转置为列标识项.
函数说明:TRANSPOSE函数用于返回转置单元格区域,即将一行单元格区域转置成一列单元格区域,反之亦然。在行列数分别与数组行列数相同的区域中,必须将TRANSPOSE,输入为数组公式。使用TRANSPOSE可在工作表中转置数组的垂直和水平方向。
3、VBA操作一
利用Transpose函数进行区域的转置。
Dim myRng1,myRng2 As Range‘定义区域
Set myRng1=Worksheets("sheet1").Range("A1:C10")‘设置需要被转置的区域
numRows=myRng1.Rows.Count‘计算被转置区域的行数
numColumns= myRng1.Columns.Count‘计算被转置区域的列数
Set myRng2=Range("A1").Resize(numColumns,numRows)‘利用上面计算区域的行数与列数以及开始单元格,取得垂直粘贴区域
myRng2=Application.Transpose(myRng1)‘利用Transpose获得区域内容
4、VBA操作二
先定义转置函数如下:
Function MyTranspose(ByVal Arr)
Dim i&,j&
Dim ArrJG
ReDim ArrJG(LBound(Arr,2)To UBound(Arr,2), LBound(Arr,1)
To UBound(Arr,1))
For i=LBound(Arr,1)To UBound(Arr,1)
For j=LBound(Arr,2)To UBound(Arr,2)
ArrJG(j,i)=Arr(i,j)
Next j
Next i
MyTranspose=ArrJG
End Function
调用函数例子
Private Sub Accept_Click()
Dim rng1,rng2 As Range
Dim arr2,arr3 As Variant
Dim myRange As Range
‘设置对单元格区域的引用
Set myRange=Range("A1:C10")
arr2=myRange
arr3=MyTranspose(arr2)
Range(“E1”).Resize(UBound(arr3, 1),UBound(arr3, 2))=arr3
If Application.Dialogs(xlDialogPrinterSetup).Show Then
Worksheets(“通知书").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Worksheets(“企事业").Activate
End If
End Sub
5、宏方法
将方法一的过程,录制一个宏。实现操作的重现,宏代码(alt+F8,可以显示)如下:
'Macro4 Macro
‘宏由 User 录制,时间:2013/10/28
Range("A1:C10").Select
Application.CutCopyMode=False
Selection.Copy
Range("E1").Select
Selection.PasteSpecial Paste:=xlPasteAll,Operation:=xlNone, SkipBlanks:= _
False,Transpose:=True
End Sub
三、小结
上述方法都能达到将数据区域转置的要求,且难易程度,可操作性,使用场合均有所不同,此外适用的用户群也不一样。
方法一:通过图形化操作,方便实用,适合于普通用户。但是不能批量使用,也只能通过人工获得相关的转置区域与被转置区域。且不能复用于程序。
方法二:适用于对excel函数比较清楚的财会人员,能比较快地达到目的,一旦熟练使用便可达到相关目的。与方法一相比较,方法一为WINDOWS下的图形化配置,方法二就是命令行设置。
方法三:程序可以复用,转置区域与粘贴区域不限于鼠标选取,可以由程序设定。
方法四:效果与方法三类同,区别就是自己写区域与利用代码自己写转置算法,个人倾向还是用方法三。
方法五:此方法仅仅是一个转置的方法,因为宏主要是作用于重复操作。在转置方面不能重新选定粘贴区域。此外可以将宏的代码复用于程序。同样也是新增一种代码实现的方法。
作者简介:陈彪(1968-),男,海南万宁人,主任科员,现供职于中国人民银行海口中心支行。