有没有办法让第一行的公式自动填充下面的单元格?

时间:2016-10-04 12:45:53

标签: google-sheets array-formulas

如果yes范围内的数字>0$T4:$AE4范围内的数字$AG4:$AR4,我会使用此公式在单元格中打印=IF(OR(COUNTIF($T4:$AE4,">0"),COUNTIF($AG4:$AR4,">0")),"yes","")

ARRAYFORMULA

然后我将公式拖下来(因为我需要1000行)。 有没有办法只有第一行的公式,如果下面的行符合条件,自动填充下面的单元格?

我尝试使用=IF(OR(ARRAYFORMULA(COUNTIF($T4:$AE,">0")),ARRAYFORMULA(COUNTIF($AG4:$AR,">0"))),"yes","") ,但它不起作用..

Var x, y;
Func limit, erosion, dilation;

ImageParam input(type_of<uint8_t>(), 2);
Param<int> dimension;

RDom r(-1 * dimension / 2, dimension, -1 * dimension / 2, dimension);
limit = BoundaryConditions::repeat_edge(input);

erosion(x, y) = argmin(r, limit(x + r.x, y + r.y), "erosion")[2];
dilation(x, y) = argmax(r, erosion(x + r.x, y + r.y), "dilation")[2];

erosion.compute_root();
dilation.vectorize(x, 4).parallel(y);

Target target = get_host_target();

target.set_feature(Target::NoRuntime, true);

dilation.compile_to_static_library(path, { input,dimension }, target);

1 个答案:

答案 0 :(得分:1)

试试这个公式:

=ArrayFormula(if(TRANSPOSE(MMULT(COLUMN(T4:AE)^0,TRANSPOSE(if(ISNUMBER(T4:AE),T4:AE,0))))+TRANSPOSE(MMULT(COLUMN(AG4:AR)^0,TRANSPOSE(if(ISNUMBER(AG4:AR),AG4:AR,0))))>0,"yes",""))

<强>解释

mmult用于赚取$ T4:$ AE和$ AG4:$ AR

的总和

ISNUMBER是将所有非数字值转换为数字,以便仅使用mmult函数中的数字。

COLUMN(AG4:AR)^0会给出一列(1,1,1,1,1) - 正是mmult函数所需要的。

使用

Transpose是因为[mmult]函数:

  

matrix1的列数必须等于行数   矩阵2

所以我们需要转换部分公式。

顺便说一下,这里有这个公式,但转换为计算单词&#34;单词&#34;的匹配:

=ArrayFormula(if(TRANSPOSE(MMULT(COLUMN(T4:AE)^0,TRANSPOSE(--(T4:AE="word"))))+TRANSPOSE(MMULT(COLUMN(AG4:AR)^0,TRANSPOSE(--(T4:AE="word"))))>0,"yes",""))

如您所见,公式的原则可用于匹配count逻辑。