我有一个由名称存在的数据列,可能包含也可能不包含姓氏前缀。这些前缀可以存在多个单词。我有一个所有可能的前缀列表,但现在我需要拆分前缀和姓氏,并用数据创建2列。
我所做的是编写如下的excel公式:
=IF(
RIGHT(A1;7) = " van de"
;
RIGHT(A1;6)
;
IF(
RIGHT(A1;4) = " van"
;
RIGHT(A1;3)
;
IF(
RIGHT(A1;3) = " de"
;
RIGHT(A1;2)
;
--Insert more nested If statements here--
)
)
)
姓氏的数据如下所示:
Name1 van de
Name1 van
Name1
Name1 Name2 van
Name1-Name2 Name3 van de
Name1 Name2 Name3
我想要的是什么:
OriginalName | Name | Prefix
-----------------|--------|----------
a b | a | b
a b c | a | b c
首先,这是一种非常低效的方法,但我自动创建了这个公式,因此不再是一个问题。现在我发现那里可以有嵌套的If语句的限制,我必须超过这个限制。
我该如何解决这个问题?
我有一个带有可能前缀的数组。也许这会有所帮助吗?
答案 0 :(得分:2)
将您的列表 按最短姓氏的顺序排列 。我把我放在E1:E3。
然后使用这个数组公式:
Private Sub Form_Load()
Test1
End Sub
Sub Test1()
MsgBox "Test1"
End Sub
然后获得姓氏:
class MyCassTest extends FlatSpec with BeforeAndAfter {
var spark: SparkSession = _
before {
val sparkConf: SparkConf = new SparkConf()
spark = SparkSession.
builder().
config(sparkConf).
master("local[*]").
getOrCreate()
}
after {
spark.stop()
}
"myFunction()" should "return 1.0 blab bla bla" in {
val sc = spark
import sc.implicits._
// assert ...
}
}
作为一个数组公式,他们需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。如果操作正确,那么Excel会将https://graph.facebook.com/v2.6/?fields=og_object{comments}
&id=<YOUR_URL>
&access_token=<YOUR_TOKEN>
放在公式周围。
答案 1 :(得分:2)
我假设您想要将“van”和“de”前缀与名称的其余部分分开。如果我误解了,请提供更多关于您的问题/问题的例子......
以下解决方案需要帮助列来确定“前缀”的开始位置,但您可以在必要时隐藏它:
首先,将我的值放在A8:A9
( van; de )的任意位置,并将其命名为prefix
,以便在以下公式中引用它。
C1
中的公式是数组公式(使用 Ctrl + Shift + Enter < / KBD> 的):
=MIN(IF(ISNUMBER(SEARCH(prefix,A1)),SEARCH(prefix,A1)))
D1
和E1
或正常公式中的公式:
=IF(C1>0,LEFT(A1,C1-2),A1)
=IF(C1>0,MID(A1,C1,LEN(A1)),"")
答案 2 :(得分:1)