一連の数値の値が増加しているかどうかを確認する数式は何ですか?

一連の数値の値が増加しているかどうかを確認する数式は何ですか?

何千もの数字のセットが入ったスプレッドシートがあります。つまり、10 列あり、各列に数字があり、これらの数字の行が何千行もあります。

私がやりたいのは、各行の数字が増加しているかどうかをチェックすることです。たとえば、これが 1 行目だとします (各数字は別々の列です)。

13. 17. 25. 37. 39. 40. 53. 61. 68. 71

ご覧のとおり、数字はすべて増加しています。次に、これが 2 行目だと想像してみましょう。

13   5.  3. 18. 34. 17. 49. 83. 63. 71 

この場合、開始番号と終了番号は最初の番号セットと同じですが、実行されるパスはまったく異なります。

私が欲しいのは、成長がどれだけ継続的であるかを評価するための式です。

何か案は?

答え1

=IFERROR(IFS(B6<A6,FALSE,C6<B6,FALSE,D6<C6,FALSE,E6<D6,FALSE,F6<E6,FALSE,G6<F6,FALSE,H6<G6,FALSE,I6<H6,FALSE,J6<I6,FALSE),TRUE)

それが最も簡単な方法だと信じています。

IFS は各数値を前の数値と比較し、前の数値より小さい場合は FALSE を返します。

すべての数値が前の数値より大きい場合、IFS は出力を生成せず、NA エラーが発生します。

ISERROR は NA エラーを TRUE に変換します。つまり、数値はすべて増加していることを意味します。

シーケンス内の前の数字より大きい数字の数を取得するには:

=COUNTIF(B11,">" & A11)+COUNTIF(C11,">" & B11)+COUNTIF(D11,">" & C11)+COUNTIF(E11,">" & D11)+COUNTIF(F11,">" & E11)+COUNTIF(G11,">" & F11)+COUNTIF(H11,">" & G11)+COUNTIF(I11,">" & H11)+COUNTIF(J11,">" & I11)

各カウントは、現在の数値を前の数値と比較し、数値が大きい場合のみカウントし、すべてのカウントを合計します。

答え2

これを実現するには、配列数式を使用できます。

配列数式

データが にあると仮定してA1:J1、次の数式をセルに入力し=AND(B1:J1>A1:I1)Ctrl+ Shift+を押してEnter配列数式を作成します。Excel では数式が{}自動的に で囲まれることに注意してください (手動で囲むことはできません)。Google スプレッドシートでは、Excel ショートカットの代わりに 関数ArrayFormula内でを使用できます。ANDAND(ArrayFormula(B1:J1>A1:I1))

これにより、 の要素ごとの計算が行われ>、すべてが真であるかどうかがチェックされます。 2 つの範囲は 1 つのセルだけオフセットされていますが、長さは同じであるため、 と がB1比較A1され、C1B1比較され、以下同様に比較されることに注意してください。 次に、結果の配列が に渡され、ANDすべてが真であるかどうかがチェックされます。

最初の行に配列数式を挿入したら、複数の行がある場合は、各行の数式を下にドラッグするだけです。


あるいは、何らかの理由で配列を使用したくない場合は、数値リストの下または横 (または、正直に言えばどこでも) に別のセル範囲を追加することで、配列を使用せずにこれを行うことができます。この追加のセル範囲で、各セルの比較を行うことができます。

比較式

データが から始まっている場合A1、たとえばセル にB2数式 を追加し、数式をドラッグしてデータの幅に合わせます (数式は参照を自動的に更新します)。最後に、それらのセルのすべてが true であるかどうかを確認する必要があります。(B1 > A1)これは を使用して実行できます。AND(B2:J2)

答え3

ArrayFormulagoogle-spreadsheets にタグを付けたので、 を使用してこれを 1 つの数式に簡略化することもできます。

=AND(ARRAYFORMULA(B1:J1>A1:I1))

行数が変わる場合は、それに応じて とJ1を調整できます。I1

右側の列がすべて空白の場合、次の操作を実行する=AND(ARRAYFORMULA((B1:Z1>A1:Y1)+(ISBLANK(B1:Z1))))と、後続の列が空白である限り、最大 26 列まで自動的に処理されます。

答え4

これらの答えは、動的配列数式お使いのバージョンの Excel で利用できます。


新しい、よりシンプルな答え:

動的配列数式を使用すると、各要素が別の配列の要素よりも小さいかどうかを確認できます。

=AND((A1:I1) < (B1:J1))

これはシンプルで、基本的には、配列の最後までであることA1 < B1を意味します。B1 < C1

コツは、2 つのリストをオフセットして、各項目を元の配列の次の値と比較することです。

つまり、最初の配列は最初の項目から最後から 2 番目の項目まで、2 番目の配列は 2 番目の項目から最後の項目までA1:I1を比較していることになります。B1:J1


元の回答:

リストが>=順序どおりであることが許可されている場合(厳密には ではなく>)、つまり1, 2, 3, 3, 4も有効である場合。

値を並べ替えたり、並べ替えた値を元の値と比較したりできます。

元の値が昇順になっている場合、並べ替えられたリストは元のリストと同じになります。

配列ソートの例

これにより、列ごとに並べ替えられ、各値を比較して、AND()リストが 1 つの結果にまとめられます。

=AND(SORT(A1:J1,1,1,TRUE)=A1:J1)

単一のデータ列を比較する場合は、少し簡単になります。

=AND(SORT(A1:A10)=A1:A10)

関連情報