您好,感谢您提前提供任何帮助
以下是假设数据集;丰度=计数数据;泥%=发现动物的泥浆含量;泥箱=箱子我根据泥%构成;和UQ =来自其相应泥浆仓的丰度数据的上四分位数(即泥浆仓1中丰度数据的上四分位数为17.25等)。
问题:
在excel中,对于四个泥浆箱中的每一个的丰富数据,我想要提取丰度列中的任何值> =该特定泥浆仓的上四分位值并将它们放在新的列中在同一张纸上(不符合标准的值之间没有间隙)以及相邻单元格中相应的泥浆%值。我已将新列添加到下面的表格中,以便让您了解我所追求的内容。
abundance | mud% | mud bin | UQ | | New column | Mud% |
18 10.9 1 18 10.9(mud bid 1)
15 6.5 1 44 38.9(mud bin 1)
6 13.4 1 45 38 (mud bin 2)
13 42.1 1 37 37.8(mud bin 2)
15 36.4 1 etc
44 38.9 1 17.25 etc
22 46 2
30 36.4 2
45 38 2
29 35.3 2
37 37.8 2
29 41.8 2 35.25
11 44.4 3
17 47.8 3
21 40.7 3
15 13.9 3
35 13.9 3
14 13.9 3
15 13.9 3 19
19 12 4
14 12 4
10 12 4
12 12 4
14 12 4
13 12 4
45 9.525 4
66 9.525 4
78 9.525 4 45
现实情况是,我有一个相当大的数据集,其中包含许多物种的丰度数据,所有数据都在同一个excel表格中,并且非常感谢我们如何在最有效的庄园中实现这一目标。
答案 0 :(得分:0)
对于初学者来说,为了使这个解释更简单,我将假设最后一行数据在第100行。
填充所有订单项的上四分位数值
首先你需要使用Quartile公式;但是,由于您要在bin中找到上四分位数,因此您必须使用数组公式。将此公式放在UQ列中(放在单元格D2中并向下拖动)。 输入公式时请务必按Ctrl + Shift键,然后按Enter键
=QUARTILE(IF($C$2:$C$100=C2,$A$2:$A$100,""),3)
此公式的第一部分$C$2:$C$100=C2
是您的条件。在满足这一条件的情况下,您将获得$A$2:$A$100
中的相应值;否则,你会得到一个空白值。这将为您提供一系列丰富值,与指定的泥浆区C2相匹配。现在你有了你的数据子集,四分位函数会给你第三个四分位数的值(mudbin 1的17.25,它将放在mudbin为1的每一行的旁边)。
现在我们已经拥有了所有的四分位数,我们可以获得大于该泥浆的UQ的所有丰度值。这分两部分完成
获得的丰度值大于mudbin UQ
在公式栏中输入以下公式(当F2:F100突出显示时)并按Ctrl + Shift键,然后输入
=IF($A$2:$A$100>$D$2:$D$100,$A$2:$A$100,"")
与之前使用的IF语句类似,此公式查找的所有丰度值都大于其对应的UQ值。现在,列F将具有丰富的数字,其大于它的UQ值,而空白则不是。现在进入最后一步。
填充大于UQ值的丰度值,没有空白
在公式栏中输入以下公式(当G2:G100突出显示时)并按Ctrl + Shift键,然后输入
=INDEX(F2:F100,SMALL(IF(F2:F100<>"",ROW(F2:F100)-1),ROW()-ROW($F$1)))
再次查看IF语句,这将找到F2:F100中的每个值都不是空白,但不是抓取值,我们将跟踪该非空值的行号(由{{完成) 1}}
)。现在我们有所有非空值的行号,我们可以按顺序获取非空值并在G2:G100中填充它们。 ROW(F2:F100)-1
是一个计数器,ROW()-ROW($F$1)
将使用计数器确定要返回的第n个最小数字。一旦我们得到非空值的行号,SMALL
就会返回该值
最后,要填充泥浆%,您需要使用非空白值的行号来获取泥浆%和泥浆仓(您已经使用公式获取非空白值的行号)。
这不是一个简单的答案,但至少你不必使用VBA。