- ベストアンサー
Excelの関数に日付を指定する方法を教えてください。
他のExcelのファイルからデータをリンクしています。 その元のExcelファイルは、日付ごとに作成したフォルダにいれて毎日作成しています。 年間で自動的に集計したいと考え、下記のような関数から必要なデータを取り出しています。 =SUMPRODUCT(('F:\出欠関係\4月24日\[1nen.xls]11'!K4:K45=1)*1) 教えていただきたいのは、「4月24日」の箇所を自動的にコンピュータの日付にしたいのですが上手い方法が思いつきません。 アドバイスをお願いいたします。
- みんなの回答 (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)
>このような感じにするのでしょうか? >=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)
>うまくいきませんでした。 ファイルを開いたあと、計算前に手動でリンクの更新をしないと駄目かと思います。 [編集]-[リンクの設定] を開いて、 [今すぐ更新] をクリック。
- nobu555
- ベストアンサー率45% (158/345)
以下の数式で如何でしょう。 =TEXT(TODAY(),"m月d日")
お礼
nobu555様 ありがとうございます。 このような感じにするのでしょうか? =SUMPRODUCT(('F:\出欠関係\TEXT(TODAY(),"m月d日")\[1nen.xls]11'!K4:K45=1)*1) うまくいきませんでした。 どこに数式を入れればよいのでしょうか?