繁体   English   中英

Excel公式返回符合条件的范围,然后COUNTIF结果

[英]Excel formula to return a range matching a criteria, then COUNTIF the results

我一整天都在苦苦挣扎。 我有以下表格工作正常。 用户输入SUBJECT STATE,在这种情况下为肯塔基州的KY。 下面有一个名为“FullCompDataSet”的表,有3列。 我需要从这些数据中做两件事( 下面显示的输出以黄色突出显示 ):

A.计算FullCompDataSet中“ST / Prov”与SUBJECT STATE匹配的记录数。 我有这个公式:

=COUNTIF(FullCompDataSet[ST/Prov],SubjectStateAbbreviation)

B.返回每条记录的密钥。 我有这个公式:

{=SMALL(IF(FullCompDataSet[ST/Prov]=SubjectStateAbbreviation,FullCompDataSet[Key]),ROW()-18)}

所有这一切都运行良好,但现在不是简单地将主题状态与St / Prov匹配,而是我需要匹配的兼容状态列表(底部的示例列表以teal突出显示 )。 所以,我需要的新输出是:

A. 6(因为主题国家KY匹配KY,IN和TN州的记录)

B. 413,420,434,418,404,410

谁能建议我需要用于A和B的新公式? 我已经尝试过VLOOKUP / INDEX / MATCH,OFFSET,INDIRECT的各种组合但却无法获得它。 如果有更好的方式发布这个问题我很抱歉,我还在学习发帖。 谢谢!

FullCompDataSet表

多对多状态兼容性映射

在使用VBA之外我会使用以下方法; 它本质上是一个不同的表格算法或一组功能,你正在使用它们。 它将满足更改所请求匹配的尺寸,如您所见,它还具有可调节的输出设置。 你基本上需要执行7个不同的功能集(比听起来更容易)。 我把它们包含在图片中; 每个颜色集使用与注释中显示的相同的功能。 算法非常好用,并没有比vlookup更复杂。 我在更大更复杂的数据集上使用它。 您还可以通过分配多个键/标识集来使其适应传统词典的功能。 在此输入图像描述

如果您拥有最新版本的office 365,则可以使用以下两个公式来获得所需内容:

为了计数:

=SUM(IF(ISNUMBER(SEARCH(FullCompDataSet[ST/Prov],TEXTJOIN(" ",TRUE,IF(CompatState[State]=SubjectStateAbbreviation,CompatState[Compatible States],"")))),1,0))

对于小:

=SMALL(IF(ISNUMBER(SEARCH(FullCompDataSet[ST/Prov],TEXTJOIN(" ",TRUE,IF(CompatState[State]=SubjectStateAbbreviation,CompatState[Compatible States],"")))),FullCompDataSet[Key]),ROW(1:1))

两者都是数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter确认。 如果操作正确,Excel会在公式周围放置{}

TEXTJOIN公式于2016年2月在OFFICE 365中引入。它生成一串兼容的状态字符串。 SEARCH尝试查找匹配项是此字符串。 当它找到匹配时,它将传递给外部公式。 一个计数,一个找到正确的密钥。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM