Reference 不能引用多个区域。
示例:
在2行输入公式=ROW(),值为2 (即公式所在行的行号 )
=ROW(C10) 引用所在行的行号 10
COLUMNS 函数
说明:返回或引用的列数。
语法:COLUMNS(array)
COLUMNS 函数语法:Array 必需。 要计算列数的数组、数组公式 或是对单元格区域的引用。
示例:
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
=COLUMNS(C1:E4) 引用 C1:E4 中的列数 值为:3
=COLUMNS({1,2,3;4,5,6}) 数组常量 {1,2,3;4,5,6} 中的列数。 其中有两行,每行 3 列,第一行中包含 1、2、3,第二行中包含 4、5、6。 值为:3
ROWS 函数
说明:返回引用或数组的行数。
语法:ROWS(array)
ROWS 函数语法参数:
Array 必需。 需要得到其行数的数组、数组公式 (数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号 ({ }) 中。按 Ctrl+Shift+Enter 可以输入数组公式。)或对单元格区域的引用。
示例:
=ROWS(C1:E4) 引用中的行数 值为 4
=ROWS({1,2,3;4,5,6}) 数组常量中的行数 值为2
综合示例
1、自定义函数:多工作表条件求和自定义函数
'函数格式举例:=ysum($A$4,1,COLUMN())
'1表示是引用单元格的所在列数
'COLUMN()是要汇总的项目的所在列数
'特别注意:汇总的工作表必须位于所有工作表最前面
Function ysum(X As Range, Y As Integer, Z As Integer)
On Error Resume Next '如果错误和错误处理程序出现在同一个程序中,从紧随该语句之后的语句处恢复运行
For i = 2 To Sheets.Count
ysum = ysum + WorksheetFunction.SumIf(Sheets(i).Columns(Y), X, Sheets(i).Columns(Z))
Next i
Application.Volatile '标记为易失性函数。只要包含此函数的工作表上任何单元格中出现计算过程,此函数都将重新进行计算。
End Function
2、自定义函数:多工作表求和自定义函数
'汇总同行同列单元格的工作表数据
Function ssum(X As Integer, Y As Integer)
On Error Resume Next '如果错误和错误处理程序出现在同一个程序中,从紧随该语句之后的语句处恢复运行
For i = 2 To Sheets.Count
ssum = ssum + Worksheets(i).Cells(X, Y).Value
Next i
Application.Volatile '标记为易失性函数。只要包含此函数的工作表上任何单元格中出现计算过程,此函数都将重新进行计算。
End Function
3、综合应用:看下图
单元格C12公式=IF(COLUMN($M12)-COLUMN()=LEN(FIXED($B12)*100)," ¥",MID(REPT(" ",11-LEN(FIXED($B12)*100))&FIXED($B12)*100,COLUMN()-2,1))
单元格C4公式=LEFT(RIGHT(" ¥"&ROUND($B4,2)*100,11-COLUMN(C:C)+3)) 或=LEFT(RIGHT(" ¥"&FIXED($B20)*100,14-COLUMN()))