【发布时间】:2009-12-16 00:48:54
【问题描述】:
大家好,你们这些了不起的人
我想做两件事
- 从一长串重复值中填充一个唯一的不同列表
- 提取用连字符分隔的文本的组成部分
我在不同的地方找到了解决这些问题的方法。
公式是
`{=INDEX(A2:A65000,MATCH(0,COUNTIF($B$1:B1,A2:A65000),0))}`
B 列是填充唯一列表的位置
以及从这里提取(分割文本):http://spreadsheetpage.com/index.php/tip/the_versatile_split_function/
Function ExtractElement(str, n, sepChar)
' Returns the nth element from a string,
' using a specified separator character
Dim x As Variant
x = Split(str, sepChar)
If n > 0 And n - 1 <= UBound(x) Then
ExtractElement = x(n - 1)
Else
ExtractElement = ""
End If
End Function
下面的公式演示了如何在公式中使用 ExtractElement 函数。
=ExtractElement("546-339-909-944",3,"-")
此公式返回 909,即字符串中的第三个元素(使用“-”作为分隔符)。
这些都很棒,解决了很多我想做的事情。但我也在尝试将这两个功能一起执行到另一列。
我有一列包含以下值:
香蕉 - 黄色 - 水果
太阳 - 黄色 - 星星
血 - 红色 - 液体
出口 - 红色 - 标牌
我试图得到结果为
黄色
红色
我希望用公式来完成这一切,并且不想使用辅助列。我不介意 VBA(如您所见,这里的第二个链接是 vba)。
感谢任何帮助。谢谢一百万!
斯里拉姆
【问题讨论】:
-
真的是用户要求在没有帮助列的情况下执行此操作吗?您可以随时隐藏该列。为这样一个特定的问题编写一个 UDF 非常简单......但是抽象这样一个独特的问题真的有用吗?
-
这些答案有帮助吗?
-
大家好,对不起,我还没来得及应用这些。我必须经历一个学习曲线才能检查这些。这些是我在工作中做的一些平行项目。因此,延迟。我真的很感谢你的帮助。我试图在没有帮助列的情况下完成所有这些工作的原因是因为这将是一项重复性工作,我想确保尽可能少地涉及重复性手动工作。