# EXCEL难题一网打尽 无意间看到的 转过来 自己看看 （二）

NumberLen = Len(NumberStr)
DotLoc1 = InStr(1, NumberStr, ".", vbTextCompare)
DotLoc2 = NumberLen - DotLoc1
If DotLoc1 = 0 Then
NumberStr = NumberStr & "元整"
Else
NumberStr = Replace(NumberStr, ".", "元")
If DotLoc2 = 2 Then
NumberStr = NumberStr & "分"
If Mid(NumberStr, DotLoc1 + 1, 1) <> "零" Then
NumberStr1 = Mid(NumberStr, 1, DotLoc1 + 1) & "角"
NumberStr2 = Right(NumberStr, 2)
NumberStr = NumberStr1 & NumberStr2
End If
Else
NumberStr = NumberStr & "角整"
End If
End If
On Error Resume Next
UNumber = Replace(NumberStr, "零元", "")
End Function

=IF(TRUNC(H16)=H16,TEXT(H16,"[DBNum2]G/通用格式")&"元整",TEXT(TRUNC(H16),"[DBNum2]G/通用格式"&"元"))&IF(AND(TRUNC(H16)<>H16,RIGHT(TRUNC(H16*10))<>"0"),TEXT(TRUNC(MOD(H16*10,10)),"[DBNum2]G/通用格式")&"角","")&IF(AND(RIGHT(TRUNC(H16*10))="0",TRUNC(H16)<>H16),"零","")&IF(TRUNC(H16*10)<>H16,TRUNC(H16*10)=H16*10), "整","")

=IF(F10=0,"",CONCATENATE(IF(INT(F10)=0,"",TEXT(INT(F10),"[DBNum2]G/通用格式元")),IF(INT(MID(RIGHT(FIXED(F10,2,1),2),1,1))=0,IF(INT(MID(RIGHT(FIXED(F10,2,1),1),1,1))=0,"",IF(INT(F10)=0,"","零")),TEXT(INT(MID(RIGHT(FIXED(F10,2,1),2),1,1)),"[DBNum2]G/通用格式角")),IF(INT(MID(RIGHT(FIXED(F10,2,1),1),1,1))=0,"整",TEXT(INT(MID(RIGHT(FIXED(F10,2,1),1),1,1)),"[DBNum2]G/通用格式分"))))

=IF(A1<0,"负","")&IF(TRUNC(A1)=A1,TEXT(IF(A1<0,-A1,A1),"[DBNum2]")&"元整",IF(TRUNC(A1*10)=A1*10,TEXT(TRUNC(IF(A1<0,-A1,A1)),"[DBNum2]")&"元"&TEXT(RIGHT(A1),"[DBNum2]")&"角整",TEXT(TRUNC(A1),"[DBNum2]")&"元"&IF(ISNUMBER(FIND(".0",A1)),"零",TEXT(LEFT(RIGHT(A1,2)),"[DBNum2]")&"角")&TEXT(RIGHT(A1),"[DBNum2]")&"分"))

=IF(A1<0,"负","")&IF(TRUNC(A1)=A1,TEXT(IF(A1<0,-A1,A1),"[DBNum2]")&"元整",IF(TRUNC(A1*10)=A1*10,TEXT(TRUNC(IF(A1<0,-A1,A1)),"[DBNum2]")&"元"&TEXT(RIGHT(A1),"[DBNum2]")&"角整",TEXT(TRUNC(IF(A1<0,-A1,A1)),"[DBNum2]")&"元"&IF(ISNUMBER(FIND(".0",A1)),"零",TEXT(LEFT(RIGHT(A1,2)),"[DBNum2]")&"角")&TEXT(RIGHT(A1),"[DBNum2]")&"分"))

=IF(A1<0,"负",)&TEXT(TRUNC(ABS(A1)),"[DBNum2]G/通用格式")&"元 "&IF(ROUND(A1,3)=ROUND(A1,),"整",TEXT(RIGHT(TRUNC(A1*10),1),"[DBNum2]G/通用格式")&"角"&IF(ROUND(A1,3)=ROUND(A1,1),"整",TEXT(RIGHT(ROUND((A1*100),),1),"[DBNum2]G/通用格式")&"分"))

