アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります^ ^

みなさんとても親切な方で、大変恐縮ですm(_ _)m

10000以上のデータがあるのですが、、
あるセルからあるセルまでの間隔の数値を、
自動的に求める方法はありますでしょうか??

数値はHセルに入力しています。
例えば、数値1と2と、
他の数値とのセル間隔を数字で求められたらと思っています。

 例)セルH1 2
   セルH2 8
   セルH3 6
   セルH4 15
   セルH5 1
   セルH6 1

となる場合、
1と2以外のセル間を数字で求めると、
0→3→0となります。

このように求められる方法はありますでしょうか?

稚拙な文章のため、
意味がわからない!などありましたら、
ご指摘ください。

よろしくお願い致しますm(_ _)m

A 回答 (17件中11~17件)

ごめんなさい。

バレーの練習に行ってました。^^;

K列での行詰めですね。

K1セルに
=IF(ISERROR(INDEX($J$1:$J$10000,SMALL($I$1:$I$10000,ROW(J1)))),"",INDEX($J$1:$J$10000,SMALL($I$1:$I$10000,ROW(J1))))
を記入して下方にコピーです。

ただし、範囲の終わりが不明なので、範囲参照の中に「$I$1:$I$10000」と「$J$1:$J$10000」が二つづつありますので
正しい行数に直してください。
最終行の行数に「10000」を書き換えてくれればいいです。^^

この回答への補足

ご回答ありがとうございます^ ^

先日はお世話になりましたm(_ _)m

バレーですか!
いいですね~
お疲れ様です!

ご教授していただいたとおりにやってみたのですが、、
何も起こりません。。

まず、K1セルに
IF(ISERROR(INDEX($J$1:$J$10000,SMALL($I$1:$I$10000,ROW(J1)))),"",INDEX($J$1:$J$10000,SMALL($I$1:$I$10000,ROW(J1))))
をコピーしてエンターを押しました。

そしてK1セルをコピーして、
ためしにK2からK3000までペーストしましたが、
何も起こりませんでした。。

何か手順が間違っていましたでしょうか?

補足日時:2008/07/26 14:19
    • good
    • 0

珍しいい型の問題で、それだけに十分説明してもらわ無いとわからない。


例の数も少なすぎる。
ーー
VBAでやれば、下記のように簡単な問題ではないのかな。
まずA列にデータがあるとして、
(1)A列の2を1に置換する。
(2)シートでALT+F11キー
ALTキーを押したままでIキー、そしてMきーを押す。標準モジュールというのが出る。そこへ下記をコピペする。
Sub test01()
d = Range("a65536").End(xlUp).Row 'A列最下行を捉える
k = 1
m = 1
For i = 1 To d
If Cells(i, "A") = 1 Then 'A列の1を探す
gyo = i
'MsgBox gyou - m
Cells(k, "C") = gyo - m 'C列に表示
k = k + 1
m = gyo + 1
End If
Next i
End Sub
ーー
(3)F5キーをおす。実行される
(4)結果(C列)
A列      C列
10
83
60
15
1
1
====
何分質問の問題点を誤解していたらすみません、無視してください。
    • good
    • 0

Iの列には


=IF(OR(H1=1,H1=2),ROW(),"")
という数式が入っていて、1と2のある行には
それぞれ行番号が表示されてますよね。

で、そのことを踏まえて
=IF(I2="","",I2-(MAX($I$1:I1)+1))
という数式を今度はJ2から下方へコピーです。

この二列、二つの数式で完成です。

この回答への補足

いつもご回答ありがとうございます!!

やっとできました^ ^b

最後の質問なのですが、
J列で取得した、1と2のセル間の数字を、
例えばK列にまとめて表示できますでしょうか?

J列にはセル間の数字が表示されていますが、
空白が長く続きますし、
なにしろデータ量が10000万以上と膨大ですので、
見やすくひとつの列に空白なしで並べられたら、、
と思っております。

いつもお時間をさいていただきまして、
ありがとうございますm(_ _)m

補足日時:2008/07/25 19:21
    • good
    • 0

>J1セルではなく、J2セルにそのまま


>=IF(I2="","",I2-(MAX($I$1:I1)+1))
>をコピーペしたのですが、
>何も起こりません^ ^;

ごめんなさい言葉足らずでした。
この数式をそのままデーターがあるだけ下方にコピーです。^^;

J2に該当する1・2の数値が無ければJ2にだけ貼り付けても
何も変化しませんね^^;

この回答への補足

ご回答ありがとうございます!

言葉足らずなんてとんでもないです。
わたくしが初心者すぎるだけですので。。

>この数式をそのままデーターがあるだけ下方にコピーです。^^;

