Excel判断一个单元格内内容是否在另一列中存在(出现过)

2017-12-9 寒川 计算机

如何使用Excel判断一个单元格内内容是否在另一列中存在(出现过)?

使用countif函数可以实现此功能,如:判断A1中的内容是否在B列中出现过,用法如下:

=countif(B:B,A1)
返回0则表示不存在,返回大于0的数则表时A1中的内容在B列出现过。


标签: office excel

评论(2) 浏览(2886)

excel文件没多少内容文件却很大怎么办?如何快速删除excel表中隐藏对象?

2017-7-18 寒川 计算机

    经常会遇到这样的情况,我的excel表明明就一点点数据,但excel文件却非常大,达几百KB更有胜者能达上MB,一打开这样的excel文件,excel非常卡,往往影响正常操作,极度影响心情与体验。那么,是什么原因造成这种现像呢?。产生这种情况的原因,多半是因为在编辑Excel的过程中,很多人喜欢用全选--复制--粘贴的方法,导致原来表中隐藏的对象,被复制,越来越多。对象数量成集合增长,最后导致Excel文件超大,操作时很卡。

    excel文件没多少内容文件却很大怎么办?如何快速删除excel表中隐藏对?方法有两种,分别如下:

    1、对于隐藏的对象不是太多时感觉此种方法感觉还是挻快的。具体超作如下:F5或Ctrl+G,打开定位对话框,如下:

QQ截图20170718102306.jpg

点击“定位条件(S)...”,再选择“对象”->“确定”,如下图:

QQ截图20170718102306.jpg

确定后就能找到一些隐藏的对象了,然后按del键删除即可。

2、方法二,使用VB代码,方法如下:

开发工具,查看源代码,没有此功能?自己百度去啊。

QQ截图20170718102306.jpg

在空白框中输入如下代码:


'自动删除所有工作表的对象(图片,批注不做处理)
Sub test()
Dim count
Dim pic '图片13
Dim button '按钮8
Dim txtbox '文本框17
Dim comm '批注4
Dim other '其他未知
Dim msg '提示消息
Dim delpic
count = 0
pic = 0
button = 0
txtbox = 0
comm = 0
other = 0
respons = MsgBox("是否要清理表格中的图片,请谨慎操作!" & Chr(10) & _
"点击'是'清理图片,点击'否'跳过!", vbYesNo, "警告")
If respons = vbYes Then
delpic = True
Else
delpic = False
End If
For i = 1 To Sheets.count
For Each tb In Sheets(i).Shapes
If tb.Type = 13 Then
pic = pic + 1
If delpic Then
tb.Delete
End If
ElseIf tb.Type = 8 Then
button = button + 1
tb.Delete
ElseIf tb.Type = 17 Then
txtbox = txtbox + 1
tb.Delete
ElseIf tb.Type = 4 Then
comm = comm + 1
Else
other = other + 1
3
tb.Delete
End If
Next
'For Each tb In ActiveSheet.Shapes
'tb.Delete
'Next
Next
If delpic Then
count = button + txtbox + pic + other
Else
count = button + txtbox + other
End If
If count > 0 Or comm > 0 Or pic > 0 Then
msg = "共删除了" & count & "个对象;"
If button > 0 Then
msg = msg & Chr(10) & "按钮" & count & "个;"
ElseIf txtbox > 0 Then
msg = msg & Chr(10) & "文本框" & txtbox & "个;"
ElseIf pic > 0 And delpic Then
msg = msg & Chr(10) & "图片" & pic & "个;"
ElseIf other > 0 Then
msg = msg & Chr(10) & "未知对象" & other & "个;"
End If
If comm > 0 Then
msg = msg & Chr(10) & "有" & comm & "个批注没有处理;"
End If
If pic > 0 And Not delpic Then
msg = msg & Chr(10) & "有" & pic & "个图片没有处理;"
End If
Else
msg = "没有找到可以清理的对象!"
End If
MsgBox msg
End Sub
点击图中绿色的小箭头,根据弹出的对话框选择操作。编写的代码中,我对图片和批注进行了识别,以免删除有用的内容,懂VBA的,可以自己
修改,增加需要的内容。

等待片刻,弹出提示框,对象就删除了

