• ベストアンサー

関数について教えて下さい。

A列に日付があって、B列(C列、D列…)に無作為に値が入っています。 B列(C列、D列…)の最後に入力された日から現在の日付までの空白を数えたいのです。 全然わからないので、よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>無作為に値が入っています B列(C列…)に「数値」が記入してあるとして =TODAY()-LOOKUP(MAX(B:B)+1,B:B,A:A) などのように。 式を入れたら日付の表示になってしまったら、ツールバーのカンマボタンをクリックするなどでふつーの表示にします。

makimaki49
質問者

お礼

私の能力では、一番わかりやすい方法だと思いました。 やってみたら、数字も合いました! ありがとうございました^-^v

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>B列(C列、D列…)の最後に入力された日から現在の日付までの空白を数えたいのです。 A列に現在の日付が入力されているなら、その日付の行は以下の数式で求められます。 =MAX(INDEX(($A$2:$A$100=TODAY())*ROW($A$2:$A$100),)) 同様にB列のデータが入力されているセルの最終行は以下の数式で表示できます。 =MAX(INDEX((B2:B100<>"")*ROW(B2:B100),)) 「空白」の意味がこの2つの行の差ということなら、以下の数式で空白行の数をカウントできます。 =MAX(INDEX(($A$2:$A$100=TODAY())*ROW($A$2:$A$100),))-MAX(INDEX((B2:B100<>"")*ROW(B2:B100),))

makimaki49
質問者

お礼

まだまだ、勉強の余地がありそうです。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばA列での日付はA2セルから下方に連続して入力されているとします。 B列から横の列で、それぞれの列で最後の入力された日から現在の日付までの空白の数を、それぞれの列の1行目に表示させるとしてB1セルには次の式を入力して右横方向にドラッグコピーします。 =IF(COUNTA(B2:B1000)=0,"",COUNTBLANK(INDEX(B:B,IFERROR(MATCH("ー",B2:B1000),MATCH(10^10,B2:B1000))):INDEX(B:B,MATCH(TODAY(),$A:$A,0)))-1) それぞれの列で入力されているデータが文字列のみの場合には次の式でもよいですね。 =IF(COUNTA(B2:B1000)=0,"",COUNTBLANK(INDEX(B:B,MATCH("ー",B2:B1000)):INDEX(B:B,MATCH(TODAY(),$A:$A,0)))-1) MATCHの中のーはひらがな入力での文字ーで半角英数文字-ではエラーとなります。

makimaki49
質問者

お礼

ありがとうございます! いろんな方法があるんですね♪ がんばります!

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

「最後に入力された日」がいつだか分かりませんので、1行目の日ということにしました。「現在の日付」が何行目か分かりませんので、最下行ということにしました。「空白」の意味は「B~E列の1行目から最下行までに存在する空白セル」ということにしました。 =countblank(indirect("b1:e"&max(index(isnumber(a:a)*row(a:a),))))

makimaki49
質問者

お礼

