- ベストアンサー
エクセルの関数とオフィス2007
- 精神的な病から働けず、最近事務のパートを始めたが関数忘れで困っている。
- 月のスケジュール表を作成し、日付と曜日を自動入力する関数または書式を知りたい。
- オフィス2007ではフォルダの並び替えを自由にする方法が分からない。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>今、月のスケジュール表を作成してるのですが、 今仮に、B2セルに 2013年11月 或いは 平成25年11月 等の様に年と月を併せて入力するものとします。 そして、B列~H列の4行、7行、10行、13行、16行、19行に日付を表示させ、その日付のすぐ下のセルに曜日を表示させるものとします。 まず、B4セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(YEAR((TEXT($B$2,"yyyy年m月")&"1日")+0)>1904)),IF(ISNUMBER((TEXT($B$2,"yyyy年m月")&COLUMNS($B:B)-WEEKDAY((TEXT($B$2,"yyyy年m月")&"1日")+0)+1+INT((ROWS($4:4)-1)/3)*7&"日")+0),(TEXT($B$2,"yyyy年m月")&COLUMNS($B:B)-WEEKDAY((TEXT($B$2,"yyyy年m月")&"1日")+0)+1+INT((ROWS($4:4)-1)/3)*7&"日")+0,""),"") 次に、B5セルに次の関数を入力して下さい。 =IF(ISNUMBER(INDEX($B:$H,ROW()-1,COLUMNS($B:B))),INDEX({"日","月","火","水","木","金","土"},COLUMNS($B:B)),"") 次に、以下の操作を行って下さい。 B4セルを右クリック ↓ 現れた選択肢の中にある[セルの書式設定]をクリック ↓ 現れた「セルの書式設定」ダイアログボックスの[表示形式]タブをクリック ↓ 現れた「分類」欄の中にある[ユーザー定義]をクリック ↓ 現れた「種類」欄に d と入力 ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック 次に、B4~B5の範囲をコピーして、C4~H5の範囲に貼り付けて下さい。 次に、以下の操作を行って下さい。 B4~B5の範囲をまとめて範囲選択 ↓ 選択範囲を示す黒い太枠の内側にカーソルを合わせてマウスを右クリック ↓ 現れた選択肢の中にある[セルの書式設定]をクリック ↓ 現れた「セルの書式設定」ダイアログボックスの[フォント]タブをクリック ↓ 現れた「色」欄をクリック ↓ 現れた色のサンプルの中から赤色の四角形を選択してクリック ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック 次に、以下の操作を行って下さい。 H4~H5の範囲をまとめて範囲選択 ↓ 選択範囲を示す黒い太枠の内側にカーソルを合わせてマウスを右クリック ↓ 現れた選択肢の中にある[セルの書式設定]をクリック ↓ 現れた「セルの書式設定」ダイアログボックスの[フォント]タブをクリック ↓ 現れた「色」欄をクリック ↓ 現れた色のサンプルの中から青色の四角形を選択してクリック ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック 次に、B4~H6の範囲をコピーして、B7~H21の範囲に貼り付けて下さい。 以上で準備は完了で、後はB2セルに年と月を入力しますと、その月のカレンダーが表示されます。
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
前回の回答では書き切れなかった残りです。 次に、以下の操作を行って、回答No.3の処で作ったカレンダーのセルに条件付き書式を設定して下さい。 カレンダーが存在しているシートのB4セルを選択 ↓ [ホーム]タブをクリック ↓ 現れた「スタイル」グループの中にある[条件付き書式]ボタンをクリック ↓ 現れた選択肢の中にある[ルールの管理]をクリック ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック ↓ 現れた「新しい書式ルール」ダイアログボックスの[数式を使用して、書式設定するセルを決定]をクリック ↓ 「次の数式を満たす場合に値を書式設定」と記されている欄に =AND(ISNUMBER(OFFSET(B4,-MOD(ROWS($4:4)-1,3),)),COUNTIF(INDIRECT(“休日!D:D"),OFFSET(B4,-MOD(ROWS($4:4)-1,3),))) と入力 尚、ExcelのバージョンがExcel2007以降(Excel2007も含む)の場合には、 =AND(ISNUMBER(OFFSET(B4,-MOD(ROWS($4:4)-1,3),)),COUNTIF(休日!$D:$D,OFFSET(B4,-MOD(ROWS($4:4)-1,3),))) でも可 ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック ↓ 現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック ↓ 現れた「パターンの色」欄をクリック ↓ 現れた色のサンプルの中にある赤色の四角形をクリック ↓ 「セルの書式設定」ダイアログボックスの「パターンの種類」欄をクリック ↓ 現れたパターンのサンプルの中から、適当な密度の点描の網掛けを選択してクリック ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある「書式」欄が黒文字に赤の網掛けとなっている行の「適用先」欄をクリック ↓ [Ctrl]キーを押しっ放しにした状態で、カレンダーが存在しているシートの B4セルの所でマウスの左ボタンを押してH5のセルの所にカーソルを移動させてから左ボタンを放し、 B7セルの所でマウスの左ボタンを押してH8のセルの所にカーソルを移動させてから左ボタンを放し、 B10セルの所でマウスの左ボタンを押してH11のセルの所にカーソルを移動させてから左ボタンを放し、 B13セルの所でマウスの左ボタンを押してH14のセルの所にカーソルを移動させてから左ボタンを放し、 B16セルの所でマウスの左ボタンを押してH17のセルの所にカーソルを移動させてから左ボタンを放し、 B19セルの所でマウスの左ボタンを押してH20のセルの所にカーソルを移動させてから左ボタンを放し、 という操作を行って、カレンダーの日付欄と曜日欄の全て($B$4:$H$5,$B$7:$H$8,$B$10:$H$11,$B$13:$H$14,$B$16:$H$17,$B$19:$H$20)をまとめて範囲選択 ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック ↓ 現れた「新しい書式ルール」ダイアログボックスの[数式を使用して、書式設定するセルを決定]をクリック ↓ 「次の数式を満たす場合に値を書式設定」と記されている欄に =AND(ISNUMBER(OFFSET(B4,-MOD(ROWS($4:4)-1,3),)),COUNTIF(INDIRECT("休日!B:B"),OFFSET(B4,-MOD(ROWS($4:4)-1,3),))) と入力 尚、ExcelのバージョンがExcel2007以降(Excel2007も含む)の場合には、 =AND(ISNUMBER(OFFSET(B4,-MOD(ROWS($4:4)-1,3),)),COUNTIF(休日!$B:$B,OFFSET(B4,-MOD(ROWS($4:4)-1,3),))) でも可 ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック ↓ 現れた「セルの書式設定」ダイアログボックスの[フォント]タブをクリック ↓ 現れた「色」欄をクリック ↓ 現れた色のサンプルの中にある赤色の四角形をクリック ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある「書式」欄が赤文字となっている行の「適用先」欄に、「『書式』欄が黒文字に赤の網掛けとなっている行」の所で設定したものと同じ適用先を設定する ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある「書式」欄が赤文字となっている行の「条件を満たす場合は停止」欄をクリックし、チェックを外す ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある[適用]ボタンをクリック ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある[OK]ボタンをクリック 最後に、年が変わる度に 休日シートのB 7セルにその年の春分の日の日付を、 休日シートのB 18セルにその年の秋分の日の日付を、 そして、休日シートのD2以下に、その年の社内カレンダーで定められている御社独自の休日を、 それぞれ、西暦年を付けた形式(或いはH25.11.6の様な形式でも可)で入力して下さい。 以上です。
お礼
ゆっくり頑張って、やってみました。 凄いです!凄すぎです!! あまりに感動してしまい、何度も月を変えて日にちの変化や祝祭日の変化を楽しんじゃいました。 今私が働いてる(パートですが)会社は年配の人ばかりなので、関数がわかる人がいなくて、唯一使ってるのがSUMくらいなので、みんな目を丸くしていました(笑) いや、私も丸くしていたかもしれません。 本当できる人っているんだね……と、社長含め全員で感謝の言葉を述べていました。 『ありがとう』の言葉では足りませんが、本当に助かりました。 お世話になりました。ありがとうございました。 また、何か分からないことが起きたら質問するかと思います。 もし目についたら見ていただけたら嬉しいです。 よろしくお願いいたします。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>スゴイです! >会社の方も『凄い、凄い』と感動していました。 >本当に感謝です。ありがとうございました! 感謝して頂いた上に、感動までして頂けるとは光栄に存じます。 後から気づいた事なのですが、ついでに祝祭日や振替休日の日等の場合も、文字色を赤色で表示させる様にされた方が、より便利になるのではないでしょうか? B2セルに入力されている年月の情報を利用して、別シート上にその年の祝祭日と振替休日の一覧表を自動的に作成し、その一覧表のデータを基にして、条件付き書式によって、祝祭日と振替休日の日の色を変えるという方法です。 但し、春分の日と秋分の日の日付に関しては、国立天文台が天体観測を行って得た地球の軌道や地軸の傾き等のデータを基にして、閣議によって決定されるものであり、それらの天体観測のデータは多数の惑星と太陽の重力的な相互作用によって変動するため、その様な値を求める事は方程式を使って行う事は出来ず、Excelの関数を使って求めようとしましても、どうしても日付にずれが生じてしまう年が出て来ますので、春分の日と秋分の日に関してだけは日本政府が発表した日付を手作業によって入力する必要があります。 それと、祝日の決め方が現在の方式になったのは2007年からであり、2006年以前には祝日の決め方が現在とは異なっていますので、以下の方法で祝日や振替休日を求める事が出来るのは、2007年以降の年に関してのみである事を御断り致しておきます。 【参考URL】 質問No.8328382 売上を平日、土日、祝 重複を避けたい【OKWave】 http://okwave.jp/qa/q8328382.html 今仮に、カレンダーが作成されているシートのシート名が「Sheet1」であるものとします。 まず「休日」という名称のシートを作成して下さい。 次に、休日シートのA1セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(YEAR((TEXT(Sheet1!$B$2,"yyyy年m月")&"1日")+0)>2006)),YEAR((TEXT(Sheet1!$B$2,"yyyy年m月")&"1日")+0),"") 次に、休日シートのA2セルに「元旦」と入力して下さい。 次に、休日シートのB2セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,1,1),"") 次に、休日シートのA3セルに「振替」と入力して下さい。 次に、休日シートのB3セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B2)=1)),B2+1,"") 次に、休日シートのA4セルに「成人」と入力して下さい。 次に、休日シートのB4セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,1,14-WEEKDAY(DATE($A$1,1,0),3)),"") 次に、休日シートのA5セルに「建国」と入力して下さい。 次に、休日シートのB5セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,2,11),"") 次に、休日シートのA6セルに「振替」と入力して下さい。 次に、休日シートのB6セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B5)=1)),B5+1,"") 次に、休日シートのA7セルに「春分」と入力して下さい。 次に、休日シートのA8セルに「振替」と入力して下さい。 次に、休日シートのB8セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B7)=1)),B7+1,"") 次に、休日シートのA9セルに「昭和」と入力して下さい。 次に、休日シートのB9セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,4,29),"") 次に、休日シートのA10セルに「振替」と入力して下さい。 次に、休日シートのB10セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B9)=1)),B9+1,"") 次に、休日シートのA11セルに「憲法」と入力して下さい。 次に、休日シートのB11セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,5,3),"") 次に、休日シートのA12セルに「みどり」と入力して下さい。 次に、休日シートのB12セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,5,4),"") 次に、休日シートのA13セルに「こども」と入力して下さい。 次に、休日シートのB13セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,5,5),"") 次に、休日シートのA14セルに「振替」と入力して下さい。 次に、休日シートのB14セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(WEEKDAY(B13)<4)),ISNUMBER(B13)),B13+1,"") 次に、休日シートのA15セルに「海」と入力して下さい。 次に、休日シートのB15セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,7,21-WEEKDAY(DATE($A$1,7,0),3)),"") 次に、休日シートのA16セルに「敬老」と入力して下さい。 次に、休日シートのB16セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,9,21-WEEKDAY(DATE($A$1,9,0),3)),"") 次に、休日シートのA17セルに「国民」と入力して下さい。 次に、休日シートのB17セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(B18=B16+2)),B16+1,"") 次に、休日シートのA18セルに「秋分」と入力して下さい。 次に、休日シートのA19セルに「振替」と入力して下さい。 次に、休日シートのB19セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B18)=1)),B18+1,"") 次に、休日シートのA20セルに「体育」と入力して下さい。 次に、休日シートのB20セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,10,14-WEEKDAY(DATE($A$1,10,0),3)),"") 次に、休日シートのA21セルに「文化」と入力して下さい。 次に、休日シートのB21セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,11,3),"") 次に、休日シートのA22セルに「振替」と入力して下さい。 次に、休日シートのB22セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B21)=1)),B21+1,"") 次に、休日シートのA23セルに「勤労」と入力して下さい。 次に、休日シートのB23セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,11,23),"") 次に、休日シートのA24セルに「天皇」と入力して下さい。 次に、休日シートのB24セルに次の関数を入力して下さい。 =IF(ISNUMBER($A$1),DATE($A$1,12,23),"") 次に、休日シートのA25セルに「振替」と入力して下さい。 次に、休日シートのB25セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B24)=1)),B24+1,"") 次に、休日シートのD1セルに「社定休日」等と入力して下さい。 ※まだ途中なのですが、サイトの回答欄に入力可能な文字数制限を超えてしまいますので、残りは次の回答で行わせて頂きます。
お礼
素敵なスケジュール表の作成の仕方を教えていただけたのに 新たに、祝祭日が自動で色が変わるやり方があるなんて 全く知らなかったので、驚きと共にわざわざOkwaveさんに 連絡して回答してくださったと聞き、本当感謝の気持ちで いっぱいです。 本当に本当にありがとうございます。
- t-yamada_2
- ベストアンサー率40% (587/1460)
Excel2003でのやり方ですが ■日付 セルA1に 12/1 と入れたら セルA2に =A1+1 と入力し、セルB1をセルG1までドラッグし数式をコピーする ■曜日 セルA2に =A1 と入力 セルB1で右クリック→セルの書式設定→「表示形式」タブの「ユーザー定義」 →「種類」に aaa と入力い「OK」で閉じる セルB2に =A2+1 と入力し、セルB2をセルG2までドラッグし数式をコピーする あとはセルA1だけ入力すれば自動で変更できるかと思います。 ■フォルダ表示 Officeと言うよりOS(windows2000、XP、Vista、7、8など)の問題だと思います。 「アイコンの自動整列 解除」で検索してみてはどうでしょうか? 大体は適当なフォルダを開いてメニューにある「表示」→「アイコンの整列」 →「アイコンの自動整列」のチェックを外すでできますが、 表示形式が「一覧」や「詳細」だと自動配列になってしまいます(XPの場合) もしwindows7と8なら自動配列機能の切り替え機能がなくなってしまったので レジストリをいじらないとできないみたいです。
お礼
回答ありがとうございます。 また、返事が遅くなって申し訳ありません。 確かにその方法もありました! あ、でもそれって2段開いてもできましたっけ? フォルダの方は、どうやら自動配列の切り換え機能が ないみたいです。 そのレジストリ?っていうのを何かしないと ダメみたいで、番号をふる。ということで 落ち着きました。 本当にありがとうございました!
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 最初の質問について・・・ 通常のカレンダーのように日曜日から表示させるのではなく、必ずその月の1日から表示させたい! というコトですよね? 一例です。 ↓の画像のような感じでよいのであれば A1セルに西暦年をA2セルに表示させたい月の数値を入力するとします。 A4セル(セルの表示形式はユーザー定義から d としておきます)に =IF(MONTH(DATE($A$1,$A$2,COLUMN(A1)+7*(ROW(A3)/3-1)))=$A$2,DATE($A$1,$A$2,COLUMN(A1)+7*(ROW(A3)/3-1)),"") A5セル(セルの表示形式はユーザー定義から aaa としておきます)に =IF(A4="","",A4) として、A6セルは何もせずA4~A6セルを範囲指定 → A6セルのフィルハンドルでG列までコピー! そのまま(3行が選択された状態のまま)下へ3行ずつオートフィルでコピーすると 画像のような感じになります。 フォルダ内の並び替えについて・・・ Windows7 からはデスクトップでの並び替えは可能ですが、フォルダ内の並び替えは できないようになってしまっているようですので、 無理やり↓のURLのような方法もあります。 http://news.mynavi.jp/column/windows/112/ ただこの方法よりもフォルダ内のファイルの名前変更でに番号等を振った方が簡単で間違いないような気がするのですが・・・m(_ _)m
お礼
回答ありがとうございます。 また、返事が遅くなって申し訳ありません。 それです! 私のつたない説明でわかっていただけて嬉しいです。 ベタ打ちし、あとからじっくり見直してみて なるほどなぁ……と感心してしまいました。 ifなんて、すっかり使い方を忘れていました。 また、フォルダの方もURLまで貼ってくださり ありがとうございます。 よく見たらとても大変だという事がわかったので 番号をふる。ということで落ち着きました。 色々教えていただきありがとうございました!
お礼
回答ありがとうございます。 また、返事が遅くなって申し訳ありません。 スゴイです! 始め見たときは『え?理解できるかな?』と とりあえずベタ打ちし、あとからじっくり あぁなるから…ここが…と、勉強させていただきました。 会社の方も『凄い、凄い』と感動していました。 本当に感謝です。ありがとうございました! ※皆様にベストアンサーを差し上げたいのですが 会社の方がこのやり方で。と選んだkagakusuki様を ベストアンサーに選ばさせていただきました。