- ベストアンサー
エクセルのカウント方法と条件について
- エクセルで条件を満たすカウント処理の方法について教えてください。
- 項目のカウント1では項目コードが一致する行の範囲内で年数をカウントします。
- 項目のカウント2では項目コードが一致する範囲内で最初の年から最後の年までカウントします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>カウント1についてですが、関数のANDの論理式2にエラーがあるようなのですが、どう対処したらよいでしょうか? 申し訳御座いません、回答の投稿前に、別の誤りを見つけて、それを修正する際に、謝って参照先の行番号を削除してしまっていた様です。 [誤] =IF(OR($A2="|",$B2="|"),"|",IF(AND($A1=$A2,$B1=$B-1),C1+1,0)) [正] =IF(OR($A2="|",$B2="|"),"|",IF(AND($A1=$A2,$B1=$B2-1),C1+1,0)) >カウント2については、関数でやるとセルD14とD17が0ではなく1がくるようにしたいです。なぜなら14行目と17行目は最後の年になるからです。 D10セルが0であったため、コードの変わり目は除外したのですが、D10セルも1と表示させるのでしょうか? 又、年度が連続して増えている範囲であっても、途中でコードが変わる場合には、どの様に表示すべきなのでしょうか? 例えば、ある行のコードが3で、年度が2009、その次の行のコードが4で、年度が2010、の場合には、コードが3の最後の行におけるカウント2は、1で良いのでしょうか? もし、そうであれば、D2セルに入力する数式を、次の様に変更して下さい。 =IF(OR($A2="|",$B2="|"),"|",1-($A3=$A2)*($B3=$B2+1))
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号:ANo.1です。 申し訳御座いません、先程の回答で、数式入力するセルのセル番号に一部間違いがありました。 ●項目のカウント2について。 [誤] C2セルに次の数式を入力してから、C2セルをコピーして、C3以下に貼り付けると良いと思います。 [正] D2セルに次の数式を入力してから、D2セルをコピーして、D3以下に貼り付けると良いと思います。
補足
ごめんなさい。 表の画像にいくつか誤りがあるため、訂正します。 セルC17は0、セルD13は0、セルD14は1、セル16は1です。 あと、18行目以降は無視してください。 カウント1についてですが、関数のANDの論理式2にエラーがあるようなのですが、どう対処したらよいでしょうか? カウント2については、関数でやるとセルD14とD17が0ではなく1がくるようにしたいです。なぜなら14行目と17行目は最後の年になるからです。
- kagakusuki
- ベストアンサー率51% (2610/5101)
●項目のカウント1について。 B17が2004で1年以上空いているにも関わらず、何故C17が2になるのか解りませんが、御質問文の通りの条件であれば(←添付画像を無視した場合は)、C2セルに次の数式を入力してから、C2セルをコピーして、C3以下に貼り付けると良いと思います。 =IF(OR($A2="|",$B2="|"),"|",IF(AND($A1=$A2,$B1=$B-1),C1+1,0)) ●項目のカウント2について。 C12~C14にかけて数値が連続して増えているにも関わらず、何故D13とD14が0ではないのかが解りませんし、 >コードが一致する範囲内で、はじめの年から0が続き最後の年に1を入れる。 という事は、最後の年が連続していても、最後の年である以上、1しか入らない筈にも関わらず、何故D14が2になるのかが特に解りませんが、御質問文の通りの条件であれば(←添付画像を無視した場合は)、C2セルに次の数式を入力してから、C2セルをコピーして、C3以下に貼り付けると良いと思います。 =IF(OR($A2="|",$B2="|"),"|",($A3=$A2)*($B3<>$B2+1))
お礼
度々、返信頂きありがとうございます。 誤表をアップしてしまった中、丁寧にアドバイス頂きありがとうざいます。 >D10セルが0であったため、コードの変わり目は除外したのですが、D10セルも1と表示させるのでしょうか? > 例えば、ある行のコードが3で、年度が2009、その次の行のコードが4で、年度が2010、の場合には、コードが3の最後の行におけるカウント2は、1で良いのでしょうか? 上記の2点について、年が続いているという意味で0を表示します。