
Excel でデータ分析をしようとしているのですが、問題があります。
問題は、リストの最後の連続した数字をカウントする必要があるが、残りは 0 に削除する必要があることです。たとえば、列 A の最初の数字は単一の連続した数字「1」であるため、列 B の同等の数字はそのままで、列 C に「1」として変換されます。しかし、「A」の次の数字は 1 と 2 で、この場合の最後の連続した数字は「2」であるため、列 B の同等の数字は 0 として列 C に転送されますが、「1」の同等の数字は列 B の内容に関係なく 0 になります。
別の言い方をすると、列 A が 1、2、3、列 B が 1、1、1 の場合、連続するチェーンの最後の数字のみが有効で、その他は 0 に変換されるため、列 C の答えは 0、0、1 になります。したがって、これも列 A が 1、2、列 B が 0、0 となり、最後の数字のみが取得されるため、列 C は 0、0 になります。偶然にも、最後の数字も 0 です。
ご協力ありがとうございます!
前に
A B C
1 1
1 0
2 0
1 1
2 1
1 0
1 1
1 1
2 1
1 1
2 1
3 1
1 0
1 1
1 1
2 1
1 0
2 0
3 0
後
A B C
1 1 1
1 0 0
2 0 0
1 1 0
2 1 1
1 0 0
1 1 1
1 1 0
2 1 1
1 1 0
2 1 0
3 1 1
1 0 0
1 1 1
1 1 0
2 1 1
1 0 0
2 0 0
3 0 0
答え1
私の理解では、列 A の最後の連続した数字をチェックし、列 C の積と同じ行エントリを列 B に表示しているということですか? その場合、これは機能するようです:
=If(A1>=A2,B1,0)
答え2
上記の回答の数式は、状況によっては間違った結果を返します。列 A に 1、1、2、2、1... があるとします。その場合、2 番目の「2」は、ゼロではなく列 B の値を使用してトリガーされます。
元の質問を次のように言い換えることができると仮定して、より一般的な解決策を以下に示します。
列 A の昇順の数字のグループの最後の数字については、列 C の数字を列 B の数字と同じに設定する必要があります。これは、列 A の数字が 1 で、昇順の一部ではない場合にも発生します。それ以外の場合は、列 C はゼロに設定されます。
私が問題を正しく説明していれば、ここに機能する方法があります (少なくとも、AFTER テーブルの列 C を再現します)。最初の行は、読者の練習問題として残しておいた特別なケースです。:-)
- 昇順の数字のグループの最後の数字は、前の数字より 1 大きくなり、次の数字より 1 小さくなりません。つまり、次の式はこれらの数字に対して当てはまります: AND(A2-A1=1,A3-A2<>1)
- 昇順の連続に含まれない 1 は、1 に等しく、次の数より 1 小さくない必要があります。つまり、次の式はこれらの数に対して真になります: AND(A1=1,A2-A1<>1)
- すべてをまとめると: = IF(OR((AND(A2-A1=1,A3-A2<>1),AND(A2=1,A3-A2<>1)),B2,0)
この式を C2 に入力して下方向に塗りつぶします。