ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何在3行3列表格中找到指定内容的单元格位置?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-11-4 09:38 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请高手帮忙,助我实现布阵自动化!
如图所示,例如,在K列手写玩家的名字,然后在L列自动显示表格中该玩家所在进攻阵型中的单元格位置B6,M列显示进攻阵型的主将名字{=LEFT(B6,FIND("(",B6)-1)},N列显示防守阵型位置,O列显示防守阵型主将{=LEFT(F10,FIND("(",F10)-1)}。然后在H列用字符串累加的方式自动显示出来{=K9&":"&M9&","&O9}。只有阵型表格和K列是手动编辑,其他列是自动显示。


现在最头痛的问题就是怎样在左边的两个3行3列表格中找到对应玩家所在的单元格位置B6和F10?

QQ截图20171104093327.png


在3行3列表格中找到指定内容的单元格位置.rar (7.48 KB, 下载次数: 9)

TA的精华主题

TA的得分主题

发表于 2017-11-4 09:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
自定义函数。 在3行3列表格中找到指定内容的单元格位置.zip (12.97 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2017-11-4 11:08 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-11-4 11:10 | 显示全部楼层
本帖最后由 hcm19522 于 2017-11-4 11:14 编辑

L9{=ADDRESS(MAX(IF(ISERR(FIND(K9,B5:F7)),,ROW(B5:F7))),MAX(IF(ISERR(FIND(K9,B5:F7)),,COLUMN(B5:F7))),4)
M9=LEFT(INDIRECT(L9),FIND("(",INDIRECT(L9))-1)
N9 :B5:F7改B10:F12
O9=LEFT(INDIRECT(N9),FIND("(",INDIRECT(N9))-1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-11-6 11:28 | 显示全部楼层

2楼大神和4楼大神的方法都能实现,相比之下,我选择2楼大神的宏,可以一步搞定,不需要多分2列来查找位置,还需要有一定的编程基础才能看得懂,高大上!

不过有两个问题:
1、进攻和防守顺序有可能会混乱。例如,邱胤:张飞,曹植。2楼大神的方法就显示成了:邱胤:曹植,张飞。
2、如果进攻阵型没有上将,只在防守阵型上将,就会只显示一个。例如:上班:  ,貂蝉。大神的方法显示为上班:貂蝉。不看阵型就会分不清是在进攻阵还是防守阵,分派下去就会造成混乱。

对于第一个问题,好像是FIND函数查找顺序所致,先把表格中的B列遍历完之后才往后面列查找,所以会先找到防守阵里的曹植,再找到进攻阵里的张飞。
为了解决这个问题,我还是按老办法把表格分成2个3行3列分别处理。L列查找进攻阵型3行3列表格,M列查找防守阵型的表格,然后再加起来,完美解决!

对于第二个问题,可以优化一下累加字符串,我用IF函数判断一下就好,完美解决!

再次感谢两位大神的帮助!
附上附件供大家参考。

两个3行3列[已解决].rar (13.87 KB, 下载次数: 2)

TA的精华主题

TA的得分主题

发表于 2017-11-6 12:51 | 显示全部楼层
本帖最后由 准提部林 于 2017-11-6 12:52 编辑

L4.數組公式:
=TRIM(LEFT(SUBSTITUTE(INDIRECT(TEXT(MIN(ROW($5:$7)/1%+ISERR(FIND(K4,B$5:F$7))*9000+COLUMN(B:F)),"!R0C00"),),"(",REPT(" ",9)),9))
 
M4同套路
 
 

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-11-6 13:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 准提部林 于 2017-11-6 13:22 编辑

Function TEST(xR1 As Range, xR2 As Range) As String
Dim xR As Range
For Each xR In xR1
      If InStr("|" & xR, xR2) > 1 Then TEST = Split(xR, "(")(0): Exit For
Next
End Function

公式:=test(B$5:F$7,K4)
  =IF(test(B$5:F$7,K4)="","  ",test(B$5:F$7,K4))&","&test(B$10:F$15,K4)


评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-3 15:07 , Processed in 0.046064 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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