由于公司启用了新标签,现在需要根据盘点产品数重新打印指定数量的标签。比如冰箱4台,洗衣机2台,那么就要在D2:D5数据区域复制4个重复的冰箱品名、2个重复的洗衣机品名,以此类推(图1)。手动复制容易出错且效率低,下面笔者以Excel 2019为例,介绍如何快速完成类似的数据复制操作。
(图1)
文| 俞木发
○ 方法1:REPT函数+Word
Excel的REPT函数可以按照定义的次数在一个单元格中重复显示文本,这相当于复制文本。因此我们可以先使用该函数填充品名,然后将填充的品名分离到每个单元格中。
1. 填充数据
先选中D列,右击并依次选择“设置单元格格式→对齐→文本控制→自动对齐”;再定位到D2单元格并输入公式“=REPT(B2&CHAR(10),C2)”,然后下拉填充,这样在D列对应的单元格中就可以看到指定填充数量的品名了(图2)。
展开全文
(图2)
公式解释:
这里的填充格式是将B2单元格中的数据和换行符号“CHAR(10)”连接在一起,填充数量则是C列的库存数,下拉公式后完成指定数量的填充。
2. 复制数据
图1的要求是将复制品名保存在不同的单元格中,因此需要分离数据。分离数据可以借助Word来完成,先在图2所示的窗口中复制D2:D5区域中的数据,接着切换到Word文档中,依次点击“开始→粘贴→保留源格式”,粘贴复制的数据,可以看到此时每个填充数据自动占用一行(图3)。
(图3)
3. 数据粘贴
在Word中全选并复制上述的数据,返回Excel窗口,定位到E2单元格,按下“Ctrl+V”粘贴,即可完成数据的分离操作(图4)。
(图4)
○ 方法2:公式法
上述的方法需要多次复制/粘贴才能完成。如果要实现数据的自动填充,我们还可以通过函数来完成。
1.设置辅助列
定位到A2单元格并输入数字“1”,再定位到A3单元格并输入公式“=A2+C2”,然后将其下拉填充,从A3单元格开始对库存数“累加+1”(图5)。
(图5)
2. 设置引用公式
定位到D2单元格并输入公式“=IF(VLOOKUP(ROW(A1),A:B,2,1)=0,"",VLOOKUP(ROW(A1),A:B,2,1))”,下拉填充,直到单元格显示为空,这样可以完成数据引用复制操作(图6)。
(图6)
公式解释:
这里先将“VLOOKUP(ROW(A1),A:B,2,1)”作为IF函数的判断条件,如果其值为0就显示为空,否则显示为引用值。在“VLOOKUP”函数中,使用行号“ROW(A1)”(即为1)作为要查找的值,公式下拉后会依次变为“ROW(A2)”(即为2)、⋯⋯。查找区域则为“A:B”列,查找的列号为查找区域的第2列(即品名)。
最后的“1”表示模糊查找,这样当查找值小于查找区域中第1列的数值时,即返回比查找值小的上一个数。比如在D3单元格中,由于要查找的值为“2”(ROW(A2)),2<5(即A3的值),所以在D3中会返回比“5”小的上一个数,即A2(为1)对应的品名即“冰箱Y-01”,以此类推。而在D14单元格中,由于查找值“13=A14”,所以返回值为“0”,通过IF函数判断则显示为空。
○ 方法3:VBA法
通过分析需求可以发现,在D列填充数据,实际上就是根据C列的库存数值进行复制/粘贴,因此我们可以通过VBA代码快速实现操作。
1. 下载代码
到“)。
(图7)
代码解释:
设置两个变量i和t,然后对C列数据进行遍历,并且根据得到的数量复制C列数据,最后将其粘贴到D列保存,从而完成指定数量的填充。
2. 运行代码
返回Excel窗口,依次点击“开发工具→宏”,在打开的窗口中选择“数据填充”,点击“执行”,这样在D列中就能自动完成数据的填充复制操作了(图8)。
(图8)
熟悉Power Query的朋友也可以使用该组件完成操作。只要先创建表,然后在打开的Power Query编辑器中添加自定义列,在自定义列里输入公式“={1..[重复次数]}”,完成重复数据填充,最后删除不必要的列,关闭并上载即可。 CF
原文刊登于2022 年 10 月 1 日出版《电脑爱好者》第 19 期
END
更多精彩,敬请期待……
特别声明
本文仅代表作者观点,不代表本站立场,本站仅提供信息存储服务。