=IF(A1<0,"负","")&TEXT(TRUNC(ABS(A1)),"[DBNum2]")&"元"&IF(ISERR(FIND(".",TRUNC(A1,2))),"",TEXT(RIGHT(TRUNC(A1*10)),"[DBNum2]"))&IF(RIGHT(TRUNC(A1*10))="0","","角")&IF(LEFT(RIGHT(TRUNC(A1,2),3))=".",TEXT(RIGHT(TRUNC(A1,2)),"[DBNum2]")&"分","整")

=IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分","整")

Function RMB_DX(money As Variant)
Dim m1 As Long, n1 As Long, n2 As Integer, n3 As Integer
m1 = Application.WorksheetFunction.Round(money * 100, 0)
n1 = Int(m1 / 100)
n2 = Int(m1 / 10) - n1 * 10
n3 = m1 - n1 * 100 - n2 * 10
If n3 = 0 Then
RMB_DX = "整"
Else
RMB_DX = Application.WorksheetFunction.Text(n3, "[DBnum2]") & "分"
End If
If n2 = 0 Then
If n1 <> 0 And n3 <> 0 Then RMB_DX = "零" & RMB_DX
Else
RMB_DX = Application.WorksheetFunction.Text(n2, "[DBnum2]") & "角" & RMB_DX
End If
If n1 <> 0 Or m1 = 0 Then
RMB_DX = Application.WorksheetFunction.Text(n1, "[DBnum2]") & "元" & RMB_DX
End If
End Function

unction rmbdx(value, Optional m = 0)
'支持负数,支持小数点后的第三位数是否进行四舍五入处理
'默认参数为0,即不将小数点后的第三位数进行四舍五入处理
'redwin增改 2002-10-11
'Application.Volatile True
On Error Resume Next
Dim a
If value < 0 Then
a = "负"
Else
a = ""
End If
'当参数m不输入(默认为0)或为0时,小数点后的第三数不进行四舍五入处理
'当参数m为1或其它数值时,小数点后的第三数进行四舍五入处理
value = CCur(Abs(value))
If m = 0 Then
value = Fix(value) + (Fix((value - Fix(value)) * 100)) / 100
Else
value = Round(value, 2)
End If
strrmbdx = Application.WorksheetFunction.Text(Int(value), "[DBNum2]") & "元"
'防止出现零元的bug!
If value >= 1 Then
strrmbdx = strrmbdx
Else
strrmbdx = ""
End If
strBal = Str(value)
If Int(value) <> value Then
strLastvalue = Left(Right(strBal, 2), 1)
If strLastvalue = "." Then
strLastvalue = Right(strBal, 1)
strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角整"
Else
If strLastvalue = "0" And strLastvalue <> "0" Then
strLast = "零"
Else
'防止出现零角几分的bug!
If strrmbdx = "" And strLastvalue = "0" Then
'strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角"
strLast = ""
Else
If strrmbdx <> "" And strLastvalue = "0" Then
strLast = "零"
Else
strLast = Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "角"
End If
End If
End If
strLastvalue = Right(strBal, 1)
If strLastvalue = "0" Then
strLast = "整"
Else
strLast = strLast & Application.WorksheetFunction.Text(strLastvalue, "[DBNum2]") & "分"
End If
End If
strrmbdx = strrmbdx & strLast
Else
strrmbdx = strrmbdx & "整"
End If
rmbdx = a & strrmbdx
End Function

=IF(ISTEXT(C2),"","人民币："&TEXT(INT(C2),"[dbnum2]")&"元"&IF(INT(C2*10)-INT(C2)*10=0,"",TEXT(INT(C2*10)-INT(C2)*10,"[dbnum2]")&"角")&IF(INT(C2*100)-INT(C2*10)*10=0,"整",TEXT(INT(C2*100)-INT(C2*10)*10,"[dbnum2]")&"分"))
……还有很多方法编者没有收集。

RANK 是个排名函数 但有一个问题象上面有两个100分 也就是两并列第一 排名就从第三名开始没有第二名 也许这个 美国式的排名 中国式的排名 前面有两个一样的分数并列第一后是 第二名 怎样用函数实现.

