ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2760|回复: 12

[已解决] 如何将两列间隔的相同项目的数据,根据条件引用至另外一列

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-4 16:00 | 显示全部楼层 |阅读模式
如何实现  J K L列的数据自动引用填充,求求各位大神啦,大神们最靓了

示例.png

示例.zip

9.56 KB, 下载次数: 9

示例

TA的精华主题

TA的得分主题

发表于 2019-11-4 16:43 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-11-4 16:44 | 显示全部楼层
单位=INDIRECT(TEXT(SMALL(IF($J$1=$C$3:$F$12,1+ROW($3:$12)*100,9^6),ROW(A1)),"R00C00"),0)&""
业绩比例、业绩金额=INDIRECT(TEXT(SMALL(IF($J$1=$C$3:$F$12,COLUMN(D:G)+ROW($3:$12)*100,9^6),ROW(A1)),"R00C00"),0)&""下拉右拉

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-4 17:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
示例22.rar (10.19 KB, 下载次数: 15)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-4 19:29 | 显示全部楼层
Sub 傻不愣登的代码()
Dim arr, i, b, brr(1 To 100, 1 To 3)
arr = Range("a1").CurrentRegion
For i = 3 To UBound(arr)
If Cells(i, 3) Like "*张三*" Then
    b = b + 1
     brr(b, 1) = arr(i, 1)
     brr(b, 2) = arr(i, 4)
     brr(b, 3) = arr(i, 5)
  End If
  If Cells(i, 6) Like "*张三*" Then
     b = b + 1
     brr(b, 1) = arr(i, 1)
     brr(b, 2) = arr(i, 7)
     brr(b, 3) = arr(i, 8)
  End If
Next
[j3].Resize(b, 3) = brr
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-4 19:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-4 19:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 huacuo1118 于 2019-11-4 20:39 编辑

非常完美,完全实现,太感谢了,这个公式值得我好好学习一段时间了

...行数多了之后,单位编号就出错了,把不想干的也引用进来了,能不能再帮看一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-4 19:47 | 显示全部楼层
问山 发表于 2019-11-4 16:44
单位=INDIRECT(TEXT(SMALL(IF($J$1=$C$3:$F$12,1+ROW($3:$12)*100,9^6),ROW(A1)),"R00C00"),0)&""
业绩比 ...

这个公式我复制后显示#VALUE,数组之后显示空格,不过还是非常感谢大神的帮忙,非常感谢!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-4 19:49 | 显示全部楼层
1055751654 发表于 2019-11-4 19:29
Sub 傻不愣登的代码()
Dim arr, i, b, brr(1 To 100, 1 To 3)
arr = Range("a1").CurrentRegion

代码太厉害了,会写打码的都是牛人啊,非常感谢

TA的精华主题

TA的得分主题

发表于 2019-11-4 20:06 | 显示全部楼层
本帖最后由 1055751654 于 2019-11-4 20:46 编辑
huacuo1118 发表于 2019-11-4 19:49
代码太厉害了,会写打码的都是牛人啊,非常感谢

不厉害,我想一下把李四王二麻子也弄出来,弄出来了,虽然代码打的烂,但也要保持S形的身材
Sub 傻不愣登的代码()
Dim arr, i, b, brr(1 To 100, 1 To 3), bb, xx
[j3:r100].ClearContents
arr = Range("a1").CurrentRegion
For i = 3 To UBound(arr)
  If Cells(i, 3) Like "*张三*" Then
    b = b + 1
     brr(b, 1) = arr(i, 1)
      brr(b, 2) = arr(i, 4)
       brr(b, 3) = arr(i, 5)
        End If
         If Cells(i, 6) Like "*张三*" Then
         b = b + 1
         brr(b, 1) = arr(i, 1)
        brr(b, 2) = arr(i, 7)
     brr(b, 3) = arr(i, 8)
  End If
Next
[j3].Resize(b, 3) = brr
   For i = 3 To UBound(arr)
    If Cells(i, 3) Like "*李四*" Then
     bb = bb + 1
      brr(bb, 1) = arr(i, 1)
       brr(bb, 2) = arr(i, 4)
        brr(bb, 3) = arr(i, 5)
         End If
        If Cells(i, 6) Like "*李四*" Then
       bb = bb + 1
      brr(bb, 1) = arr(i, 1)
     brr(bb, 2) = arr(i, 7)
    brr(bb, 3) = arr(i, 8)
  End If
Next
[m3].Resize(bb, 3) = brr
  For i = 3 To UBound(arr)
   If Cells(i, 3) Like "*王二麻子*" Then
    xx = xx + 1
     brr(xx, 1) = arr(i, 1)
      brr(xx, 2) = arr(i, 4)
       brr(xx, 3) = arr(i, 5)
        End If
       If Cells(i, 6) Like "*王二麻子*" Then
      xx = xx + 1
     brr(xx, 1) = arr(i, 1)
    brr(xx, 2) = arr(i, 7)
   brr(xx, 3) = arr(i, 8)
  End If
Next
[p3].Resize(xx, 3) = brr
End Sub




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-19 13:54 , Processed in 0.052509 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表