とのことですが、
つまりJセルの行すべて(J1~J10000以上のセル)に、
ご教授いただいた数式をコピペするということでしょうか?

それでしたら先ほどやってみましたが、
何も起こりませんでした。。

補足日時:2008/07/25 17:52
    • good
    • 0

さらに「1」引く為には単純に数式の最後に


「-1」を付け足すだけです。

先ほどの関数は、「1」か「2」があった場合のそのセルの行数
ですから、そこから計算しないといけませんよ。

単純にセル番地の行数番号を返しているだけです。

間のセル数を数えるなら、
さらにJ列に次の関数をセットします。

最初は行(J1)は参照が難しいのでセットしません。
関数を入れるのは、「J2」セルです。間違えないで下さいね。

=IF(I2="","",I2-(MAX($I$1:I1)+1))

これで行番号表示されたI列の隣のJ列にセル数を数えた数値が
表示されます。

この回答への補足

またまたご回答ありがとうございます!!

-1の件は完璧にできたのですが、、

=IF(I2="","",I2-(MAX($I$1:I1)+1))がうまくいきません。。

おっしゃられるとおり、
J1セルではなく、J2セルにそのまま
=IF(I2="","",I2-(MAX($I$1:I1)+1))
をコピーペしたのですが、
何も起こりません^ ^;

WindowsXPでエクセル2003SPを使っていますが、
何かバージョンなどの関係があるのでしょうか?

補足日時:2008/07/25 17:30
    • good
    • 0

という事は、I列に対象となる数値があったら行番号を表示させれば


あとは計算できますよね。

I1セルに
=IF(OR(H1=1,H1=2),ROW(),"")
と記入してデーター分下方にコピーします。

I列にH列の数値が、1か2だった場合に、その該当の行番号が
表示されます。

以降は、引き算の設定ですから間のセル数を数えるなら、
さらに1引くって事になりますね。

この回答への補足

ご回答ありがとうございます!!
バッチリできました!


>以降は、引き算の設定ですから間のセル数を数えるなら、
>さらに1引くって事になりますね。

 さらに1引くためには、
 数式になにを書き足せばよいでしょうか?

 
10000以上のデータがあるのですが、、
ご教授いただきました方法ですと、
少し問題が生じてしまいました。。

該当数字の1か2が、
セルH20にあったためセル間が20ということで表示されました。
ここまではバッチリなのですが、、

次のセル間のセルカウント数が、
前回のセル間の値に加算されていってしまうのです。。

 例)セルH20に該当数字があり、間隔数20と表示。
   セルH30に該当数字があり、間隔数30と表示。

このように加算されてしまい、
セルH20とセルH30の間隔が10ではなく、
30と表示されてしまいます。。

これを解決する方法はありますでしょうか??

何度もお手数をおけして恐縮ですm(_ _)m

補足日時:2008/07/25 16:32
    • good
    • 0

>あるセルからあるセルまでの間隔の数値を



これはなんでしょう?
セルの升目の数を数えるのですか?

1行目に1が入力されていて、5行目に2が入力されていたら
間隔はいくつになるのでしょう?

>1と2以外のセル間を数字で求めると、
>0→3→0となります。

この場合の1と2というのは、セルH1とセルH5の事ですか?
0→3→0がわかりません。^^;

読解力がなくてすいません。

この回答への補足

早速のご回答ありがとうございます^ ^

いやぁ~
説明が稚拙で大変申し訳ありません。。
いつもおまえは説明がよくわからんといわれます。


>1行目に1が入力されていて、5行目に2が入力されていたら
>間隔はいくつになるのでしょう?

 この間隔は、3になります。
 1行目と5行目の間のセルをカウントします。
 その間のセルは、2行目、3行目、4行目となり、
 3となります。


>この場合の1と2というのは、セルH1とセルH5の事ですか?
>0→3→0がわかりません。^^;

 わかりにくくてすみません。。
 この場合の1と2というのは、
 セルH1、セルH5、セルH6のことになります。

 0→3→0は、
 セルH1は2(該当数字)です。
 初めから該当数字が出たため、
 セル間の間隔がないことになります。
 ですので、0となります。

 そして次の該当数字の1か2までの間隔は?
 ということになりますと、
 次の該当数字は、セルH5の1となります。
 その間隔はセルH2とセルH3とセルH4の3つですので、
 3になります。
  
 さらに次の該当数字の1か2までの間隔は?
 ということになりますと、
 次の該当数字は、セルH6の1となります。
 セルH5で該当数字1が出ていますので、
 セルH5とセルH6の間にセルがありませんので、
 0となります。


まだまだわかりにくい点があると存じます。。
その際は、何なりとお申し付け下さい!

よろしくお願い致します。

補足日時:2008/07/25 14:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています