新生活!引っ越してから困らないように注意すべきことは?>>

エクセルで有給休暇管理台帳を作成しました。月・日をその都度入力して年次有給休暇を記録しています。
今年度分として、今後届け出のある都度翌年の1・2・3月を入力します。
しかし、月・日をそのまま打ち込むと有給付与の計算で今年の1・2・3月で計算されてしまいます。
これを、関数ではなくセルの書式設定のユーザー定義に認識させることはできますか?
よろしくお願いします。

A 回答 (8件)

IF関数で条件わけして、1月~3月までを翌年分として計上するようにすればいいのでは?

    • good
    • 5

年から入力でおkです。

    • good
    • 0

>これを、関数ではなくセルの書式設定のユーザー定義に認識させることはできますか?


既に入力されている日付の内2013/1/1~2013/3/31を2014/1/1~2014/3/31に修正したいのであれば置換で出来ます。
但し、操作は"2013/1/"を"2014/1/"に、"2013/2/"を"2014/2/"に、"2013/3/"を"2014/3/"に3回の操作になります。
    • good
    • 2

既に回答が出ているとおり、基本的には、全く数式を使わずにセルの書式だけで翌年を表示することは、できません。



どうしてもということなら、文字列でムリヤリ表示するくらいです。書式記号「"2014/"m/d」を入力すれば、一応お望みどおりの表示にはなります。関数とかではないただの文字列なので、2014 年に変わったら自動的に書式が 2015 に切り替わるということは、ありません。

まあ確かに、ユーザー定義で数式や名前を使えてもいいんじゃないかと私も思わなくもないですが。残念ながらそのような書式記号は、用意されていません。


しかし、そもそも質問者さんは、「今年の1・2・3月で計算されてしまいます」とおっしゃっていますね。だから本当は、日付のシリアル値を今年のものではなく、来年のものとしておくべきなのではありませんか?

書式だけで、来年だとか別のものに見せかけるということは、実際にセルに記入されている値は修正しないまま残すということですよね。それでは困るのではないですか。

1 年後の日付にする操作は簡単です。既に回答が出ていますが、日付をタイプするときに年から記入するか、または既存データに対しては、2/29 をまたがらないなら 365 を足すだけのことです。またぐなら 366 ですね。
    • good
    • 0

>これを、関数ではなくセルの書式設定のユーザー定義に認識させることはできますか?



できません。

年をまたぐ日付の入力は「14/1/8」のように年(の下2桁)から入力するのが基本です。

入力するデータがまとまってある場合は、いくつかの代替法が考えられます。

例えば、ひとまずそのまま「月/日」の形で入力しておき、最後に空白セルに「365」と入力し、そのセルを右クリック「コピー」、該当する日付セルを選択し(飛び飛びの場合はCtrlキーを押しながらクリックして選択)、右クリック「形式を選択して貼り付け」で「加算」にチェックを入れて「OK」します。

もちろん、来年のデータだけをまとめて入力したいなら、パソコンの日付の設定を1年進めて「月/日」の入力形式で来年のデータとして入力することができます(入力後に日付を戻す)。
    • good
    • 0

まぁ一応ご質問の直接の回答として、あと数日が待てない、どーしても年内に来年の1,2,3月分まで記入を終えてしまいたいというご相談でしたら、パソコンの(ウィンドウズの)日付設定を暫定的に来年の日付に変えて(デスクトップ画面の右下の日付表示を右クリックして/ウィンドウズのコントロールパネルの日付と時刻で)おいてからエクセルを起動し、そのまま月/日で記入してください。



エクセルはあなたのパソコンが「今日は2014年の12月29日だ」と言ってれば、素直にそれに従います。
    • good
    • 1

はて??



>しかし、月・日をそのまま打ち込むと有給付与の計算で今年の1・2・3月で計算されてしまいます。

今日明日はまだですが、年明けの1月以降に月日を打ち込めば、ちゃんと2014年の日付として入力されます。
あと数日お待ちください。
    • good
    • 0

2014/1/22などのように


年から入力すればよろしいかと思います。
    • good
    • 0

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

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

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

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

QExcelでの予定表作成で月をまたぐ場合の表示

Excelで予定表を作成し、月毎に1~31日までの表示欄を作り、基準日から割当て自動で日付が入るようになっています。
例えば2月の場合で2/28を越して3/1、3/2、3/3が余白に表示されないようにする方法はありますか?

自分で考えた案としては、余白となる可能性がある29~31までの3日間だけについて、
なんらかの条件付き書式を設定してフォントを変えて非表示に見せれば良いのではないかと考えました。
が、都合の良い条件が思い付かず・・・。

アドバイスを頂けますと幸いです。
宜しくお願い致します。

▼こちらに画像をアップしました。
http://uploda.cc/img/img51d5c7b569ff0.jpg

Aベストアンサー

(A2セルの場合)
上のセル(A1)の+1日をA2に表示するとして
 =A1+1

これだけだと、月が変わっても出てしまうので
A1セルの「月」とA1セル+1日の「月」を比較して
 =IF(MONTH(A1)=MONTH(A1+1),A1+1,"")

これでもまだうまくいかない。
何故なら、たとえば2月の列の3月1日は空白になるが、その次の行がエラーになる
そこで、上のセルが空白のときの処理を加える
 =IF(A1="","",IF(MONTH(A1)=MONTH(A1+1),A1+1,""))
これをA2に記入して下にコピーすれば行ける
「余白となる可能性がある29~31までの3日間だけ」をこの数式(参照元は1日前のセル)にしてもOK

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

Qエクセルで年月を連続で表示させる関数

エクセルの関数については簡単なものしかわからない者です。

