2016-10-04 4 views
2

>0が範囲$T4:$AE4または範囲$AG4:$AR4にある場合、この式を使用してセルにyesを印刷します。最初の行の数式に自動的に下のセルを入力する方法はありますか?

=IF(OR(COUNTIF($T4:$AE4,">0"),COUNTIF($AG4:$AR4,">0")),"yes","") 

次に、数式をドラッグします(これは1000行に必要です)。 最初の行の数式を取得し、その下の行が条件に一致する場合は、自動的に下のセルにデータを入力する方法はありますか?

私はARRAYFORMULAと試みたが、それは働いていない。..

=IF(OR(ARRAYFORMULA(COUNTIF($T4:$AE,">0")),ARRAYFORMULA(COUNTIF($AG4:$AR,">0"))),"yes","") 

答えて

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は、私たちがmmult関数に必要なもの(1,1,1,1,1)の列を与えます。

Transposeが原因[mmult]関数で使用される:

行列1の列数は 行列2

の行数と等しくなければならないので、我々は式の一部を転置する必要があります。ところで


が、ここでこの式がありますが、単語の一致をカウントする「単語」変換:

=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ロジックを一致させるために使用することができます。

+0

素晴らしいです!ありがとうございました!なぜトランスポス? – MultiformeIngegno

+0

これは、mmult関数が特定の方法で範囲を取るためです。答えに詳細を追加しました –

関連する問題