标签: 计算机 office 学习 excel

评论(1) 浏览(4518)

Excel求某列值等于指定值对应另一列值的平均值

2017-4-6 寒川

Excel求某列值等于指定值对应另一列值的平均值,如下数据:

1.png

输入公式为:

=AVERAGE(IF($A$2:$A$35=$C2,B$2:B$35))
然后ctrl+shift+enter完成输入,一拉,就出来了。

2.png

最终效果:

3.png

标签: 计算机 office excel

评论(0) 浏览(4053)

excel无重复排序,如何提取排名前5的学生对应姓名

2011-8-16 寒川 计算机

数据内容如下图:

点击查看原图

 

定义A2:A11区域为姓名;定义B2:B1区域为总分
2003版本定义方法:插入---名称---定义
2007版本定义方法:公式选项卡---定义名称

C2位置输入
=INDEX(姓名,MATCH(LARGE(总分+1-ROW(总分)/100,ROW($A1)),总分+1-ROW(总分)/100,0))
输完公式后,请按ctrl+shift+enter

D2位置输入
=INDEX(总分,MATCH(LARGE(总分+1-ROW(总分)/100,ROW($A1)),总分+1-ROW(总分)/100,0))
输完公式后,请按ctrl+shift+enter

即得上图结果。

标签: 计算机 excel 无重复排序

评论(2) 浏览(15867)

excel表格中页码从第n页开始

2010-8-26 寒川 计算机

Excel表格中页码如何从第n页开始呢?比如我想打印现来直接就是5、6、7、……、n、……这样子,这个小小的问题把我还真难着了,很少遇到这种情况,但今天遇到了,百度一下,问题解决了,记下来,分享一下:
Excel2003:点击菜单 “ 视图 ”-“ 页眉和页脚 ” ,在 “ 页面设置 ” 对话框中的 “ 页面 ” 里左下角有个 “ 起始页码 ” ,在 “ 自动 ” 里输入 n;再文件—页面设置—页眉页脚—选择第一页,即可。

Ecel2010:点击“页面布局”->页面设置->起始页码就OK了,详见下图:

点击查看原图

点击查看原图

点击查看原图

标签: excel 页码 从第

评论(8) 浏览(45264)

利用宏从Word、Excel中提取Flash

2010-2-26 寒川 计算机

今天网上弄到个flash游戏,感觉挺不错的,但是flash被嵌在了excel中,想单独保存出来。百度了一下找到如下宏代码可以实现。
Sub CollectFlashFromExcel()
'
'
' http://huikon.cn
'

'
Dim tmpFileName As String, FileNumber As Integer
Dim myFileId As Long
Dim myArr() As Byte
Dim i As Long
Dim MyFileLen As Long, myIndex As Long
Dim swfFileLen As Long
Dim swfArr() As Byte
 

tmpFileName = Application.GetOpenFilename("office File(*.doc;*.xls),*.doc;*.xls", , "请选择一个包含Flash的Office文档")

 
If tmpFileName = "False" Then Exit Sub

myFileId = FreeFile

Open tmpFileName For Binary As #myFileId

MyFileLen = LOF(myFileId)

ReDim myArr(MyFileLen - 1)
Get myFileId, , myArr()
Close myFileId

Application.ScreenUpdating = False

i = 0

Do While i < MyFileLen

    If myArr(i) = &H46 Then

        If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then

            swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)

            ReDim swfArr(swfFileLen - 1)

            For myIndex = 0 To swfFileLen - 1

                swfArr(myIndex) = myArr(i + myIndex)

            Next myIndex
           Exit Do
        Else
           i = i + 3
        End If
    Else
       i = i + 1
    End If
Loop

 

myFileId = FreeFile

tmpFileName = Left(tmpFileName, Len(tmpFileName) - 4) & ".swf"

Open tmpFileName For Binary As #myFileId

Put #myFileId, , swfArr

Close myFileId


MsgBox "以" & tmpFileName & "名字保存"

End Sub

 

 打开(或新建)一个excel文档,将上述代码输入宏试图中,然后运行,再代开含有flash的excel或word文档就能将flash文档的从word、Excel中提取出来了。

标签: office flash word excel

评论(0) 浏览(8000)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap