出産前後の痔にはご注意!

こんにちは。

ExcelのTODAY関数について質問です。

例えば、

Sheet1 …x日作成
Sheet2 …y日作成
Sheet3 …z日作成

と順番に作成した際、全てにTODAY関数を使っていると、
Sheet1~3全てz日の日付になってしまいます。

TODAY関数を使って、特定のシートのみ更新させ、
過去に作成したものを更新させないことは可能でしょうか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

出来る出来ないで言えば、やれば出来ます。


ただし安全な方法では無いので、実際の仕事に使ってはいけません。


たとえばA1セルに
=NOW()
と記入し、セルの書式設定で年月日時分秒まで表示するようにしておきます
F9キーを押すと時分秒の表示が変わるので、一日置いて日付が更新されるのを待つ必要はありません


手順:
ご利用のエクセルのバージョンも不明なので手取り足取り手順の説明は割愛しますが、エクセルのオプションで反復計算のチェックを入れます


>特定のシートのみ更新させ、過去に作成したものを更新させない

「どのシート」はまだ毎日更新して良くて、「このシート」はもうそこで更新しないようにしたいと、エクセルに明確に指示をする必要があります。
そこで例えばB1セルに「固定」と記入したら、それでそのシートは更新が止まるようにします

まだB1には記入しないでおきます
C1セルに
=IF(B1="固定",C1,NOW())
と記入、年月日時分秒の表示をさせます
必要に応じてこのシートを複製して、明日明後日用のシートにします

B1セルに
固定
と記入しOKすると、あとはそのシートで何をしても更新しなくなります
    • good
    • 2
この回答へのお礼

仕事用に考えていたので、
諦めて手入力にすることにしましたが、
大変勉強になりました。
ありがとうございます。

お礼日時:2013/06/09 16:57

TODAY関数で求める日付はシートを開く都度セットされますので、過去にセットされた日付も再度セットされます。


日付を変えたくなければ該当日付を入力するしか有りません。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
TODAY関数を基準にその他のセルを入力したかったので、
その他の方法でやってみます。

お礼日時:2013/06/09 16:59

TODAY関数は文字通り「本日日付」を与える関数なのでシートを開いたときに


更新されますし、特定の関数だけを有効・無効にする機能もないので不可能です。
実現するためにはマクロ(VBA)で、それぞれのシートの日付セルを制御する
必要がありますよ。
    • good
    • 5
この回答へのお礼

VBAにつきては勉強不足ですので、
新たに機会があった時に試してみたいと思います。
ご回答ありがとうございます。

お礼日時:2013/06/09 16:59

任煮のシートの任煮のセルにTODEY関数を入れて、更新したいシートの更新したいセルのみ、その関数の入ったセルを参照するようにしたらいかがでしょうか。

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

ご回答ありがとうございます。
TODAY関数で手間を省きたかったのですが、
なかなか難しそうですので、手入力することにいたしました。

お礼日時:2013/06/09 17:01

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q◆ EXCEL自動入力日付を自動で変わらないようにする方法

EXCELで日付を自動入力することが出来て大変便利ですが、一度入力した日付が後日になっても自動的に変わらないようにする方法はありませんか?日付のセルをコピーして値貼り付けをすればよいのですが一度入力したら自動的に変わらないような機能はありませんか?

Aベストアンサー

多分、Today関数をセルに入れてあるのだと思います。
VBA案ですが 日付をA1セルに入れる場合
シート名のタブを右クリック コードの表示をクリック
VBエディターが開いたら

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
Target.Value = Date
End If
End Sub

をコピィして閉じます。
A1セルをダブルクリックすると今日の日付が値で入ります。
マクロを使用する事がはじめてなら、セキュリティがかかっているかもしれないので
ツール=>オプションでセキュリティのタブで、マクロセキュリティを
 中 位にしてエクセルを再度開いてみてください。

QEXCELのNOW()関数の値の固定する方法は?

NOW()関数をセルに入力した時に返される日付、
時刻を文字列にそのまま固定する方法を教えてください。

Aベストアンサー

1.セルをコピー
2.値の貼り付け

または、
[Ctrl] + [;]
[ ] (SPACE)
[Ctrl] + [:]
と、キー入力。

QExcel 日付関数の値を固定値に

Excel で NOW() 関数で表示させてあるセルがあります。
このブックは、閉じる前に「名前を付けて保存」しますが、別の日に開いたとき、もとの日付けのまま表示させるにはどうしたらよいでしょうか。
教えて下さい。よろしくお願いします。

Aベストアンサー

閉じる前に、コピーして値として貼り付ける。
(上記をマクロなどに記録させるのも一つの方法です。)

数式でなくショートカットキーで入力する。
日付のショートカットキー Ctrl+;
時刻のショートカットキー Ctrl+:
日付と時刻の場合はCtrl+; の後に半角スペース挿入して Ctrl+:

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで入力時間を更新させずに表示させたい

エクセル初心者です。シート内で複数の入力時間を、更新させずに表示させたいのですが、どのようにすればよいのでしょうか?
A1にある数値を入力したらB1にその入力時間を表示させ、一定時間後にA2に別の数値を入力すると、B2にその入力時間を表示させたいです。
B1、B2の入力時間とは、あくまでもそれぞれの入力した時の時間を表示させたく、また、表示後は時間の更新はさせたくないです。
”=NOW()”だと、入力のたびに過去の表示時間まで同時に更新されてしまい、また、複数の表示時間が全て同じ時間となってしまいます。
簡単な関数などでできれば助かりますが、マクロやVBAでないとできないというのであればやってみたいと思いますので、できる方法で教えてください。
よろしくお願いします。

Aベストアンサー

普通の操作は、時刻の入力は、CTRLを押しつつ:キーを押します。
ーー
VBAの勉強してない人には進められませんが、
シートタブを右クリック
コードの表示
Generalと見えているところをクリク
Worksheetを選ぶ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
と出てくるが無視
SelectionChangeと出ている部分をクリック
Changeをクリック
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
となる。
この間にコードを入力する。
Targetが、セルの値を変化させたセルなので
その隣のセル Offset(0,1) に時刻を入れるのは
Target.offset(0,1)=Time
=dateにして書式で時刻だけ見せるほうが、入力日も残って、良いかもしれない。
ただしVBAででも隣に時刻を入れるとセルの値の変化イベントが起こり、ぐるぐる回りになるから、その機能を1時的に止めて、隣のセルに時刻をセットし、イベント機能を復活させる。
また、例えばA1:A30のセル以外は、自動時刻セットが困るので
例えば、A列以外のセルは除外のコードを入れる。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
If Target.Row >= 31 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Time
Application.EnableEvents = True
End Sub
細かく言えば、A列を入力後、DELで消したときの対策など必要だが
省略。
ーー
こんなにいっぱいVBAの色々なことが詰まっている内容を今すぐやろうというのはむりだよ。
まあ丸呑みしてこのキッカケでVBAを勉強してください。

普通の操作は、時刻の入力は、CTRLを押しつつ:キーを押します。
ーー
VBAの勉強してない人には進められませんが、
シートタブを右クリック
コードの表示
Generalと見えているところをクリク
Worksheetを選ぶ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
と出てくるが無視
SelectionChangeと出ている部分をクリック
Changeをクリック
Private Sub Worksheet_Change(ByVal Target As Range)

End Sub
となる。
この間にコードを入力する。
Targetが、セルの値を変化...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Q☆Excelエクセルで入力した日の日付を表示したいです☆

こんばんは!エクセルで、なにかデータを入力した横のセルに、その日の日付が自動的に入るような方法があれば、是非教えてくださいm(__)m横の列に手動で日付を入力すればよいといえばよいのですが^^;その列には、また別の日に、追加でデータを入力していきたいですので、前の日の日付もその日の日付も残るようにしたいんです。today関数とかじゃ全部その日になってしまいますよね。。。もし、データを入力しただけで、そのようなことができる方法があれば、是非教えてください。よろしくお願いしますm(__)m

Aベストアンサー

マクロを組むしかありません。過去の質問を検索すれば結構出てきますよ。
手動でいいなら、「Ctrl」キーを押しながら「;」キーで今日の日付になります。

QA1セルに入力したら、入力時間をA2セルに自動挿入

こんにちはtmgmです。

Excelでちょっと困っています。
「A1セルに文字を入力したときの時間をA2セルに表示する」ということがやりたいのですが、
実際やってみるとなかなか出来ませんでした。

A2セルの書式をhh:mmなどにして、セルに=if(A1<>"",NOW(),"")と書きました。
これで一応A1セル入力でA2セルに時間は挿入されますが、Excelの自動計算機能により、一度閉じてまた開いた場合や他のセルで自動計算を行うような入力をした際などに時間が更新されてしまいます。
時間が更新されてしまってはだめなんです。

かといってツール→オプションから自動計算を手動にすると、その他の計算(例えばSUM関数など)の自動計算に影響がでて、使い勝手が違ってくるし。。。。


どうすればよろしいんでしょうか?
お分かりになる方ご返答宜しく御願い致します。

Aベストアンサー

VBAで。

シート名を右クリックしてコードの表示を選び、出てきたVBE画面(何か書かれていたら消して)に書きます。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
 For Each r In Target
  If r.Column = 1 Then
    r.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
  End If
 Next r
End Sub

試すのはテスト環境で。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング