[[20181025104739]] 『名前の定義による年度ごとの稼働日取得』(いち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『名前の定義による年度ごとの稼働日取得』(いち)

4月〜3月までの各シートと稼働日を登録した年度カレンダーがあります。
4月のシートを例にすると
B3に2018/1/1(表示は2018)
B4に=VLOOKUP(MONTH(B9),月英語,2,0)(表示はApril)
月英語は名前の定義で年度カレンダーのAH2:AI13で定義しています。
B9に=DATE(YEAR(B3),MONTH(B3)+3,DAY(B3))(表示は4月1日)
B10以降は4月2日・・・・・4月30日まであります。
M9に=IF(HLOOKUP(B9,INDIRECT(B4),4,0)=0,"",HLOOKUP(B9,INDIRECT(B4),4,0))(表示は休日には1が入り稼働日は空欄)
条件付き書式で休日にはB:Lの範囲で塗りつぶすようにしてあります。

やりたいこと
年度カレンダーを2018と2019・・・シートを作成し、月シートのB3の年度を変えたときその年度の稼働日を取得したい。

名前の定義の範囲を変更する以外の方法はありますか?
あればご教授いただきたいです。

宜しくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 >月シートのB3の年度を変えたときその年度の稼働日を取得したい。 

 どういうこと?
 もっと詳しく具体的に説明できませんか?

 >M9に=IF(HLOOKUP(B9,INDIRECT(B4),4,0)=0,"",HLOOKUP(B9,INDIRECT(B4),4,0))
 
「April」と名前定義された表を参照してるんでしょうけど、
 それはどんな表なんですか?
 これも具体的に説明できませんか?

 それと、その式 ↓ ではダメなんですか?
 =IF(HLOOKUP(B9,INDIRECT($B$4),4,0)=1,1,"")

 ■その他、質問とは直接関係ないと思われる事柄について

 >B3に2018/1/1(表示は2018)
 
「2018」とだけ入力すればいいのでは?
 そうすれば B9 =DATE(B3,4,1) で済みますよね。

 >B4に=VLOOKUP(MONTH(B9),月英語,2,0)(表示はApril) 
 >月英語は名前の定義で年度カレンダーのAH2:AI13で定義しています。

 B4 =TEXT(B9,"mmmm")

 これでも「April」になりますけど、何か違うんですか?

 以上
(笑) 2018/10/25(木) 14:07

 やりたいことの「稼働日を取得」というのは、M列の数式がやっていること?
 それを、B3の年度によって参照するシート(範囲)を切り替えたい、ということですかね?

 だとして

 >名前の定義の範囲を変更する以外の方法はありますか? 
 
「名前の定義の範囲を変更する」方法なら分かる、ということのようですけど
 それは具体的にどんな方法ですか?

 以上
(笑) 2018/10/26(金) 11:20

返信が遅くなり申し訳ありません。

>やりたいことの「稼働日を取得」というのは、M列の数式がやっていること?
そうです。
年度カレンダーのほうに
C列〜AG列で

2行目に日付(4月)
3行目に曜日
4行目に土日には・(・が表示されるように入るに数式が入っています。)
5行目に稼働日に1
6行目に日付(5月)
7行目に曜日
8行目に土日には・
9行目に稼働日に1
・・・・

のように3月まで繰り返し、名前の定義で
Aprilは年度カレンダー2018!C2:AG5
Mayは年度カレンダー2018!C6:AG9
のように定義しています。

年度カレンダー2019のシートを作成し、月シートのB3を2018の場合は年度カレンダー2018のシートから稼働日取得し
B3が2019の場合は年度カレンダー2019のシートから稼働日取得をしたいです。

>「名前の定義の範囲を変更する」方法なら分かる、ということのようですけど

 それは具体的にどんな方法ですか?

一つ一つ手で名前の定義の管理から範囲を修正することです。

(いち) 2018/10/26(金) 13:06


 名前の定義を2018年の4月なら April_2018 のように年を付ける、でもよければ

 B3セルには「2018」とか「2019」のように年だけを入力(表示形式「標準」)

 B9 =DATE(B3,4,1)

 B10 =B9+1  下にコピー(2月のうるう年はどうするつもりですかね?)

 B4 =TEXT(B9,"mmmm")

 としておいて(現状を変更しましたが、問題ありますか?)

 M9 =IF(HLOOKUP(B9,INDIRECT($B$4&"_"&$B$3),4,FALSE)=1,1,"")
 または
 M9 =IF(INDEX(INDIRECT($B$4&"_"&$B$3),4,DAY(B9))=1,1,"")

 下にコピー

 ところで年度カレンダーですが、
 月ごとに行を変えずに、1年分の日付を横1行に、またはタテ1列にできないんですか?
 そうすれば月ごとに名前の定義をしなくても済むと思いますけど。

 以上、参考まで
(笑) 2018/10/26(金) 15:19

ありがとうございます。

変更頂いたもので問題ありませんでした。

年度カレンダーは1列にできますのでやってみます。

もしまたつまづいたら質問させて下さい。

(いち) 2018/10/26(金) 15:50


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.