前回予定表について質問したものです。
B2に日にちがあり、=TODAY()と、今日の日付を表示しています。それ以降の日付は=B2+1等としています。
日にちにより項目の予定があれば「1」としているのですが、次の日になると左に日付が移るわけで、「1」が置いてけぼりになってしまうわけです。(当然ですが・・・)
いつも最新の日にちが先頭にあり、予定もそれに伴って左に寄ってくれるような表づくりのアイデアを教えてください。
特にこの表組にこだわりませんが、日付による予定が一目で分かり、「今日」の日付が常に左にくるような表、できないでしょうか?
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
こんにちは
ANo6様の案に似ていますが、「入力用の表」だけで済ませてしまおうというアイデアです。
まず、
>=TODAY()と、今日の日付を表示しています。それ以降の日付は=B2+1等としています。
については、お気づきのように諸問題の原因なので、これはやめましょう。
準備として、2行目(全体)の表示形式を日付にしておきます(年月日でも月日でも好きな形式で良いです)。
B2に(例えば)2016/02/15と入力して、B2を選択してフィルハンドルを右に動かせば翌日、翌々日・・となるはず。
(うまくいかない場合は、2つのセルを選択するか又はctrキーを押しながらでできるはず)
曜日はC3に =MID("日月火水木金土", WEEKDAY(B2),1) と式を入れて、やはり右にフィルコピーです。
未入力の日を新しく追加したい場合は、日付、曜日の2セルを選択して右へフィルコピーすれば追加できますね。
日曜、土曜などを色で表示したい場合は、3行目(全体に)条件付き書式で設定しましょう。
(本題でないので説明は省略しますが、意味不明の場合は検索してみてください。)
ここまでで、何か月でも対応可能な表の準備ができました。
さて、ご質問の内容は「この表を2列目に今日が表示されるようになさりたい」ということだと思いますが、いくつかの方法が考えられます。
以下に何種類か記しますが、いずれも簡単なマクロにしてブックのオープン時に自動実行することも可能です。
でも、多分、手動でも問題ないと想像しますので、手動の方法として記しておきます。
◆方法1
昨日までのデータは必要ないのであれば、新しく開いた時にB列(昨日の列)を削除する。
(1日1回操作が必要)
◆方法2
表示上で過去の分は非表示にする。(列を選択して右クリック→非表示)
(1日1回操作が必要。古いデータは再表示すれば見られます。)
(たくさんデータが溜まったら、古い部分を消去するか、別のブックに移すなど)
◆方法3(多分、これが宜しいのではと思います)
B1セルを選択した状態で、表示→ウィンドウ枠の固定でA列の表示を固定
(左右にスクロールしても常にA列が表示されている状態になります)
古いデータもそのままスクロールで見ることができます。
(たくさんデータが溜まったら、古い部分を消去するか、別のブックに移すなど)
※ 横に長い表になるので、『「今日」がどこか一目でわかるようにしたい』という要求がでてくるかも知れませんね。
これも、上で触れた「条件付き書式」で可能です。
例えば、日付(2行目全体を選択)で、ホーム→条件付き書式→セルの強調表示ルール→日付で、今日に当たる日付に対して書式を設定しておくと、今日の部分がその書式で表示されます。(背景色の指定や文字表示をboldにするとか)
※ 上でも述べましたが、これらの方法はマクロにして自動化することも可能ですが、多分、手動でも良いのではないかと想像しました。
No.7
- 回答日時:
入力する表で全部表現しようとするから混乱するだけで 一覧表に直接入力
するのを止めればいいだけだと思います。
入力する表に見やすさなんていらないんですから データベースに入力する
ようにして そこからリンクさせて一覧表を作ればいいかと思います。
No.6
- 回答日時:
マクロを使わないのであれば、入力用の表と、表示・確認用の表を別々にして、
普段は「表示・確認用の表」を使う…かな。自分なら。
「表示・確認用の表」から
OFFSET関数や、
MATCH関数とINDEX関数の組み合わせ、
INDIRECT関数、
などを使って「入力用の表」を参照する。
・・・
ちなみに自分ならINDEX関数とMATCH関数の組み合わせで指定する。
=INDEX(B2:AF2,1,MATCH(TODAY(),$B$2:$AF$2))
これを「表示・確認用の表」の一番左の日付のところに書いて、必要な範囲にコピーする。
その後、オプションで「0値を表示しない」にするか、
関数を記入したセルをセルの書式設定のユーザー書式で「0;-0;;@」にして、「0」が表示されないようにする。
これなら「入力用の表」は年間スケジュールを見渡すことができる。
※別のシートに作成すること薦める。その際は「入力用の表」のシートを参照するように書き直す必要がある。
No.5
- 回答日時:
> いつも最新の日にちが先頭にあり、予定もそれに伴って左に寄ってくれるような表づくりのアイデアを教えてください。
移動したいセルを選択して、[Ctrl+-]のショートカットキーを押すと、「削除」ダイアログボックスが表示されますので、「左方向にシフト」の代わりに、[Enter]キーを押すと選択したセルだけ左にシフトします。
(最上段の「左方向にシフト」が選択されていますので・・・)
No.4
- 回答日時:
こんばんは!
日付が変わるたびに元データが左へずれる訳ですね?
関数でできるかどうかわかりませんが、かなり無理があると思います。
そこでVBAになりますが一例です。
元データはSheet見出しの一番左側に配置してあるとします。
Alt+F11キー → 表示された画面の左側に「ThisWorkbook」がありますので
そこでダブルクリック → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
普通の操作をしてみてください。
(ブックを開くときと閉じるときにマクロが実行されます)
Dim lastRow As Long, lastCol As Long 'この行から//
Dim c As Range, wS As Worksheet
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets.Add after:=Worksheets(Worksheets.Count)
Set wS = Worksheets(Worksheets.Count)
With Worksheets(1)
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
lastCol = .Cells(2, Columns.Count).End(xlToLeft).Column
Range(.Cells(2, "A"), .Cells(lastRow, lastCol)).Copy
wS.Activate
wS.Range("A2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
End Sub
Private Sub Workbook_Open()
Set wS = Worksheets(Worksheets.Count)
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
lastCol = wS.Cells(2, Columns.Count).End(xlToLeft).Column
With Worksheets(1)
.Rows(2).NumberFormatLocal = "G/標準"
Set c = wS.Rows(2).Find(what:=.Range("B2"), LookIn:=xlValues, lookat:=xlWhole)
Range(wS.Cells(4, c.Column), wS.Cells(lastRow, lastCol)).Copy
.Activate
.Range("B4").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Rows(2).NumberFormatLocal = "m/d"
End With
Application.DisplayAlerts = False
wS.Delete
Application.DisplayAlerts = True
End Sub 'この行まで//
※ 保存時は「マクロ有効ブック」として保存してください。
※ やっていることは
① ブックを閉じるときにSheetを追加し、元データを「値」として貼り付ける。
② ブックを開いたときに最終Sheetのデータの必要部分のみをSheet1に貼り付ける。
(Sheet1のB2セルの日付以降のデータ)
その後、最終Sheetは削除!
という操作です。m(_ _)m
No.3
- 回答日時:
No.1のママチャリです。
前提を確認させてください。
1は一つづつ手入力ですよね。他のシートから範囲指定でコピペできる訳ではないですよね。
さらに、予定日は1日だけですよね。同じ予定で2所以上に1は立たないですよね。
であれば、まず、No.1をやった上で、次のような機能を追加したらいかがでしょうか。
【追加機能】
1を入力したいセルがダブルクリックされた場合、その列の見出し日付を予定日に転記する。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- Gmail Gメールの受信トレイの表示が変わって、戸惑っています 1 2023/04/04 17:52
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Microsoft ASP グーグルフォーム 1 2022/12/30 18:16
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- その他(パソコン・スマホ・電化製品) Googleカレンダーで不要データを一括削除したい 1 2023/08/02 12:42
- レシピ・食事 今シーズン二度目のおでんを作りました。 7 2023/02/17 18:20
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
4つのパターンを表示するEXACT...
-
エクセルの数式で教えてください。
-
エクセルで指定した日付、店舗...
-
Excel:一部のフォントでセルの...
-
Excel初心者です。 詳しい方、...
-
Excel初心者です。 詳しい方、...
-
Excel 2019 のピボットテーブル...
-
スマートな関数を教えて下さい。
-
Excelのグラフ軸について
-
EXACT関数とIF関数の組み合わせ...
-
Excel ウインドウ枠の固定をす...
-
エクセルで日付の入ったセルの...
-
excelの不要な行の削除ができな...
-
INDIRECTを使わず excelで複数...
-
各ページの1番上の表示について
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
関数を教えて下さい。
-
Excelのif関数で文字が見えなく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
ありがとうございます。
1を立てるのは手入力でやり、その日にその仕事がある、ということの備忘としています。
日にちを入れていくとなると、ほかの媒体から二日にちを拾い、入力しなくてはいけない事情があり、今回の場合は現実的ではなくなってしまいます・・・できれば日にちが2行目のように表示されていて、という仕様がいいと思っています。