{=SUM(IF(B1=LARGE(IF(LARGE($B$1:$H$1,COLUMN($A$1:$G$1))=IF(ISERROR(LARGE($C$1:$I$1,COLUMN($A$1:$G$1))),0,LARGE($C$1:$I$1,COLUMN($A$1:$G$1))),0,LARGE($B$1:$H$1,COLUMN($A$1:$G$1))),COLUMN($A$1:$G$1)),COLUMN($A$1:$G$1),0))}

=RANK(B1,$B1:$H1)+COUNTIF($B$1:B1,B1)-1

1.为A1命名为K
2.为A3:A250命名为XX

3.写公式=VLOOKUP(K,DATA,2,0)

4.隐藏A栏
**************************************************************************************
Sub 打印()
Application.ScreenUpdating = False '屏幕不更新
Dim c As Object '宣告c为对象,请准备空间
[xx].Select '选取变量范围
Set c = ActiveCell '设定c对象为作用单元格
Do Until IsEmpty(c.Value) '作Do循环直到无值时跳出
[k].Value = c.Value
Set c = c.Offset(1, 0) '设定c往下进一格再取主索引值
Sheets("Sheet2").PrintPreview '工作表直接打印改PrintOut
Loop
End Sub

1、在页面设置中将上、下边距，页眉、页脚均设为零，

2、、在文件----打印---属性---纸张----自定义中将纸张的

3、打印时可选1---200页，即可打印200人的工资条，一张a4可打10人

Ｃ２单元格剪切到Ｃ３，那么在工作表Sheet2中Ｃ３单元格中的公式就自动变为“＝Sheet1!C3+Sheet1!D2”

Sub auto_Open()
MsgBox "热列欢迎来海源,你吃饱了吗？"
If Application.InputBox("请输入操作权限密码:123") = 123 Then
Else
'.....(在这一步中,我想退出EXCEL,但无法实现请高手指点一二)
End If
End Sub

MsgBox "热列欢迎来海源,你吃饱了吗？"
If Application.InputBox("请输入操作权限密码:123") = 123 Then
Exit Sub
Else
Application.Quit
End If
End Sub

Sub auto_Open()
MsgBox "程香宙欢迎你的到来", vbQuestion, "联系电话：013838751304"
If Application.InputBox("请输入操作权限密码:", "系统登陆") = 123 Then
Else
MsgBox "密码错误,请重输", vbCritical + vbOKOnly, "你还有两次机会"
If Application.InputBox("请输入操作权限密码:", "系统登陆") = 123 Then
Else
MsgBox "密码错误,再给你一次机会!", vbCritical + vbOKOnly, "你还有一次机会"
If Application.InputBox("请输入操作权限密码:") = 123 Then
Else
MsgBox "你无权进入本系统!请向程香宙申请密码!", vbCritical + vbOKOnly, "你没有机会啦!"
Application.Quit
End If
End If
End If
End Sub

=sum((sheet1!$a$2:$a$101=$a2)*(sheet1!$c$2:$c$101="优")*1) ，按Ctrl+Shift+Enter ，但是这是用到了数组运算，请问数组运算的规则是什么，看到许多地方都可以用数组解决，但不知其所以然。帮助文件中也没说运算规则。如上式中为什么用*号？谢谢 解答：对于数组公式的含义 sum((sheet1!$a$2:$a$101=$a2)*(sheet1!$c$2:$c$101="优")*1)

1、(sheet1!$a$2:$a$101=$a2) 表示用 sheet1!$a$2:$a$101 区域中的每一个单元格中的内容与$a2 单元格的内容进行比较，如果相同结果为“True”，否则为“False”。
2、(sheet1!$c$2:$c$101="优")

3、最后一部分乘以1。是强制Excel将“True”或“False”转换为数值“1”或“0”，以便sum函数可以求和。
4、至于第一部分和第二部分之间的乘号（*)的目的是，如果第一部分或者第二部分有一个的结果是“False”，那么Excel将其转换为数值“0”，相乘结果为零，表示不在求和范围内。

AB...
11234567890
2ABABABCCCD
=SUBSTITUTE(A4,A$1,A$2)

