Excelの列に0から1への遷移を記録するにはどうすればよいですか?


5

私はExcelの単一の列にダウン状態(0)からアップ状態(1)への遷移の数を記録する必要があり、Excelでこのようなロジックが利用できるのか、この種のプログラムができるのか疑問に思っていますVBAのロジックの。しかし、私はVBAにあまり精通していないので、リンクが利用可能であれば、それは素晴らしいことです。


データの例を教えてください。
CLockeWork 14

回答:


9

1つのSUMPRODUCT式でカウントを取得できます。データがにA1:A25ある場合、次を使用できます。

=SUMPRODUCT((A1:A25=0)*(A2:A26=1)*(NOT(ISBLANK(A1:A25))))

これは、列の1つの値が0(空白ではない)で、次の値が1であるインスタンスのみをカウントします。


それに私を打ち負かし、よりシンプルなソリューションも。
gtwebb 14

5

私の解決策は、セルA2から開始して列Aに行くクリーンなデータを想定しています。私の式では、行1000を超えるデータがないことも想定しています(ほとんどの現実世界のデータに対してこれを上方に調整します。

数式は配列数式なので、ctrl + shift + enterを使用して入力してください

=SUM(IF(A2:A1000=0,IF(A3:A1001=1,1,0),0))

数式の仕組み。

セルA2からA1000のそれぞれについて、次のセルにゼロの外観がある場合、ゼロを探します。次のセルに1つある場合は、カウントに1を追加します。空白のセルはゼロとしてカウントされることに注意してください。

範囲の終わり(A1000およびA1001)は、データの終わりを過ぎている必要があります。

ここに画像の説明を入力してください


1
この解決策は、現在投票されている最高の回答よりも簡単です。数学的な偶然の利点を活用するのではなく、論理的です。
corsiKa 14

3

変更を下から上にのみ追跡したい場合(データが列Aにあると仮定)、必要なのは=N(A2>A1)数式を下にドラッグすることだけです。

これはTRUE、値が増加(下から上へ)したかどうかを評価し、N(boolean)これに1または0に変換します。

使用するすべての状態変更を追跡するには =N(A2<>A1)

すべての状態変化をカウントするには、列を合計します。


2

数式を使用して、1から0および0から1への遷移を検出できます。空白のセルに注意してください。

次の例を検討してください(下のスクリーンショットを参照)。

列Bにはバイナリデータパターンが含まれます。

C2には次の式が含まれます。

=IF(AND(NOT(ISBLANK(B3)),B2=1,B3=0),1,0)

D2には以下が含まれます。

=IF(AND(NOT(ISBLANK(B3)),B2=0,B3=1),1,0)

C列とD列に必要な数の行の数式を自動入力するだけです。

  • columnt Cの1の量は、1から0への遷移の量を表します。
  • 列Dの1の量は、0から1への遷移の量を表します。

そして最後に必要なのは、列Cと列Dの1を合計することです

以下の例では:

D18=SUM(C2:C16)
D19=SUM(D2:D16)

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.