• ベストアンサー

エクセルの関数について

A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.4

こんばんは   A B C D 1 回 値 1 間隔 2 1 * 式1 3 2 * ↓ 式2 4 3 * ↓ ↓ 5 4 * ↓ ↓ : C1に目的の数値を入力 式1 セルC2に  =IF($B2=C$1,"○",COUNTIF(C$1:C1,"○"))  書式設定 表示形式 ユーザー定義 ;0; 式2 セルD3に  =IF(C3="○",COUNTIF(C$2:C2,COUNTIF(C$2:C2,"○")),"") この場合 1こ目の○の出現もカウントします これを避けたいなら セルD3に =IF(AND(COUNT(C$2:C2)>$A2,C3="○"),COUNTIF(C$2:C2,COUNTIF(C$2:C2,"○")),"") 式1 式2 とも適当な行まで複写 CとD列を EとF列に複写して E1の値を 2に書き替えれば そのまま2の出現間隔の カウントに使えます 以降の列も同じ要領

takuya_9769
質問者

お礼

「新しい回答が来たらメールで知らせる」にチェックを入れているものと思ってたのですがチェックが入っていなかったらしく、回答してくれたことに気づきませんでした。お礼が遅くなって申し訳ありません。参考にさせていただきました。どうもありがとうございました。

その他の回答 (3)

回答No.3

E列まで使ってみて、こんなのはどうでしょうか? まず、一番上の行は空白で2行目から開始してください。 (D列ですぐ上のセルを参照するので) A列は1~・・・ですね。 B列がランダム数字。 C列には『=IF(B2=1,A2,0)』を入れます。 D2に『=IF(C2=0,D1+C2,C2)』 E2に『=IF(D2=D3,0,D3-D2)』 C~E列の一番最後の行には、一行多く関数を入れてください。値としては不要なのですが、下のセルを参照しているので、丁度の行数にしていると変な値になってしまうので・・・ これで、E列に「1」についての値が取得できます。 C列の「B2=1」の「1」を変えれば他の数値も取得できます。

takuya_9769
質問者

お礼

「新しい回答が来たらメールで知らせる」にチェックを入れているものと思ってたのですがチェックが入っていなかったらしく、回答してくれたことに気づきませんでした。お礼が遅くなって申し訳ありません。参考にさせていただきました。どうもありがとうございました。

  • e30653
  • ベストアンサー率28% (32/114)
回答No.2

こんにちは。 E列をWORK列として使用できるなら、下記関数で実現できそうです。(一行目もWORKとなります。) (1)E1セル 1 (2)E2セル =IF(C2="○",ROW(),"") (3)D2セル =IF(E2<>"",E2-MAX($E$1:E1),"") (4)D2,E2セルをオートフィルでコピー E列を非表示にすると見た目もスッキリすると思います。

takuya_9769
質問者

お礼

「新しい回答が来たらメールで知らせる」にチェックを入れているものと思ってたのですがチェックが入っていなかったらしく、回答してくれたことに気づきませんでした。お礼が遅くなって申し訳ありません。参考にさせていただきました。どうもありがとうございました。

  • champ24
  • ベストアンサー率27% (3/11)
回答No.1

適しているかわかりませんがこういうのはどうでしょう D列(D1)に『1』 D列(D2)に『=IF(C1="○",1,D1+1)』 以降コピー とすればC列に○印がある場合その右のD列には前回○からの個数が表示されることになります もっとスマートな方法がありそうな気もするが・・・

takuya_9769
質問者

お礼

「新しい回答が来たらメールで知らせる」にチェックを入れているものと思ってたのですがチェックが入っていなかったらしく、回答してくれたことに気づきませんでした。お礼が遅くなって申し訳ありません。参考にさせていただきました。どうもありがとうございました。

関連するQ&A