if 超过7层如何办
1. 将七层之外的IF语句，放在另外的单元格内来处理，例：C5=if(if,...,(if...),B5))),B5单元格就是存放七层之外的IF语句。依此类推，可以实现在数据库语言中CASE语句的功能。
2. IF 函数的确有七层嵌套的限制。遇到七层嵌套还解决不了的问题，可以尝试用其它的函数组合和数组公式来解决；有时用 VBA 方案可以有很好的效果。

B1 = IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",C1))))))))
C1 = IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",D1))))))))
D1 = IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",E1))))))))
E1 = IF(A1=25,"Y",IF(A1=26,"Z","超出范围"))

3. 一个单元格也可以实现
=IF(A1=1,"A",IF(A1=2,"B",IF(A1=3,"C",IF(A1=4,"D",IF(A1=5,"E",IF(A1=6,"F",IF(A1=7,"G",IF(A1=8,"H",""))))))))&IF(A1=9,"I",IF(A1=10,"J",IF(A1=11,"K",IF(A1=12,"L",IF(A1=13,"M",IF(A1=14,"N",IF(A1=15,"O",IF(A1=16,"P",""))))))))&IF(A1=17,"Q",IF(A1=18,"R",IF(A1=19,"S",IF(A1=20,"T",IF(A1=21,"U",IF(A1=22,"V",IF(A1=23,"W",IF(A1=24,"X",""))))))))&IF(A1=25,"Y",IF(A1=26,"Z",""))(数组形式输入)。
4. 以一例：a1=1,2,3,4,5,6,7,8,9,10
b=if(a1=1,"一",if(a1=2,"二",if(a3=3，"三",.......if(a1=9,"九",if(a1=10,"十")))))),if超过7层不起作用，我该如何办

2、可以用自定义数字格式。也可以用=CHOOSE(A1+1,"一二三四五六七八九十")

..
=vlookup(SubjectTable,a1,2,false)可以有65536个，够了吧。其实，稍加改进，理论上，可以有达到你硬盘空间的个数。或用if和or的组合可以解决15个。

=IF(A16="","",IF(B16="","样办尚未交",IF(OR(B16="内部检查中",B16="数据查询中",B16="数据查询中"),CONCATENATE(IF(B16="内部检查中","品质检测中",""),IF(B16="数据查询中","图纸未确认",""),IF(B16="为不合格","需要修正","")),CONCATENATE(IF(C16="客户检查中","待客回复",""),IF(C16="合格","待P/O生产",""),IF(C16="取消","客户取消",""),IF(C16="为客户设变中","客户设变中",""),IF(C16="不合格","需要修正","")))))

{=COUNT(IF(A1:A30/2/2=INT(A1:A30/2),A1:A30))}

1、 我做了个宏，可惜在数据量大时（超过1000时）速度狂忙，各位帮我修改修改
Sub 检查重复项()
Dim i As Integer
Dim j As Integer
num = Selection.Cells.Count
For i = 1 To num
For j = i + 1 To num
If (Selection.Cells(i) = Selection.Cells(j)) Then
MsgBox Selection.Cells(i).Value
End If
Next j
Next i
MsgBox "检索完毕"
End Sub
2、 假设数据在B列

2、用上面的方法得到的随机数不会变化，如何做到想变就变？增加一个条件语句，即可达到此效果，公式如下： =IF(COUNTIF($A$1:$E$6,A1)=1,IF($G$1=1,RANDBETWEEN(1,500),A1),RANDBETWEEN(1,500)) G1为控制格，当在G1输入数字1，就开始变。变化后的数据有可能不惟一了，怎么办？把1清除即可！

1、选择要设置格式的单元格或单元格区域。
2、单击“格式”菜单中的“单元格”命令，然后单击“数字”选项卡。
3、在“分类”列表中，单击“自定义”选项。
4、在“类型”框中，编辑数字格式代码以创建所需的格式。

正数的格式　　　负数的格式　　　零的格式　　　文本的格式
#,##0.00　　　 [Red]-#,##0.00　　　0.00　　　"TEXT"@

(一)自动添加文本

(二)在自定义数字格式中使用颜色

(三)在自定义数字格式中使用条件格式

