在Excel的上方和下方的列中填空

在Excel的上方和下方的列中填空,excel,excel-formula,Excel,Excel Formula,在Excel中,仅使用公式,数据如下(其中n/a为空): 如果第3列的第1列中有Y表示第1列中的任何数字相同,我希望第3列始终为第二列显示0的行显示Y 详情如下: 121 0 Y 121 1 n/a 121 2 Y 121 3 n/a 121 4 Y 121 5 n/a 122 0 Y 122 1 n/a 123 0 n/a 124 0 Y 124 1 Y 或者,对于第1列中的每个数字,如果第3列中至少有一个Y,则用Y填充所有值。您不能将公式放入C列的单元格中,因为您在公式中使用的是C列-这将

在Excel中,仅使用公式,数据如下(其中n/a为空):

如果第3列的第1列中有Y表示第1列中的任何数字相同,我希望第3列始终为第二列显示0的行显示Y

详情如下:

121 0 Y
121 1 n/a
121 2 Y
121 3 n/a
121 4 Y
121 5 n/a
122 0 Y
122 1 n/a
123 0 n/a
124 0 Y
124 1 Y

或者,对于第1列中的每个数字,如果第3列中至少有一个Y,则用Y填充所有值。

您不能将公式放入C列的单元格中,因为您在公式中使用的是C列-这将导致循环引用。而是将此数组公式粘贴到第D1列(不要忘记按shift control enter键输入,因为它是一个数组公式),然后复制并粘贴到D列中包含A列到C列数据的所有其他单元格:

=IF((SUM(IF((A:A=A1)*(C:C="Y"),1,0))>0)*(B1=0),"Y",IF(ISBLANK(C1),"",C1))
为了加快计算速度:假设数据为A1:C11,将其更改为:

=IF((SUM(IF((A1:A11=A1)*(C1:C11="Y"),1,0))>0)*(B1=0),"Y",IF(ISBLANK(C1),"",C1))
这意味着:

if a cell in column A equals A1 and a cell in column C is "Y" then add 1 to the
array otherwise add 0.  then if the sum of the array is > 0 and B1 equals 0 then
return "Y" otherwise return C1 (or "" if C1 is blank)
这就产生了这样的结果:

 A     B    C    D
121    0         Y
121    1
121    2    Y    Y
121    3
121    4    Y    Y
121    5
122    0    Y    Y
122    1
123    0
124    0         Y
124    1    Y    Y

原始Y值是如何产生的?第三栏有公式吗?很难理解你的问题-你对第三栏的条件似乎是基于第三栏的内容。你能重写你的要求吗?第3列的条件完全基于第1列和第2列中的值?嗨,蒂姆,C列中的值基于另一列中的另一个变量。嘿,西蒙,根据杰瑞的回答,计算出的数据确实需要在(临时)第4列中结束。太好了,杰瑞,这很有效。如果我在电子表格中像这样保留该列,则每次过滤数据或执行任何操作时,都会导致一个很长的“计算”步骤,但复制生成的值会解决这个问题。@user3538571将a:a和C:C更改为数据的范围。我将编辑答案。
 A     B    C    D
121    0         Y
121    1
121    2    Y    Y
121    3
121    4    Y    Y
121    5
122    0    Y    Y
122    1
123    0
124    0         Y
124    1    Y    Y