我已经尝试了concatenate
功能,但它并没有真正有用。
我正在努力完成,所以这是截图/图片
基本上我需要能够为分数输入数据,然后让单元格根据用户及相应图块的分数自动填充数据,我的困惑是如果/如果他们有多个用户则如何执行此操作在相同的瓷砖上。
答案 0 :(得分:0)
好的......我不知道你是否有Tile 1的机制知道它是Tile 1等,但我所做的是将数字放在同一个单元格中的另一张纸上。即在工作表Tiles
上,单元格B18
已1
。通过这种方式,我们可以引用该单元格而不是公式中的任何硬编码值...
我还决定,如果没有该分数的名称,那么我们只需要名称(例如Tile 1
)
因此,这些可以将公式的第一部分写入B18
并复制到范围B18:F31
:
=IF(Tiles!B18="","",IF(ISERROR(MATCH(Tiles!B18,$B$7:$H$7,0)),"Tile "&Tiles!B18,...))
这是做什么的:
Tiles
表格 - 如果相应的单元格为空,那么这不是图块,我们只是放""
MATCH
查看该分数是否由任何用户持有 - 如果未找到,则会出现错误,因此IF(ISERROR(...))
只返回磁贴名称...
是两个选项的来源...... 选项1 - Loooong公式
将...
替换为:
MID(IF($B$7=Tiles!B18,", "&$B$2,"")&IF($C$7=Tiles!B18,", "&$C$2,"")&IF($D$7=Tiles!B18,", "&$D$2,"")&IF($E$7=Tiles!B18,", "&$E$2,""),3,9999)
...并为您的22位玩家复制每个所需列的&IF($E$7=Tiles!B18,", "&$E$2,"")
部分。
所以单位是“如果玩家的得分与牌号相同,请给我”,名称“否则为空白”,我们将其加入&
运营商。
这包含在MID(...,3,9999)
中,所以我们在我们找到的第一个名称的开头摆脱了“,”(联合的IF
语句会给出例如“,Aaron,无限用户”)。 / p>
这个选项有点痛苦写(并阅读!)但它只需要做一次,公式可以复制和粘贴...
选项2 - VBA函数和数组公式
Public Function JOIN(rng As Variant, Optional separator = ", ") As String
JOIN = ""
Dim v As String
For Each c In rng
If IsObject(c) Then
v = c.Text
Else
v = c
End If
If v <> "" Then
If JOIN = "" Then
JOIN = v
Else
JOIN = JOIN & separator & v
End If
End If
Next c
End Function
此函数将连接一系列单元格的值或字符串数组。将它与数组公式一起使用(使用 Ctrl + Shift + Enter 在Excel中输入)意味着我们可以进行条件连接... <登记/>
所以...
变为:
JOIN(IF($B$7:$H$7=Tiles!B18,$B$2:$H$2,""))
为此,将根据图块编号检查评分范围$B$7:$H$7
中的每个值。如果不匹配,我们返回“”,否则返回相应的名称(范围$B$2:$H$2
)。这将为我们提供一系列空格和名称JOIN
将加入......
此选项表示启用宏的工作簿并使用“更复杂”的数组公式。但阵列公式很棒,我建议每个人都和他们一起玩;-)。 cpearson有一个很好的介绍:http://www.cpearson.com/excel/arrayformulas.aspx
玩得开心!