计算在另一个列表中找到一个列表项的频率

时间:2018-09-12 14:59:50

标签: excel excel-formula excel-2013

我有3张纸。

第1页有一列,其命名范围为 PayCode ,包含约200条记录,每条记录包含一个字符串。每个单元格仅包含一个特定的字符串,但是每个字符串都可以在多个单元格中找到。其中一些字符串表示是否有员工缺席。

表2 列出了六个感兴趣的唯一字符串,其命名范围为不存在。这六个字符串是可能的薪水代码,表示是否缺勤,这就是我在 PayCode 列中寻找的内容。

第3页上,我想计算在 PayCode 中从不存在中找到的字符串的次数。

我在网上找到的每条建议都是让我在 Sheet 2 上的列表旁边做一个COUNTIF,以计算每个列表项出现的频率,但是我只想计数一次 PayCode 列中的缺席列表项的总出现次数中的第3张中的一个单元格。

3 个答案:

答案 0 :(得分:2)

=COUNTIF(Paycode,INDEX(Absent,1))+COUNTIF(Paycode,INDEX(Absent,2))+COUNTIF(Paycode,INDEX(Absent,3))+COUNTIF(Paycode,INDEX(Absent,4))+COUNTIF(Paycode,INDEX(Absent,5))+COUNTIF(Paycode,INDEX(Absent,6))

此方法还可以,因为您只处理不在范围内的6个条目。基本上,如果对索引处理的每个条目都进行计数,然后为下一个条目添加值。因此,索引从1变为2到... 6。

更新

由于斯科特·克兰纳(Scott Craner)的评论,上述公式可以简化为:

=SUMPRODUCT(COUNTIF(Paycode,absent))

或者,如果您想要一个真实的数组公式,请使用CSE输入以下内容:

=SUM(COUNTIF(paycode,absent))

答案 1 :(得分:0)

我相信using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { Bird b = new Bird(); b.SetName("Tweety"); b.Chirp(); Bird b2 = new Bird(); b2.SetName("Woody"); b2.Chirp(); Console.ReadLine(); } } public class Bird { private string name; private double weight = 30.5d; public void SetName(string newName) { if (newName != null && newName.Length > 2) { System.Console.WriteLine("Bird already has a name"); this.name = newName; } else if (newName.Length < 3) { System.Console.WriteLine("New name must be longer than two chars"); } else { name = newName; } } public string GetnewName() { return this.name; } public void Chirp() { System.Console.WriteLine(name + " says chirp!"); } } } 实际上可能是解决方案。您只需要使用COUNTIF语句设置工作表3。这些语句将参考工作表2来标识您要查找的内容,然后参考工作表1来查找您要搜索的数据。

您在工作表3上的公式如下所示

COUNTIF

在这种情况下,=countif(Sheet1!A:A,Sheet2!A1)表示您正在搜索的区域,A:A是您要查找的特定参考。

选项2) 如果您的搜索字词可能被限制在更长的字符串中(例如,您正在寻找“苹果”,但字符串可能是“一天一个苹果...”),则可以使用以下公式:

A1

希望这会有所帮助!

答案 2 :(得分:-1)

听起来您可以使用频率功能进行某些操作。您可以在此处找到说明:

https://support.office.com/en-us/article/frequency-function-44e3be2b-eca0-42cd-a3f7-fd9ea898fdb9