打开APP
userphoto
未登录

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

开通VIP
太聪明了!居然想到用一条简单的公式取代VBA

VIP学员的问题,希望将A列的数据依次放在每个工作表的B2,不用一个个粘贴。

这种问题,卢子的第一反应就是用VBA。

Sub 依次粘贴()

    Dim i%

        For i = 2 To Sheets.Count

            Sheets(i).[b2] = Sheet1.Range("A" & i)

        Next

End Sub

不过在我动手写VBA之前,打开了她的表格,看到了一条好公式,只是差一点点她就写成功了。借助INDEX+SHEET的结合,只是参数没写好。

INDEX这个函数想必都很熟悉,如果不熟也没关系,可以点文章进去了解:你要的INDEX教程来了,速看!

而SHEET估计90%的人都感觉很陌生,没用过。这个是新版本的函数,卢子以前知道,但是几乎没能用在实际问题上面。

这个系列总共有2个函数,SHEET和SHEETS。

SHEET的意思就是指这个工作表是第几个,比如你在第2个表输入公式,就返回2,不需要任何参数。

=SHEET()


SHEETS的意思就是指这个工作簿一共有多少个工作表,比如现在有12个工作表,也是不需要参数。

=SHEETS()


看到这里,你会发现SHEET就类似于VBA中的变量i,而SHEETS就类似于Sheets.Count。

介绍完用法,那就进入正题。

假如要依次引用A列的内容,可以用INDEX+ROW。

=INDEX(A:A,ROW(A2))


而现在是要在每个表的B2引用A列的内容,就可以用SHEET取代ROW,都是获得数字2、3、4……

现在要在表2到最后一个表输入同一个公式,可以选中表2,按住Shift键选中最后一个,这样就将要输入公式的所有表选中,输入一个公式就等同于所有表都输入公式。

=INDEX(Sheet1!A:A,SHEET())


解决完,突然想起了2年前写过的一篇文章:日报表累计的通用公式

里面关键内容我发上来,可以用SHEET代替原来需要将日期写在工作表A2的问题。

如何设置“本月累计”这个公式?

一个月有多少天,就写多少个公式,这样操作虽然可以做到,但不智能。

其实,这种也可以用一个通用公式搞定。选择2日,按住Shift键,选择最后一天的表格,在单元格输入公式,下拉,这样就可以。

=E4+OFFSET(INDIRECT((DAY($A$2)-1)&"日!F3"),ROW(A1),0)

以上公式是借助A2是标准日期的特点提取日,用SHEET就不用管A2是什么内容了。

=E4+OFFSET(INDIRECT((SHEET()-1)&"日!F3"),ROW(A1),0)

每个人都有自己的想法,平常多交流,也许就能从交流中学到更好的公式。

推荐:5个超好用的公式,收藏备用,特别是第1个太精妙了!

上文:这样用公式计算余额,我还是第一次见到


你用过这2个新函数吗?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
令人“迂回”的indirect函数
逆透视:二维表转一维表!你可能会用到!
EXCEL实用操作技巧 - postzsh的日志 - 网易博客
批量建立提取工作表名称,并实现在各工作表内随意跳转
excel中经常使用的9种求和方法,你都掌握没有?
中国行政单位三级联动清单,基本操作技巧足以完成!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服