运算符　　　　含义
=　　　　　　 等于
>　　　　　　 大于
<　　　　　　 小于
>=　　　　　　大于等于
<=　　　　　　小于等于
<>　　　　　　不等于

(四)隐藏单元格中的数值

Sub 宏1()
'
' 宏1 Macro
' Dent 记录的宏 2002-2-16
'
Dim str1 As String
str1 = Str(ActiveCell.Value)
If Val(str1) < 0 Then
str1 = Abs(Val(str1)) & " 文字"
ActiveCell.Value = str1
ActiveCell.Font.Color = vbRed
End If
End Sub
2、用单元格格式解决： #,##0.00;[红色]-#,##0.00"文字"

Sheet1:客户名称、收款日期等字段名及相应数据

XX即是您所需要之范围
vba写在This Workbook
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
On Error GoTo 1: Target.Select
Range(Target.Value).Copy
Application.CutCopyMode = False
1
End Sub
**********************************************************************************
Sheet2任意储存格键入xx按ENTER
[比较一下并没有比筛选功能快],反而复杂
SHEET2随便贴张图

NumberString 这个函数是否一直存在但没有解释？NumberString(1234567890,1)就像自定格式[DBNum1]一样，它还有2的选择。其实这些特别用途的函数是否 中文板设计时特别隐藏。测试结果：
NumberString(1234567890,1) ＝ 一十二亿三千四百五十六万七千八百九十
NumberString(1234567890,2) ＝ 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
NumberString(1234567890,3) ＝ 一二三四五六七八九○
DateString()相信亦是一特别Lotus函数。
DATESTRING("23-Sep- 2002") = 2002年09月23日
DATESTRING("23Sep2002") = 2002年09月23日
DATESTRING("9/23/2002") = 2002年09月23日
DATESTRING("9-23-2002") = 2002年09月23日

Cancel = True
End Sub
(用法：打开Excel,按Alt+F11,调出VBE后,按Ctrl+r显示出工程资源管理器(默认此窗口应已显示),双击ThisWorkbook,在模块中粘入代码即可!要想打印你表,用截图软件即可.无最保险办法)。

A1为一定范围内的随机值，B1—B20为一组数，有无这样的函数来确定A2的值？

…………

={SUM((ISNUMBER(SEARCH("广东",$B$3:$B$13)))*($A$3:$A$13="股份制")*($C$3:$C$13))}

Word加启动密码

Sub autoexec()
Dim user
user = InputBox("请输入软件启动密码")
Else
MsgBox ("非法用户,将退出本程序.Wu")
Application.Quit
End If
End Sub

1. 将工作表取消保护；
2. 选定a1单元格，输入="测试"（注：黑体为实际输入内容，标点符号均为 英文输入法状态,下同）；
3. 单击工作表左上角的方框选定整个工作表；
4. 单击“格式”-“单元格”-“保护”项，将“锁定”和“隐藏”前的方框里的对号去掉；
5. 单击“插入”-“名称”-“定义”，当前工作表名称输入：公式保护，引用位置输入：=get.cell(4,indirect("rc",false)), 单击“添加”后“确定”；
6. 单击“格式”-“条件格式”，在“单元格数值”下拉框选定“公式”，后面的框内输入=公式保护 ，单击“格式…”，在图案标签内选浅绿色或者其它颜色“确定”，再“确定”；
7. 单击 “编辑”-“定位”-“定位条件…”，选定“公式”项“确定”再“确定”；
8. 重复步骤4，将“锁定”和“隐藏”前的方框里的对号选定；
9. 选定a1单元格，取消其内容，并重复步骤4，取消a1的锁定和隐藏属性；
10. 单击工具-保护-保护工作表，将工作表保护（也不必设密码）。再单击“工具”-“宏”-“停止录制”停止录制。再打开“工具”-“自定义”项，再“命令”标签栏内“类别”栏中找到“新菜单”并指定，在其右侧的命令框中的新菜单用鼠标按住拖到“工具栏”的“保护”项中的“保护工作表”下面放开，并单击右键将其命名为“公式保护”，将刚才录制名为“公式保护“的宏指定给它。至此，一个很有用的菜单项就作成了。 此后，只要你将鼠标移动到“工具”-“保护”-“公式保护”的位置，工作表将执行其所指定的宏，只要你工作表中输入了公式（以=开头），含有公式的单元格将自动变为浅绿色，提醒你和别人此处有公式，小心编辑，十分醒目。编辑完公式后再次运行该命令就可以此保护工作表并锁定公式，禁止改动。

