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

A列には      B列には
2007/10/1     5
2007/10/2     3
2007/10/3     4
2007/10/4     6
2007/10/5     5




A列は昇順に日付が入っていて
B列にはランダムに数字が入っています。


やりたいことは
たとえばB1セルの「5」を基準値として
次に「5」がくるのは何日後かを知りたいです。

4日後になると思うのですが
どうやったら4と数字を求めるられるのでしょうか?
よろしくお願いします。

A 回答 (5件)

C列に =INDEX(A2:A$9999,MATCH(B1,B2:B$99,0),1)


と入れて 書式を 日時にして 下にコピーします
    • good
    • 0
この回答へのお礼

試してみたら出来ました。

大変参考になりました。ご回答ありがとうございます。

お礼日時:2007/10/17 19:46

「次の」が必要なら、関数では処理できません。

検索コマンドを使用してVBAでプログラムを組んでください。
あと、単純な方法としては、C列の1行目に「=if(B1=5,"○","×")」と入力して各行にコピーすれば、B列が5の日は目視ですぐに探せるでしょう。計算式の「5」を変数にすれば5以外の数値のところもすぐ探せます。
    • good
    • 0
この回答へのお礼

なるほど!
大変参考になりました。ご回答ありがとうございます。

お礼日時:2007/10/17 19:49

「日付は連続している」という条件ならば、日数計算と言うより次に出てくる行数を調べれば良い事になりますが如何でしょう?



例えば、A列、B列ともにタイトル行を含まないリストであるとした場合、セル C1 に

=MATCH(B1,INDIRECT("B"&ROW()+1&":B"&MATCH(MAX(A:A),A:A,0)),0)

としてセル C3 までコピーした場合、下記のように出ましたよ。

2007/10/1  5  4
2007/10/2  3  2
2007/10/3  4  3
2007/10/4  3
2007/10/5  5
2007/10/6  4
    • good
    • 0
この回答へのお礼

すいません。土日は日付ないデータなのです。
ご回答ありがとうございます。

お礼日時:2007/10/17 19:50

何行後に出てくるか=何日後に出てくるか、と考えて


ユーザー関数を作ってみました。
Function fnd(a, b)
r = a.Row
c = a.Column
s = Columns(c).Find(what:=b, after:=a, searchorder:=xlByColumns).Row
fnd = s - r
End Function
例データB列
5
4
2
6
2
3
5
2
6
7
8
5
6
1
2
3
4
5
C1に =fnd(B1,5)  で6
C2に =fnd(B7,5)  で5
C3に =fnd(B12,5)  で6
しかし第1引数をいつも上例で5の行を指定しなければならず
使い物にならないかも。

いっそのこと、VBAで5の行を全てリストアップして、行番号を出すとか、差を出すのが良いのかもしれない。
ーー
あるいはその行のB列の値は次ぎは何行目に出るかを上記関数で出す。
これなら式の複写が使える。
B1に =fnd(B1,B1)
と入れて式を下方向に複写。
結果
6
15
2
5
3
10
以下略
    • good
    • 0
この回答へのお礼

すいません。

難しすぎてよくわからないです。。。
もっと勉強してから出直してきます。
ご回答ありがとうございます。

お礼日時:2007/10/17 19:52

=INDEX(A2:A$1000,MATCH(B1,B2:B$1000,0))-A1

    • good
    • 0
この回答へのお礼

大変参考になりました。ご回答ありがとうございます。

お礼日時:2007/10/20 10:22

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