首页 > 解决方案 > 如何在 Excel 中比较两个具有优先级的文本值?

问题描述

我有两个列表,都包含这 4 个文本值:“大陆”、“岛屿”、“城市”和“DP”。我试图创建一个函数来检查每行中 2 的组合。但是我走到了死胡同,我想不出该怎么做。彼此之间的优先级是:城市<大陆<岛屿<DP。一个例子是:

在此处输入图像描述

它的两列(“From”和“To”)充满了“Mainland”、“Island”、“City”和“DP”,形成如上所示的随机组合。我需要一种方法,在“类别”列中,在每一行中,按照城市 < 大陆 < 岛屿 < DP 原则,在每一行中显示优于其他的单词。例如,岛在城市上方,因此结合这两个,类别显示“岛”。

这个想法类似于 1<2<3 ,它一次比较两个组合并将较高的组合放入单元格

标签: excel

解决方案


在单元格中D2粘贴以下公式:

=IF(MATCH(B2,{"City","Mainland","Island","DP"},)>=MATCH(C2,{"City","Mainland","Island","DP"},),INDEX({"City","Mainland","Island","DP"},MATCH(B2,{"City","Mainland","Island","DP"},)),INDEX({"City","Mainland","Island","DP"},MATCH(C2,{"City","Mainland","Island","DP"},)))

现在向下复制公式。

但是,更好的方法是在值表的某处按顺序创建一个列表。例如:

Z1= 城市

Z2= 大陆

Z3= 岛

Z4= DP

现在,选择Z1:Z4并使用名称框来命名该范围:Order

现在公式可以简化为:

=IF(MATCH(B2,Order,)>=MATCH(C2,Order,),INDEX(Order,MATCH(B2,Order,)),INDEX(Order,MATCH(C2,Order,)))

更简洁的方法仍然是使用名称管理器 (Ctrl-F3) 将列表存储为命名公式,Order

={"City","Mainland","Island","DP"}

这样,您就不必用有序列表定义弄乱工作表。


推荐阅读