基于Sheet1单元格值将数据迁移至Sheet2的公式实现需求
需求与解决方案
原始数据(Sheet1)
| Column1 | Column2 |
|---|---|
| 00003002300048421607 | 09 008A00 |
| 00003002300048414074 | 09 013A00 |
| 00003002300048415880 | 30 001A00 |
| 00003002300048418713 | 30 001A00 |
| 00003002300048416955 | 30 002A00 |
需求说明
需通过公式实现:当Sheet1中Column2单元格的前两位数字小于13(01-12)时,将该行数据对应迁移至Sheet2的对应位置。
解决方案
方法1:适用于Excel 365/2021(支持动态数组)
在Sheet2的A2单元格输入以下公式,公式会自动填充所有符合条件的行:
=FILTER(Sheet1!A:B, --LEFT(Sheet1!B:B,2) <13, "")
方法2:兼容旧版Excel(无动态数组支持)
- 在Sheet2的A2单元格输入数组公式,输入完成后按
Ctrl+Shift+Enter确认:
=IFERROR(INDEX(Sheet1!$A:$A, SMALL(IF(--LEFT(Sheet1!$B:$B,2)<13, ROW(Sheet1!$B:$B)-1), ROW(A1))), "")
- 将A2单元格的公式向右拖动到B列,匹配Column2的数据;
- 选中Sheet2的A2:B2区域,向下拖动填充公式,直到单元格显示空值为止。
公式说明
LEFT(Sheet1!B:B,2):提取Column2单元格的前两位字符;--:将提取的文本转换为数字,用于数值比较;FILTER/INDEX+SMALL:筛选并提取符合条件的行数据;IFERROR:处理无符合条件数据的情况,返回空值避免错误提示。
内容的提问来源于stack exchange,提问作者KN Suiteacc
相关产品推荐
相关产品推荐