1、=CHAR(64+COLUMN())
2、Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Selection.Columns.Column > 26 Then
Else
End If
MsgBox (tt)
End Sub
3、1的公式就变化一下：=IF(COLUMN()>26,CHAR(64+INT(COLUMN()/26)) & CHAR(64+MOD(COLUMN(),26)),CHAR(64+COLUMN()))
SUMIF函数
a1至A4是10,24,30,12.B1至B4是8,15,25,35.D1至D4是25,4,3,5.用SUMIF 第一参数选取A1:B4,第二参数是>20,第三参数选取D1:D4.它得出是7。它判断的是A1:A4 。我的要求是B1:B4 也跟着判断 , 也就要得出来得是12

1、
Sub ChangVal()
my1value = ActiveCell.Value
For Each a In Selection
my2value = a.Value
a.Value = my1value
ActiveCell.Value = my2value
End If
Next a
End Sub
2、用鼠标先选定单元格，点住单元格边框，并按住SHIFT键，然后托拽到隔壁单元格的后面一条边框处。你能看到被托拽部分会变成灰色的“工”字形，然后放手后，单元格就互换了。

1.已知"E4"为08011500(为文本格式﹐开始时间﹐意思为8月1日 下午15﹕00)﹐"G4"为08100900(为文本格式﹐结束时间﹐意思为8月10日 上午9点) 问﹕如何能得到开始时间到结束时间（17:00-08:00）的总小时数?
2. 如何得到开始时间到结束时间的节假日时数?(如5.1﹐10.1﹐星期六﹐星期天)

=IF(C2>A2,SUM(IF(WEEKDAY(C2-ROW(INDIRECT("1:"& C2-A2)),2)>5,1,0)),SUM(IF(WEEKDAY(A2-ROW(INDIRECT("1:"& A2-C2)),2)>5,1,0)))。这是一个数组公式，输入完成后按CTRL+SHIFT+ENTER结束。

1、编了个宏:
Sub aa()
Cells(1, 1) = Mid(ActiveCell.Formula, 2, 13)
End Sub

2、宏(测试通过)
Sub aa()
A = 2 '行'
B = 4 '列
LINE1:
If Cells(A, B) = "" Then
Exit Sub
Else
Cells(A, B + 1).Formula = "=" & Cells(A, B)
A = A + 1
GoTo LINE1:
End If
End Sub

Ａ１有三种变化，一、二、三；当Ａ１＝‘一’时，Ｄ１＝“　”；　Ａ１＝‘二’时，Ｄ１＝（Ｂ１＋Ｃ１）／３ ；　Ａ１＝‘二’时，Ｄ１＝（Ｂ１＋Ｃ１）／６ 。以上可以通过ＩＦ来完成 。可我希望的是：当Ｂ１或Ｃ１为空时，不论Ａ１为什么Ｄ１都为空，这样做得到么？

2、=IF(OR(B1="", C1="", A1="一"), "", IF(A1 = "二", (B1+C1)/3, (B1+C1)/6))
3、 如果考虑 A1 没有数据的话：=IF(OR(B1="", C1="", A1="一",A1=""), "", IF(A1 = "二", (B1+C1)/3, (B1+C1)/6))

1、=SUM(OFFSET(A1,,,ROW()-ROW(A1)))可以对A列数值自动求和。
2、=SUM(INDIRECT("R2C:R[-1]C",FALSE))
3、=SUM(INDIRECT("A2:A"&ROW()-1))

(>35 or <14) and <> 0 公式=COUNTIF(A:A,">35")+COUNTIF(A:A,"<14")-COUNTIF(A:A,"=0")
------------------（完）
• 0
点赞
• 1
收藏
• 0
评论
01-17
11-22 197
03-28 8429
10-23 1148
05-14 5万+
02-29 2813
05-15 152
02-15 1096
03-20 3万+

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助