2023-01-25 10:00来源:m.sf1369.com作者:宇宇
S、a的值是什么?权当它们分别在A1、A2单元格
将结果输出到B1
Sub Sum()
S = Range("A1") - 1
a = Range("A2")
For j = 0 To S
temp = temp + a ^ j / Excel.Application.WorksheetFunction.Fact(j)
Next
Range("B1") = temp
End Sub
循环引用两种。
一种是直接引用,即自己引用自己。如A1=A1+1。这就是说A1单元格的公式引用了A1本身。
二是间接引用。如A1的公式引用了B1,而B1的公式又是引用A1。或者A1的公式引用了B1,而B1的公式引用C1,C1的公式引用A1等等。避免这种错误的引用最根本的还是修改公式本身,使其错误不存在。当然,若需要这样的引用,又不想出现这种提示,可以工具-选项-重新计算,选择手动重算,同时勾选“迭代计算”,并更改迭代次数为1。不过,这样一来,需要计算时要手工按F9。
循环引用有两种。
一种是直接引用,即自己引用自己。如A1=A1+1。这就是说A1单元格的公式引用了A1本身。
二是间接引用。如A1的公式引用了B1,而B1的公式又是引用A1。或者A1的公式引用了B1,而B1的公式引用C1,C1的公式引用A1等等。避免这种错误的引用最根本的还是修改公式本身,使其错误不存在。当然,若需要这样的引用,又不想出现这种提示,可以工具-选项-重新计算,选择手动重算,同时勾选“迭代计算”,并更改迭代次数为1。不过,这样一来,需要计算时要手工按F9。
EXCEL函数公式直接操作的是数组,完全可以达到循环的目的,可以理解为是封装了的循环函数,下面举两个例子来说明:
问题1: 条件求和 公式SUMIF,求序号大于3的数据的和。
a. 用函数公式就非常简单在C2单元格输入=SUMIF(A2:A6,">3",B2:B6)就能行到结果42
b. 如果用VBA就复杂多了,代码如下:
set sh = ActivateSheetsum = 0 # 保存求和的结果For i = 2 to 6 If sh.cells(i,1)>3 Then sum = sum + sh.cells(i,2) End ifNext i
问题2:条件查找公式VLOOKUP,依次把B列的名字在A列中查找,如果找到就标记为TRUE,如果没有找到就标记为FALSE.
a. 函数就非常简单了,只需要在C2输入公式=IF(ISERROR(VLOOKUP(B2,A:A,1,FALSE)),FALSE,TRUE),然后下拉下C4
b. VBA代码就比较复杂了,如下:
set sh = ActivateSheetFor i=2 to 4 isexist = FALSE For j=2 to 4 If sh.cells(i,2) = sh.cells(j,1) Then isexist = TRUE End If Next j sh.cells(i,3) = isexistNext
假设1到5循环,用MOD函数,公式为:
=MOD(ROW(A5),5)+1
下拉复制公式。
excel对重复值依次排序
方法/步骤:
1.
打开excel表格,在数据右侧设立重复次数列,调用countif函数
2.
设置好参数,统计数据在数据列范围中重复出现的次数
3.
通过下拉,计算所有数据各自重复出现的次数
4.
对重复次数进行升序或降序排列即可