Excel函数

发布 2022-06-29 11:15:28 阅读 2067

在excel中如何获取当日日期。

=today()

if(b4=""today())

我能做的是文字提醒,假设出货日期是在c列,d列为提醒列,你在d1中输入:

=if(c1=today(),到期请出货","用填充柄向下复制。

today()是调用系统时间,=if(c1=today(),到期请出货","的意思就是:如果c1的内容等于系统日期就显示“到期请出货”,否则显示为空。

问题是你得保证“出货日期”输入时是日期型,而且你的系统日期是正确的,如修改过系统日期又不想重新打开excel文件,可按f9刷新重算全表,以保证today()函数获取的是修改后的日期。

if(b4=""today())

if(a2<60,"不及格",及格")

if(a2<60,"不及格",if(a2<=90,"及格","优秀"))

if(a2<60,"差",if(a2<=70,"中",if(a2<90,"良",“优”))

if(sum(a1:a5)>0,sum(a1:a5),0)

此式就利用了嵌套函数,意思是,当a1至a5的和大于0时,返回这个值,如果小于0,那么就返回0。

a列前插入一空列,取名"序号"

a2输入公式=subtotal(3,$b$2:b2)

公式下拉复制。

筛选后a列序号会自动更新。

rows(统计行数的区域)例:=rows(a1:a5)

columns(统计列数的区域)=columns(a1:c1)

count(统计行数的区域)例:=count(a:a)

同时满足c1:c12不为空,及e1:e12不为空的行数有多少个?

sumproduct((c1:c12<>"e1:e12<>"

sumproduct((d6:d9000="三轮")*g6:g9000=g2))

sumproduct((d6:d9000="方拖")*g6:g9000=e2))

sumproduct((d6:d9000="中货")*g6:g9000=c2))

sumproduct((d6:d9000="小货")*g6:g9000=d2))

sumproduct((d6:d9000="大货")*g6:g9000=b2))

sumproduct((d6:d9000="多拖")*g6:g9000=f2))

sumproduct((d6:d9000="三轮")*a6:a9000<>"

sumproduct((b1:b100="系统")*a1:a100="解决"))

sumproduct((a1:a100="b")*n1:n100="男"))

第一张表"sheet1"中是数据。

另一张表"sheet2"做数据统计。