実は、借入金の支払予定表というかシミュレーションをしようと思いその表を作成しているのですが、借入実行月や返済回数等を入力した時点で金利と元金の返済予定を数十ヵ月にわたり表示させたいのです。

調べたところ「=DATE(YEAR(A1),MONTH(A1)+1,DAY(A1))」という計算式で表示できることがわかりました。

ところが確かに今年については
 2013/10
 2013/11
 2013/12
と表示されるのですが、年が変わると
 #NUM!
#NUM!

とエラー表示になってしまいます。

これがきちんと 2014/01、2014/02..2020/01...と連続した年月が表示されるようにできないものでしょうか?

ご指導よろしくお願いします。

Aベストアンサー

こんばんは!
横からお邪魔します。

すでに色々な方から回答されていますが、どれもちゃんと表示されると思います。
しかし、お礼欄を拝見すると解決していないようなので・・・

別案です。
仮にA1セル以降に表示させるとします。
A列すべてを範囲指定 → 右クリック → セルの書式設定 → 表示形式 → ユーザー定義
→ G/標準 となっているところを消して
yyyy/mm
と入力しOK

A1セルに
2013/1 と入力しておきます。
A2セルに
=EDATE(A1,1)
という数式を入れオートフィルでずぃ~~~!っと下へコピーしてみてください。

※ Excel2003までのバージョンの場合、EDATE関数を使用するにあたり
メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。m(_ _)m

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エクセルで、条件に一致した行を別のセルに抜き出す方法

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

たとえば、

<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行までとしていますが、必要に応じて変更して下さい

QExcel日程表:開始日~終了日を自動で色付けたい

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見してわかるようにしたいです。
複数案件の進行が重複し、稼働の重たくなる時期を確かめるためです。


※2003でも2007でも使える書式設定でお願いします。
※私はマクロの知識が乏しい&Excelスキルの低い同僚にも使ってもらうため、マクロは使いたくありません。
※のちのち数式が崩れたときにも修復が容易なように、シンプルな数式だとありがたいです。
※条件付き書式以外の方法で、上記が解決できるならそれも教えてください。



ご教授ください。よろしくお願いします。

Excelで月間スケジュールを作りたいと思います。

複数案件の一覧表にし、案件の開始日と終了日の期間のセルに、自動で色が付くようにしたいです。
条件付き書式で出来るでしょうか?
どのような条件付けをすれば実現できますか?
添付画像のような表をイメージしています。

<やりたいこと>
(1)左側に日付を入れると、右側のカレンダー部分に色がつく。(開始日から納品日まで)
(2)受注日と納品日は濃い色を付ける。
(3)月をまたがる日付を入れてもエラーにならない。

<目的>
各案件への取り組み期間が一見...続きを読む

Aベストアンサー

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セルのフィルハンドルでAI列までコピーしておきます。
これで「年」・「月」を変更すればちゃんと大の月・小の月の対応ができます。

後は条件付書式で可能です。
Excel2003の場合
色を付けたいセル(E5セル以降)をすべて範囲指定
書式 → 条件付書式 → 「数式が」を選択 → 数式欄に
=OR(AND(E$3<>"",E$3=$B5),AND(E$3<>"",E$3=$D5))
として → 書式 → パターンから「赤」を選択

次に条件付書式 → 「追加」 → 上記と同様に数式欄に
=AND(E$3<>"",E$3>=$B5,E$3<=$D5)
として → ・・・ → パターンから「黄色」を選択
これで↓の画像のような感じになります。

※ Excel2007以降ですと、条件付書式 → 「数式を使用して・・・」という項目になると思います。
数式欄は同じ数式にします。

※ 条件が重複する場合は最初の条件付書式が優先されますので、
「受注日」・「納品日」の条件付書式を条件1にします。
Excel2007以降の場合は条件付書式の項目で上の行に表示されている方が優先されますので、
右側の▲▼で優先順位は自由に変更できます。

参考になりますかね?m(_ _)m

こんばんは!
一例です。
カレンダーもシリアル値の方が何かと便利ですので、
余計なお世話かもしれませんが、↓の画像のようにカレンダーを作成します。
(開始日・受注日・納品日はすべてシリアル値で入力します)

A1セルに「西暦年」C1セルに「月」を入力します。
E3セル(セルの表示形式はユーザー定義から d とだけしておきます)に
=IF(MONTH(DATE($A$1,$C$1,COLUMN(A1)))=$C$1,DATE($A$1,$C$1,COLUMN(A1)),"")

E4セルに
=IF(E3="","",TEXT(E3,"aaa"))
という数式を入れ、E3・E4セルを範囲指定 → E4セ...続きを読む

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

Qエクセルで一括で日付の年だけ変えれる方法ってありますか?

エクセルで年表の様な資料を作ってもらいました。

2008年
12月10日
12月11日
12月20日

2009年
1月3日
1月8日
2月9日

2010年
1月6日
1月13日

このような感じになっています。

作った方は大きい見出しとして年度を入れているのでわかりやすいと思っているようなのですが、
すべての日付を月、日しか入れていないので
どの年度のも2015年になっています。

2008年のは、2015/12/10 2015/12/11 2015/12/20 という具合です。

これを一つ一つ正しい年月日になおそうと思うのですが、ほぼ毎週、
過去10年分の活動記録のため、すごく量があり手間です。

エクセルの中に、一括でここからここまでは2008年という風に変換できる方法はありませんか?

Aベストアンサー

シリアル値ですが、通常の検索/置換の対象になります。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1357273123

範囲を選択した状態で置換作業に入れば、その範囲の内部だけが置換されます。


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

人気Q&Aランキング