首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Excel中比较具有优先级行的两个文本值?

如何在Excel中比较具有优先级行的两个文本值?
EN

Stack Overflow用户
提问于 2020-08-13 17:45:31
回答 2查看 101关注 0票数 2

我有两个名单,都充满了这四个文本价值:“大陆",”岛“,”城市“和"DP”。我试图创建一个函数来检查每一行中2的组合。但是我已经走到了死胡同,我想不出如何做it.The的优先顺序是:城市<大陆<岛< DP。一个例子是:

它的两列(“从”和“到”)充满了“大陆”、“岛屿”、“城市”和"DP“,形成了上面所示的随机组合。我需要一种方式来显示在“类别”列中,在每一行中,这个词比其他单词优越,遵循城市<大陆<岛< DP原则。例如岛在城市之上,所以在这2种组合中,类别显示“岛”。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-13 19:10:30

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

代码语言:javascript
复制
=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

现在可以将公式缩短为:

代码语言:javascript
复制
=IF(MATCH(B2,Order,)>=MATCH(C2,Order,),INDEX(Order,MATCH(B2,Order,)),INDEX(Order,MATCH(C2,Order,)))

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

代码语言:javascript
复制
={"City","Mainland","Island","DP"}

通过这种方式,您不需要将工作表与有序列表定义混淆在一起。

票数 1
EN

Stack Overflow用户

发布于 2020-08-13 22:42:44

您可以使用INDEX/AGGREGATE函数:

代码语言:javascript
复制
=INDEX({"City","Mainland","Island","DP"},AGGREGATE(14,0,(A2:B2={"City","Mainland","Island","DP"})*{1,2,3,4},1))

编辑:

如果值位于不相邻的列中:

代码语言:javascript
复制
=INDEX({"City","Mainland","Island","DP"};AGGREGATE(14,0,(((B2={"City","Mainland","Island","DP"})+(F2={"City","Mainland","Island","DP"}))>0)*{1,2,3,4},1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63400577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档