sheet2表中a1的公式为:=sumproduct((sheet1!a1:a10000<>"1)

sumproduct((sheet2!a1:a10000<>"1)

if(b6=""vlookup(b6,货物名称!$a$2:$b$5000,2,0))

统计指定列带有当日日期的行数。

1,2,3,=countif(b3:b65536,b2)

4,=sumproduct((d1:d9000="大货")*g1:g9000=e1))

4,=sumproduct((新车!d6:d9000="大货")*g6:g9000=e1)),a4)

上面两个是数组公式,按ctrl+shift+回车结束。

countif(b3:b23,b2),选择b4:b23区域创建列表,b2是当日日期。

if((a1*100+b1*10+c1)=0,""text((a1*100+b1*10+c1),"dbnum2]")元")&if(and(d1=0,e1=0),if((a1*100+b1*10+c1)=0,"零元","整",if(d1=0,""text(d1,"[dbnum2]")if(d1=0,""角")&if(e1=0,"整",text(e1,"[dbnum2]")分"))

以上的符号均为半角,而且if与括号之间也不能有空格。

excel中我们在单元格输入了阿拉伯数字之后,比如“1234567890”,忽然想起应该将它改成中文的大写格式,这时怎么办?删掉此内容重新一。

个字一个字地输入“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”?显然太麻烦了。假若并不是一个数字,而是很长的一列单元格,那我们还不麻烦死?

不过别担心,在excel中这不是个难题,至少有以下的两种方法可供您选择:

一、单元格格式法选中那些数字所在的单元格,点击右键,在弹出菜单中选择“设置单元格格式”命令,打开“设置单元格格式”对话框。点击“数字”选项卡,在左侧的“分类”列表中选择“特殊”,然后在右侧的“类型”列表中点击“中文大写数字”,如图1所示。确定后就可以了。

若点击上方的那个“中文小写数字”,可以得到“一十二亿三千四百五十六万七千八百九十”。很简单吧。

二、函数更正法在excel中还有一个隐含的函数可以解决这个问题。比如a1单元格中是数字“1234567890”,那么我们只要在其它单元格中输入公式“=numberstring(a1,2)”。回车后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。

如果我们将第二个参数“2”改成“1”或者“3”,那么我们就会得到“一十二亿三千四百五十六万七千八百九十”和“一二三四五六七**○”。

再假如这个问题不是发生在excel中,而是在word**中,那又该如何处理呢?当然,一种选择是将**数据复制到excel中,转换好了之后再复制到word**中。不过,我们还可以选择直接在word中完成此项任务的。

选中**中的数字“1234567890”,点击功能区“插入”选项卡“符号”功能组“编号”按钮,打开“编号”对话框。在“编号类型”列表中选择“壹,贰,叁”项目,如图2所示,确定后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。如果在列表中选中“一,二,三”项目,那么可以得到“一十二亿三千四百五十六万七千八百九十当然,如果您有域的编辑感兴趣的话,还可以在域符号中直接输入域**“= 1234567890 \*chinesenum3”,或“= 1234567890 \*chinesenum2”,然后按下“alt+f9”快捷键,就可以分别得到“一十二亿三千四百五十六万七千八百九十”或“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。

要是输入域**“= 1234567890 \*chinesenum3”,按下““alt+f9”快捷键”就可以得到“一二三四五六七**○”了。也挺简单的。

if(a1>0,substitute(text(a1,"[dbnum1]")点")&月if(or(a1=""a1=0),"substitute(text(a1,"[dbnum2]")点")&立方米")

if(a1>0,substitute(text(a1,"[dbnum2]")点")&立方米用vba自定义一个大写金额转换的函数,在公式中输入此函数名就可以了。

具体方法:按 alt+f1

f11 ,在vba编辑器菜单中点插入→模块,将下面的函数复制到插入的模块当中function cchinese(streng as string) as string

将阿拉伯数字转成中文字的程式例如:1560890 转成 "壹佰伍拾陆万零捌佰玖拾"。

程式限制为不可输入超过16个数字

if not isnumeric(streng) or streng like "*or streng like "*then

if trim(streng)

cchinese = exit function

end if

dim intlen as integer, intcounter as integer

dim strch as string, strtempch as string

dim strseqch1 as string, strseqch2 as string

dim streng2ch as string

streng2ch = 零壹贰叁肆伍陆柒捌玖"

strseqch1 = 拾佰仟拾佰仟拾佰仟拾佰仟"

strseqch2 = 万亿兆"

streng = cstr(cdec(streng))

intlen = len(streng)

for intcounter = 1 to intlen

strtempch = mid(streng2ch, val(mid(streng, intcounter, 1)) 1, 1)

if strtempch = 零" and intlen <>1 then

if mid(streng, intcounter + 1, 1) =0" or (intlen - intcounter + 1) mod 4 = 1 then

strtempch =

end if

else strtempch = strtempch & trim(mid(strseqch1, intlen - intcounter + 1, 1))

end if

if (intlen - intcounter + 1) mod 4 = 1 then

strtempch = strtempch & mid(strseqch2, (intlen - intcounter + 1) \4 + 1, 1)

if intcounter > 3 then

if mid(streng, intcounter - 3, 4) =0000" then strtempch = left(strtempch, len(strtempch) -1)

end if

end if

strch = strch & trim(strtempch)

next cchinese = strch

end functionfunction daxie(money as string) as string

实现货币金额中文大写转换的程序

程式限制为不可输入超过16个数字

dim x as string, y as string

const zimu = sbqwsbqysbqwsbq" '定义位置**

const letter = 定义汉字缩写

const upcase = 零壹贰叁肆伍陆柒捌玖拾佰仟万亿圆整角分" '定义大写汉字

if cdbl(money) >1e+16 then daxie = #value!":exit function '只能转换一亿亿元以下数目的货币!

x = format(money, "0.00") 格式化货币

y = for i = 1 to len(x) -3

y = y & mid(x, i, 1) &mid(zimu, len(x) -2 - i, 1)

next if right(x, 3) =00" then

y = y & z" '元整

else y = y & left(right(x, 2), 1) &j" &right(x, 1) &f" '元*角*分

end if

y = replace(y, "0q", 0") 避免零千(如:40200肆万零千零贰佰)

y = replace(y, "0b", 0") 避免零百(如:41000肆万壹千零佰)

y = replace(y, "0s", 0") 避免零十(如:204贰佰零拾零肆)

y = replace(y, "0j", 0") 避免零角

y = replace(y, "0f", 避免零分

do while y <>replace(y, "00", 0")

y = replace(y, "00", 0") 避免双零(如:1004壹仟零零肆)

loop y = replace(y, "0y", y") 避免零亿(如:210亿贰佰。

壹十零亿)

y = replace(y, "0w", w") 避免零万(如:210万贰佰壹十零万)

y = iif(x < 0.1, right(y, len(y) -3), y) '避免零几分(如:0.01零壹分;0.04零肆分)

y = iif(len(x) =5 and left(y, 1) =1", right(y, len(y) -1), y) '避免壹十(如:14壹拾肆;10壹拾)

y = iif(len(x) =4, replace(y, "0.",replace(y, "0避免零元(如:20.00贰拾零圆;0.12零圆壹角贰分)

for i = 1 to 19

y = replace(y, mid(letter, i, 1), mid(upcase, i, 1)) 大写汉字

next daxie = y

end function回到excel工作表中,若要转化a1单元格的数字,则可在其他任意单元格中输入公式 =cchinese(a1)。要转换成大写金额,则可在其他任意单元格中输入公式 =daxie(a1)。

excel所有excel函数

用途 返回一组数据与其平均值的绝对偏差的平均值,该函数可以评测数据 例如学生的某科考试成绩 的离散度。语法 edev number1,number2,参数 number1 number2 是用来计算绝对偏差平均值的一组参数,其个数可以在1 30个之间。实例 如果a1 79 a2 62 a3 45 a...

EXCEL函数教程 EXCEL日期函数和时间函数大全

显示当前年份函数 year now 显示当前月份函数 month now 显示当前日期函数 day now 显示当前星期函数 text now aaaa 显示当前准确时间 text now hh mm ss 显示当前年月日 today 显示当前年月日和时间 now 使用方法 直接在某单元格输入以上函...

excel函数

一 求字符串中某字符出现的次数 例 求a1单元格中字符 a 出现的次数 len a1 len substitute a1,a 二 如何在不同工作薄之间复制宏 1 打开含有宏的工作薄,点 工具 宏 m 选中你的宏,点 编辑 这样就调出了vb编辑器界面。2 点 文件 导出文件 在 文件名 框中输入一个文...