打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
REPT函数会用的人很多,但这样用的却不多


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,今天要分享的是一道比较特殊的题目,同时这道题目也比较重要,因为今天也会向大家介绍一个非常重要的函数应用。

题目是这样的:



这个类型的题目在工作中也比较常见。小伙伴们有什么好的方法吗?


01

REPT函数法



在单元格D2中输入下列公式,并向下拖曳即可。

=REPT("是",COUNTIFS($A$2:A2,A2,$C$2:C2,0)=0)

思路:

  • COUNTIFS函数按条件统计,注意,这里是在一个动态的数据区域中进行统计。在第一个“0”出现前,所有满足料号条件的都是有效数据

  • 接下来,直接使用REPT函数来对“是”重复显示。由于COUNTIFS()=0的结果是“TRUE”,因此“是”重复一次。这里,REPT函数替代了IF函数,书写上更加简洁


02

写一小段代码来解决这个问题吧。



完整代码如下:

Sub test()    Dim myarr As Variant, brr(), mydic As Object, i As Integer, j As Integer    myarr = Range("A1").CurrentRegion    Set mydic = CreateObject("scripting.dictionary")    ReDim brr(1 To UBound(myarr) - 1, 1 To 1)    For i = 2 To UBound(myarr)        If Not mydic.exists(myarr(i, 1)) And myarr(i, 3) = 0 Then            mydic(myarr(i, 1)) = i        End If    Next i    For i = 1 To mydic.Count        For j = 2 To mydic.items()(i - 1)            If myarr(j, 1) = mydic.keys()(i - 1) And myarr(j, 3) <> 0 Then                brr(j - 1, 1) = "是"            End If        Next j    Next i    [f2].Resize(UBound(brr), 1) = brrEnd Sub

第5行代码:重新定义动态数组范围

第6-10行代码:将数据装入字典并赋值。赋值为满足条件的数据所在行号

第11-17行代码:对数组brr赋值。凡是满足条件myarr(j, 1) = mydic.keys()(i - 1) And myarr(j, 3) <> 0,都对数组brr对应位置的数据赋值

本期内容练习文件提取方式:

链接:https://pan.baidu.com/s/1w1JE5Z1SzX6sIvX_Ifyxgg?pwd=ueer

提取码:ueer


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用数组作为字典键值,实现数据快速排重及快速回填
利用数组和字典,实现两级下拉菜单的录入方式
字符数组清空
excel拆分合并技巧:将总表拆分成工作表的方法
VBA入门51:用数组删除行
VBA中的Ubound函数 | VBA实例教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服