回答ありがとうございました! いろいろやってみて勉強したいと思います♪

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数で飛び飛びのデータの値を表示したい

    こんにちは。お世話になります。 エクセル(2000)で質問です。 ある表があり、一番左の列にはインデックス(仮にB列とします)、 2列目(C列)には日付、3列目(D列)には値が入っています。 イメージだと   A  B    C   D   1   コーラ  5/30  20    2        6/10  10    3        6/11  20    4   ミルク  4/30  10    5        5/11  35    のような感じです。(セルは結合されてません) データベースとして扱うならば、B2にもコーラという値が 入っている、という認識ですが、実際は空白セルとなっています。 そこで、A列に、Bのインデックスの値を入力したいのですが、 どのようにしたら良いのか悩んでいます。 上記で言うと、A1~A3にはコーラ、A4~A5にはミルク、という 値がはいってほしいです。 次のインデックスまでの空白セルの数は不規則です。 データの件数は何千件とかなり多いので、関数で一気に出せると 非常に助かります。 分かりにくい質問で申し訳ありませんがどうぞよろしくお願いします。

  • Excelの関数について

    [C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

  • エクセル関数

    参照先のセルが空白の場合に値が入力されているセルまで列を遡って参照したいのですが、そのような時はどういった関数を使えば可能でしょうか? 具体的には添付画像のようなケースです。 A列には日付、B列にはニューヨークダウの終値が入力されています。 C列では当日終値の前営業日に対する変動率を求めます。 当日のB列が空白の場合はC列にも空白を返します。 前日の終値が空白のC3048とC3057にエラーが出ます。 C3048ではB3048のB3046に対する変動率、 C3057ではB3057のB3052に対する変動率 を求めます。 このケースではC列にどのような関数式を使えばよろしいでしょうか。 質問の文章が分かりづらくて申し訳ありませんが、よろしくお願いいたします。

  • エクセルの関数

    A列に日付B列に金額が入っています。 C1とD1に日付を入力するセルをつくり C1の日からD1の日のB列金額の合計を出したい場合 どのような関数を使えば良いですか?SUMIFで出来ますか?

  • エクセル2003の関数について教えて教えて下さい

    どなたかご教授下さい。 現在 ・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  2 B  100 3 C  100  4 D  100 ・・・・・・・・・・・・・・・・・・ の、条件として A列に入る値が Aの時:B列×0.8 A列に入る値が Bの時:B列×0.5 A列に入る値が Cの時:B列×0.2 A列に入る値が Dの時:B列×1.0 を設定しています。 ですので、現在のシートは ・・・・・・・・・・・・・・・・・・・ A列 B列 C列 1 A  100  80 2 B  100 50 3 C  100  20 4 D  100 100  という状態です。 ・・・・・・・・・・・・・・・・・・・ 今後このシートを参照して 現在AであるC列の値の合計値 現在BであるC列の値の合計値 現在CであるC列の値の合計値 現在DであるC列の値の合計値 をそれぞれを算出し以下のように表示したいと考えています。 現在A→計350 現在B→計200 現在C→計120 現在C→計500 このような計算を行う場合の数式はどのようになるのでしょうか。 良い案がありましたら、どなたかご教授下さい。 宜しくお願いします。

  • エクセルの日付関数について教えてください。

    エクセルの日付関数について教えてください。 A列には日付が入力されています。 B列には金額が入力されています。 C列にも日付が入力されています。 A1に入力された日付(例:2010/4/30)とC1に入力された日付(例:2010/4/30)が同じ日付のときだけ、B列の金額を抽出しD10に合算させたいと考えています。 ***【サンプル】*****************************    A   B   C   D 1 4/30  100  4/30 2 4/30  200  4/30 3 5/1   100   4 5/2   200  5/2 5 5/2   100  5/2 6 7 8 9 10            同じ日付(1)の合計 11            同じ日付(2)の合計 ******************************************* 上記の場合のD10やD11の関数は、どのような関数に すべきでしょうか? どなたかご教授をお願い致します。 【環境】 WindowsXP Pro Excel 2003

  • Excel 検索に関する関数について教えてください

    色々と試しましたが、どうしてもうまくいかないので教えてください。 A列に休日を除いた日付(生産カレンダー)が入っています。 日付は手入力です。 A列 2008/5/14 2008/5/15 2008/5/16 2008/5/19 2008/5/20 2008/5/21 B1セルに任意の日付が入力された時、C1のセルに任意に入力されている数値分だけ前の日付をA列を参照してD1セルに表示したいのです。 例えばB1セルに2008/5/20、C1セルに3と入力された場合、D1セルには2008/5/20の3つ上のセルの値、2008/5/15を表示させたいのです。 生産カレンダーは列でなく、行にしても可です。 LOOKUP系やOFFSETなども複合したりして試してみましたが、うまくいきません。 ご教授よろしくお願いします。

  • EXCELの関数についてご教授ください。

    EXCELの関数についてご教授ください。 【質問内容】 以下エクセルのデータがあるとします。 A       B  C  D   E F 2013/10/1 新 100 2013 10 1 2013/10/1 旧 100 2013/10/1 新 101 2013/10/1 新 102 2013/10/1 旧 102 2013/10/1 新 103 2013/10/1 旧 110 2013/10/1 旧 110 2013/10/1 旧 110 2013/10/2 旧 110 ※D1,E1,F1には任意の日付を入力できるイメージ (1) D1,E1,F1にそれぞれ上記の値(2013年10月1日)を入力した場合、 A列が「2013/10/1」かつ B列が「新」の件数は 「4件」 と出力されるようにしたいです。 ※「100」「101」「102」「103」が集計され計4件 ※この場合(B列が新の場合)はC列は同じ値は入らないので考慮しなくてよい (2) D1,E1,F1にそれぞれ上記の値(2013年10月1日)を入力した場合、 A列が「2013/10/1」かつ B列が「旧」で C列が「重複しているものは1件でカウント」すると 「3件」 と出力されるようにしたいです。 ※「100」「102」「110」が集計され計3件 ---------- (1)は以下自力で解決出来るようなのですが、 =SUMPRODUCT((A1:A$10=DATE(D1,E1,F1))*(B1:B10="新")) (2)が難解すぎて質問させて頂きました。 皆様お忙しいところ、大変申し訳ございませんがお力をお借りしたく思います。

  • エクセルの関数式で・・・

    このような表を作りました    A   B   C   D   E・・・ 1  a   a    b   a    c・・・ 2 12:00 8:00 11:00 4:00 12:30・・・ 3 (空白)PM (空白) AM (空白)・・・ A1にaと入力すれば12:00。B1にaと入力し、B3にPMと入力すれば8:00と計算できる表をVLOOKUP関数で作りました。 これに加えて、例えばA4にaを入力したらA2の値(時間です)から2時間引いた値をA2に、C4にbを入力したらC2の値から2時間引いた値をC2に表示するためにはどうしたら良いでしょうか? A4に入力したものに対応するA1の値から時間を引いていきたいのです。 よろしく御指導下さい。

  • エクセルの関数について

    セル内(日付が入力されていて、空白の場合もある) A1 には 8/10 B1 には 8/11 C1 には 8/12 と入力されている場合に・・・ D1のセルにA1~C1に入力されている日付の どれかが自動で入力されるように設定したいのですが どうしたらいいのかわかりません。 もし知っている方いましたら、宜しくお願いします。

専門家に質問してみよう