• ベストアンサー

Excelの関数に日付を指定する方法を教えてください。

他のExcelのファイルからデータをリンクしています。 その元のExcelファイルは、日付ごとに作成したフォルダにいれて毎日作成しています。 年間で自動的に集計したいと考え、下記のような関数から必要なデータを取り出しています。 =SUMPRODUCT(('F:\出欠関係\4月24日\[1nen.xls]11'!K4:K45=1)*1) 教えていただきたいのは、「4月24日」の箇所を自動的にコンピュータの日付にしたいのですが上手い方法が思いつきません。 アドバイスをお願いいたします。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.4

VBAを利用する方法は如何でしょうか? Sub auto_open() Dim wStr As String today = Format(Now(), "m月d日") ActiveSheet.Range("A1") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]11'!K4:K45=1)*1)" End Sub (1) Alt+F11 (ツール -> マクロ -> Visual Basic Editor) (2) 挿入 -> 標準モジュール -> 上記のモジュールを貼り付ける (3) 一旦ブックを保存して終了。 (4) ブックを開くと自動的にマクロが設定される。

その他の回答 (3)

  • nobu555
  • ベストアンサー率45% (158/345)
回答No.3

>このような感じにするのでしょうか? >=SUMPRODUCT(('F:\出欠関係\TEXT(TODAY(),"m月d日")\[1nen.xls]11'!K4:K45=1)*1) >うまくいきませんでした。 失礼しました。フォルダ名なので、INDIRECT関数を使って 下記のようになります。 =SUMPRODUCT((INDIRECT("'F:\出欠関係\"&TEXT(TODAY(),"m月d日")&"\[1nen.xls]11'!K4:K45")=1)*1) ただ、INDIRECT関数は該当ファイルを開いて置かないと 参照しないという不便な点があります。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>うまくいきませんでした。 ファイルを開いたあと、計算前に手動でリンクの更新をしないと駄目かと思います。 [編集]-[リンクの設定] を開いて、 [今すぐ更新] をクリック。

  • nobu555
  • ベストアンサー率45% (158/345)
回答No.1

以下の数式で如何でしょう。 =TEXT(TODAY(),"m月d日")

demiguru
質問者

お礼

nobu555様 ありがとうございます。 このような感じにするのでしょうか? =SUMPRODUCT(('F:\出欠関係\TEXT(TODAY(),"m月d日")\[1nen.xls]11'!K4:K45=1)*1) うまくいきませんでした。 どこに数式を入れればよいのでしょうか?

関連するQ&A

  • エクセルでカレントドライブの値を知る方法を教えてください

    Excel(2003)で開いているファイルのカレントドライブの値を知る方法を教えてください。 現在、下記のようなマクロを実行しています。 ActiveSheet.Range("c2") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]11'!l4:l45=1)*1)" ActiveSheet.Range("d2") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]12'!l4:l45=1)*1)"    ・    ・    ・    ・    ・ 利用し始めた当初はよかったのですが、複数のコンピュータから利用することになり共有フォルダに割り当てされているドライブ名が異なっており、マクロの中の「F:\出欠関係」が上手く利用できません。 利用する端末の数が多いためドライブ名を変えるのではなく、マクロで乗り切りたいと思っております。フォルダの名称や位置は固定です。 是非アドバイスをお願いいたします。

  • エクセルのVBAで簡潔に表示させたいのですが、知恵を貸してください。

    エクセルのVBAで簡潔に表示させたいのですが、知恵を貸してください。 エクセルのVBAで現在、下記のような指示をしています。 メンテナンスが困難なため、簡潔に記載する方法または関数を教えていただけないでしょうか。 activesheet.range("c2")= "=sumproduct(('[nen.xls]1'!c4)*1)" activesheet.range("d2")= "=sumproduct(('[nen.xls]1'!d4)*1)" activesheet.range("e2")= "=sumproduct(('[nen.xls]1'!e4)*1)" activesheet.range("f2")= "=sumproduct(('[nen.xls]1'!f4)*1)" activesheet.range("g2")= "=sumproduct(('[nen.xls]1'!g4)*1)" activesheet.range("c3")= "=sumproduct(('[nen.xls]1'!c5)*1)" activesheet.range("d3")= "=sumproduct(('[nen.xls]1'!d5)*1)" activesheet.range("e3")= "=sumproduct(('[nen.xls]1'!e5)*1)" activesheet.range("f3")= "=sumproduct(('[nen.xls]1'!f5)*1)" activesheet.range("g3")= "=sumproduct(('[nen.xls]1'!g5)*1)" activesheet.range("c4")= "=sumproduct(('[nen.xls]1'!c6)*1)" activesheet.range("d4")= "=sumproduct(('[nen.xls]1'!d6)*1)" activesheet.range("e4")= "=sumproduct(('[nen.xls]1'!e6)*1)" activesheet.range("f4")= "=sumproduct(('[nen.xls]1'!f6)*1)" activesheet.range("g4")= "=sumproduct(('[nen.xls]1'!g6)*1)" ・ ・ このパターンを全部で50回ほど繰り返します。 ・ ・  この繰り返し作業を簡単な記述に変更したいのですが、できません。  お知恵をお貸しください。よろしくお願いいたします。

  • Excelの日付関数について教えて!

    見積書などでファイルを開いた時に自動で日付が入るように「TODAY」関数を入れていますが、これですと 後日内容を確認する時に日付がその日になってしまいます。 作成する時に自動で日付が入り、後日開いた時に日付が変わらないようにする関数ってありますか? 初心者ですので分かりやすい説明でお願いします。 Excelは2002でOSはXPです。

  • エクセルの日付を範囲指定して振り分けたい

    エクセル2013を使用しています。 以下の様なデータがあるのですが、分析するために任意の日付毎に集計して振り分けたいのですがどのようにすれば良いでしょうか? 有効期限 2014/11/13 2014/12/27 2015/1/8 2014/12/29 2015/1/20 2014/12/28 2015/2/21 2015/3/21 やりたいのはこんなイメージです。 2014/11 2014/12 2015/1 2015/2 のように月単位に集計(あるいは半月ごとに集計→11月上旬、11月下旬、12月上旬等)したいです。 上記のように振り分けた後に、11月の人数合計や売上合計を集計等したいのですが。 関数等あまり詳しくないのですが、アドバイスいただけると助かります。

  • エクセルでファイルが保存されているドライブの値を表示したい

    エクセルのマクロを利用して、ファイルが保存されているドライブの値を取りたいのですがうまくいきません。 皆さんのお知恵をお貸しください。 下記のようなマクロを利用して、ネットワーク上の共有ファイルに置いてあるエクセルを自動更新させたいと考えています。 各クライアントには、ネットワークドライブとして共有ファイルが設定されており、クライアントごとに割り振られているドライブ名が異なっています。 試行錯誤で単体では、うまくいくようになりました。 Sub auto_open() Dim wStr As String today = Format(Now(), "m月d日") atai1 = ActiveWorkbook.FullName atai2 = Left(atai1, 1) ActiveSheet.Range("c2") = "=SUMPRODUCT(('atai2 & \出欠関係\" & today & "\[1nen.xls]11'!l4:l45=1)*1)" 単体では下記の記述でした。 ActiveSheet.Range("c7") = "=SUMPRODUCT(('F:\出欠関係\" & today & "\[1nen.xls]11'!l4:l45=6)*1)"

  • エクセル関数_特定の日付の二つの時間の数

    エクセル関数について質問です。どなたか助けていただければ嬉しいです。 ある日付の二つの時間の数をカウントする方法を教えていただきたいです。 例えば、3/1の10:00~11:00までの数を数える方法です。 二つの時間の間の数は、sumproduct関数でカウントすることができますが、さらに条件を追加する方法がわからないです。 ふたつの時間の間の数を数えるために使用している関数は以下の関数です。  =SUMPRODUCT(($K$2:$K$20000>=O$1)*($K$2:$K$20000< O$2)) よろしくお願いします。

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

    エクセルの日付関数について教えてください。 上司から、データの修正をかけたごとの表を提出するようにいわれています。 エクセルのToday関数ですと、ファイルを開いた日付に変更されてしまうので 困っています。 ファイルを開いただけでは変更されず、内容を更新したときだけ、その処理日が表示されるような 関数があれば教えてください。 ひとつのファイルに何枚かのシートがあるので できればシートごとにできればよいのですが 無理でしたら、別ファイルを作ります。 よろしくお願いします。

  • エクセルと日付の関数

    エクセルと日付の関数 エクセル2007で以下のような表を作成しています。 処理日(現在の日付)が例えば3月2日であるとき、以下の表のA2セルに 3月の前月、つまり2月の日付を入力する関数はあるのでしょうか。 初心者で申し訳ありませんが、よろしくお願いします。

  • エクセルと日付の関数と並び替え

    エクセル初心者です。 日付の勉強をしているのですが 今、下の画像のようなデータを作成しました。 一番左の列が、別のデータベースから転記した日付を シリアル値に変換したものです。 それを真ん中の列にコピーして、日付に変換しました。 そのデータの中から、YEAR関数とMONTH関数を使って 年と月のみの日付にしたものが、3列目です。 ここで、疑問なのですが、3列目を昇順に並び替えたときに きちんと昇順に並び替えができませんでした。 9月、10月、11月ときれいに順番に並べるには何か 複雑なセル設定が必要なのでしょうか。 教えてください。

  • Excelの関数を教えてください

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

専門家に質問してみよう