[[20191007012711]] 『二種類の範囲内の平日のみ表に書き出したい』(ぺぺ) ページの最後に飛ぶ

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

 

『二種類の範囲内の平日のみ表に書き出したい』(ぺぺ)

     B
 10  日付  乗車駅   降車駅  切符代  片道or往復
 11  10/2  品川     蒲田

 と、交通費を、入力するとき月初〜月末の平日のみ
 を、書きたいとき手入力ではなくて関数かマクロを
 利用して簡単に書く方法ありませんか?

 10月1日〜月末までと10月6日〜11月5日までを2種類作成
 するのでボタンで切り替えが出来ると嬉しいです。

 乗車駅〜降車駅は、基本的に同じ。
 帰りは、定期券範囲なので区分は片道となります。

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


祝日があるので平日のみを書きだすというのをコンピュータだけでやらせるのは面倒です。
たとえば10/1〜11/5の間では体育の日と文化の日、それに加えて今年だけは即位礼正殿の儀の日も祝日です。
そういったものがどこかに一覧で書き出してあるという前提で以下は進めます。
まず欄外に基準日を記入します。
基準日が土日祝日でなかったら基準セル(B11)に日付を記入して一つ下のセル(B12)へ移動
これを月末日の回数だけ繰り返します(10月なら31回、11月なら30回)。
土日判定はweekday(日付,2)が5より大きいかで判定すると良いと思います。
祝日判定は祝日一覧にその日付があるかをワークシート関数のcountifだったり
vbaのfindメソッドだったりで探すと良いと思います。
基準日の1日←→5日切替は、
基準日の値が日付で、day(日付)=1のときに日付+4、day(日付)=5のときに日付-4するようにすれば良いと思います。

ためしに関数でもマクロでも良いので作ってみてください。
上手くいかなかったときは、「これが上手くいかない」とまた相談に来てください。
(黄色い循環参照) 2019/10/07(月) 02:29


 ちょっと質問が呑み込めないので結果のサンプルを書いて貰えないですか?

 1ヶ月だと大変なので、全期間が 10/10〜10/15 として、
                求める交通費も 10/10〜10/15 の平日のみとしてください。

(半平太) 2019/10/07(月) 06:34


 >と、交通費を、入力するとき月初〜月末の平日のみ
 >を、書きたいとき手入力ではなくて関数かマクロを
 >利用して簡単に書く方法ありませんか?

んと、意味がよくわからないです。
というか状況のイメージがつかめません。

どこかにすでに一覧があって(交通費のみの一覧?)、
があって、土日以外の日付を除いたデータの一覧を、
別途シート等に「表示」したいのですか?

それとも、
これから、日付欄に平日の日を入力するのですか?

合わせて祝日も取り除く対象に含まれますか?
(まっつわん) 2019/10/07(月) 10:57


日付列を最終日までオートフィルしてから休みの日の行を手作業で消し、
残りの列を先頭行だけ記入してコピー、最終行まで貼り付け

これが一番単純かつ簡単なように見えます。
(mori) 2019/10/07(月) 14:01


蛇足です。
https://www.bizocean.jp/doc/howto/9/
きっとぺぺさんはこういう交通費精算書が作りたいのではないでしょうか。
(mori) 2019/10/07(月) 14:20

交通費清算書のフォーマットがあるので
そのフォーマットの日付欄を埋めていきたいです。

定期券外への範囲に、暫く通勤するので平日分毎日書くことになります。
さすがに、ほんの数分でも時間がないためどうにかして自動化したいのです。

乗車駅と降車駅は、毎日同じ。
で、行きのみなので片道となります。
(ぺぺ) 2019/10/07(月) 21:05


自動化させるコードを自分で書く時間も無く、
求められている結果サンプルも作れないようならこの話はおしまいです。
(黄色い循環参照) 2019/10/07(月) 21:49

毎日書くなら、
その都度、その日を入れるだけですよね?
あえて先に入力する意味や、
必然性がわかりません。

(まっつわん) 2019/10/08(火) 00:09


毎日は、面倒なので書いていません。
基本的に、1ヶ月分まとめて書いて終了です。

10 日付  乗車駅   降車駅  切符代  片道or往復

 11  10/2  品川     蒲田  110      片道
 12  10/3  品川     蒲田   110    片道
 13  10/4  品川     蒲田   110    片道
 14  10/5  品川     蒲田   110   片道
(ぺぺ) 2019/10/08(火) 19:20

>基本的に、1ヶ月分まとめて書いて終了です。
他の方も書かれてますが、
1行入力して、オートフィルでコピー
不要な日付の行を目視で確認して削除
で、よくないですかね?

それと、マクロやり出したら、
完成するまでにかなり時間が掛かると思うので、
(完成してしまえば、実行は一瞬ですが。)
手を出さない方が無難です。(たぶん時間ががっつりないと完成しない。)
それ以前に、駅名をプルダウンリストから選択したり、料金を関数で表引きするようにしたり、
そういうとこの入力の簡素化をもくろんだ方が有益かと思います。
エクセルには結構いろいろ入力支援機能が備わってますので、
それらの使い方を検索してみてはいかがでしょうか?

 >10月1日〜月末までと10月6日〜11月5日までを2種類作成
 >するのでボタンで切り替え

データは1つのシートに順次追記して行き、
別のシートに表示するならば、
必要な分を、フィルターオプションで抽出したらいいと思います。

フィルターオプションの作業の自動化程度なら、マクロの記録で記録されたコードを、
少し直せば行けると思います。

(まっつわん) 2019/10/09(水) 09:27


 例えば、今月は1日が平日なので10/1と入力する→右クリックでフィルコピーする
 →連続データ(週日単位)を選択する

 これだけで土日以外(祝日は入りますが)の日付だけ入力することができます。
 後は微調整だけですよね。
 調べればいくらでもやり方はあると思います。

 どこかの列に1年分の平日だけの日付を作って置いてそこからコピペしてきても
 いいですし。1年分の日付を入れても300行にもならないでしょうしね。
(コナミ) 2019/10/09(水) 10:20

 平日とは何か、という肝心な説明がないんですけど?
 土日祝日以外ってこと?

 だとしたら、2019/10/08(火) 19:20 の表
 その日付、2019年10月ですよね?
 10/1(火) がなく、10/5(土) があるのはなぜ?

 あと、年末年始休暇とか夏季休暇等は関係ないんですか?

 以上、確認だけ
(笑) 2019/10/09(水) 12:18

 Sub 休みの日を手動で消して下部欄外空白行を増やす()
 '選択中のセルのある行を削除して下の欄外に同じ行数の空白行を挿入します
 '雑に作ったので不具合があったらスミマセン
 Dim a(1) As Long, b As Long, c As String
 a(0) = Selection(1).Row
 a(1) = Selection(1).End(xlDown).Row - Selection.Rows.Count + 1
 For d = 0 To 1
 b = a(d) + Selection.Rows.Count - 1
 c = a(d) & ":" & b
 If d Then
 Rows(c).Insert Shift:=xlDown
 Else
 Rows(c).Delete
 End If
 Next d
 End Sub
(べん) 2019/10/09(水) 13:59

コメント返信:

[ 一覧(最新更新順) ]


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