我有一份青少年成长的纵向电子表格。
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
这是我的数据格式化方式以及我所拥有的一些变量的示例。如您所见,由于它是纵向的,每个人都有多个测量值。在实际数据库中,每个人和超过250个人有超过10个测量值。
我想要做的是输入一个值,表示每个人拥有的哥哥和姐姐的数量。这就是为什么我包括母亲ID(因为它代表遗传相关性)和性别。这些新的变量列只会说明每个人每个性别中有多少兄弟姐妹。有没有一个公式我可以用来快速做到这一点?
=COUNTIFS($B:$B,"<>"&$B2,$H:$H,$H2,$AI:$AI,$AI2,$J:$J,"<"&$J2)
答案 0 :(得分:0)
我有一个可能的解决方案。它涉及添加两列 - 一个用于&#34; #sounds兄弟姐妹&#34;和#34;唯一的?&#34;。所以这是我目前的所有标题:
在G2中,我添加了以下公式:
=IF(A2=A1,0,1)
拖了下来。只要数据按ID排序,这只会显示&#34; 1&#34;一次为每个独特的人。
在F2中,我添加了以下公式:
=COUNTIFS(G:G,"=1",D:D,"="&D2,C:C,"<"&C2)
拖了下来。它似乎对您提供的示例数据正常工作。
规定如下:
我希望这会有所帮助。
答案 1 :(得分:0)
使用此公式
创建名为Distinct的列=1/COUNTIF([ID],[@ID])
然后你可以找到像这样的所有年龄较大的0性兄弟姐妹
=SUMPRODUCT(([DOB]>[@DOB])*([MOTHERID]=[@MOTHERID])*([Sex]=0)*([Distinct]))
请注意,我将数据设为表格并使用表格表示法。如果您不熟悉[COLUMNNAME]引用整列,[@COLUMNNAME]引用当前行中该列的值。它类似于说$ A:$ A和A2,如果你正在处理A列。
第一个公式为您提供一个值,该值将始终为特定ID生成1。所以ID = 1有三条线,而Distinct将导致每条线的.33333。当你将这三行加起来时,你得到1.这类似于Sql用语中的SELECT DISTINCT。
对于DOB大于当前DOB的每一行,SUMPRODUCT公式总和[Distinct],母亲与当前母亲相同,且性别为零。
答案 2 :(得分:-1)
您需要这样的公式(例如,第2行):
=COUNTIFS($A:$A,"<>"&$A2,$E:$E,$E2,$D:$D,$D2,$C:$C,"<"&$C2)
假设E:E
是性别列,D:D
是母ID的列,C:C
是DOB列。
例如,在H2
单元格中编写此公式并将其拖下来。