Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel电子表格中计算年长兄弟姐妹的数量_Excel - Fatal编程技术网

在Excel电子表格中计算年长兄弟姐妹的数量

在Excel电子表格中计算年长兄弟姐妹的数量,excel,Excel,我有一份青少年成长的纵向电子表格 ID | CollectionDate | DOB | MOTHER ID | Sex 1 | 1Aug03 | 3Apr90 | 12 | 1 1 | 4Sept04 | 3Apr90 | 12 | 1 1 | 1Sept05 | 3Apr90 | 12 | 1 2 | 1Aug03 | 21Dec91 | 12

我有一份青少年成长的纵向电子表格

ID | CollectionDate | DOB      | MOTHER ID | Sex
1  | 1Aug03         | 3Apr90   | 12        | 1
1  | 4Sept04        | 3Apr90   | 12        | 1
1  | 1Sept05        | 3Apr90   | 12        | 1
2  | 1Aug03         | 21Dec91  | 12        | 0
2  | 4Sept04        | 21Dec91  | 12        | 0
2  | 1Sept05        | 21Dec91  | 12        | 0
3  | 1Aug03         | 30Jan89  | 23        | 0
3  | 4Sept04        | 30Jan89  | 23        | 0
这是一个关于我的数据是如何格式化的示例,以及我拥有的一些变量。正如您所看到的,由于它是纵向的,每个个体都有多个测量值。在实际数据库中,每个人超过10次测量,超过250次

我想做的是输入一个值,表示每个人拥有的哥哥和姐姐的数量。这就是为什么我将母亲ID(因为它代表了基因关联性)和性别包括在内。这些新的变量列只会说明每个人有多少个不同性别的兄妹。有没有一个公式可以让我快速做到这一点

=COUNTIFS($B:$B,"<>"&$B2,$H:$H,$H2,$AI:$AI,$AI2,$J:$J,"<"&$J2)

=COUNTIFS($B:$B,“”&$B2,$H:$H,$H2,$AI:$AI,$AI2,$J,“您需要这样一个公式(例如,第2行):


=COUNTIFS($A:$A,“&$A2,$E:$E,$E2,$D:$D,$D2,$C:$C,”我有一个可能的解决方案。它包括添加两列——一列为“#年长的兄弟姐妹”列,另一列为“唯一的?”。下面是我目前的所有标题:

  • A--ID
  • B--收款日期
  • C——DOB
  • D--母亲ID
  • E——性
  • F--#兄妹
  • G——独一无二
在G2中,我添加了以下公式:

    =IF(A2=A1,0,1)
    =COUNTIFS(G:G,"=1",D:D,"="&D2,C:C,"<"&C2)
只要数据是按ID排序的,对于每个唯一的人只会显示一次“1”

在F2中,我添加了以下公式:

    =IF(A2=A1,0,1)
    =COUNTIFS(G:G,"=1",D:D,"="&D2,C:C,"<"&C2)

=COUNTIFS(G:G,“=1”,D:D,“=”&D2,C:C,”使用此公式创建一个名为Distinct的列

=1/COUNTIF([ID],[@ID])
然后你可以找到所有像这样的0性别的兄弟姐妹

=SUMPRODUCT(([DOB]>[@DOB])*([MOTHERID]=[@MOTHERID])*([Sex]=0)*([Distinct]))
请注意,我将数据设置为表并使用表表示法。如果您不熟悉,[COLUMNNAME]指的是整列,[@COLUMNNAME]指的是当前行中该列中的值。如果您处理的是列a,则类似于说$a:$a和A2

第一个公式为您提供了一个要计数的值,该值对于特定ID始终为1。因此,ID=1有三行,每行的Distinct值将为.33333。当您将三行相加时,将得到1。这类似于Sql术语中的SELECT Distinct

对于DOB大于当前DOB、母亲与当前母亲相同且性别为零的每一行,SUMPRODUCT公式求和[不同]


这是为关系数据库而不是电子表格设计的问题。如果进行了适当的规范化,您可以编写一个简单的SQL查询来给出您的答案。您可以确定它们的数量。获取它们的ID列表是为关系数据库而不是电子表格设计的问题。:DSo现在唯一的问题是计算出生日期之前发生的次数,而不是计算个体,因为每个个体都有多个测量值。嗯?我的公式还检查他们是否与被检查者有相同的母亲和性别。我的公式也检查相同的母亲id和个体的性别,但假设我们使用的是id我上面提供的例子中的数字2。如果1=男性,0=女性,它将报告id#2有3个哥哥而不是1。哦,重复了相同的id。我认为每行代表不同的人。抱歉,必须更正我的公式…更正。