『決まった文字を入力』(タカ)
Excelで1ヶ月分のシフト表を毎月作成しています
勤務は日勤、早番、遅番、夜勤、夜勤明け、休みで日、早、遅、夜、明、休の様に頭文字を入力しています。
早、遅、夜、明は固定で続くので早を入力したら遅夜明と自動で入力される様に関数や設定で出来ないでしょうか?可能ならやり方を教えていただきたいです
例
B2セルに早を入力。C2セル遅。D2セル夜。E2セル明。F2セル休と自動で入力される
宜しくお願い致します
< 使用 Excel:Excel2019、使用 OS:Windows10 >
半自動で良ければ「ユーザー設定リスト」を設定して、 B2に「早」と入力して、右方向へフィルするとか。
ユーザー設定リストの作り方 https://www.crie.co.jp/chokotech/detail/222/
全自動で行うなら、Excel2019だとスピル機能が無いので、 マクロを使う事になるのでは。 (にわか) 2025/04/17(木) 08:07:56
>F2セル休 休も?
C2セル =MID(SUBSTITUTE("早遅夜明休",$B2,""),COLUMN(A1),1) F2までコピー (TI) 2025/04/17(木) 08:16:37
Option Explicit Sub OneInstanceProgram_Main() Dim i As Long Dim j As Long Dim y As Long Dim cNt As Long Dim kAry(), fAry() Dim s As Date Dim e As Date fAry = Array("項目", "F1", "F2", "F3", "F4", "F5", "F6") kAry = Array("日", "早", "遅", "夜", "明", "休") s = DateSerial(2025, 4, 21) e = DateAdd("m", 1, s) - 1 y = 1: cNt = 1 With Worksheets("Sheet1") .UsedRange.Clear .Cells(y).Resize(, UBound(fAry) + 1) = fAry For i = s To e y = y + 1 .Cells(y, 1) = Format(i, "mm/dd") For j = 0 To UBound(kAry) .Cells(y, j + 2) = kAry(j) Next ArrayRotate kAry Next End With Erase kAry, fAry End Sub Private Sub ArrayRotate(v) Dim i As Long Dim j As Long Dim tBl As Object Dim mSwap As Variant Set tBl = CreateObject("System.Collections.ArrayList") For i = 1 To UBound(v) tBl.Add v(i) Next tBl.Add v(0) v = tBl.ToArray tBl.Clear Set tBl = Nothing End Sub (隠居Z) 2025/04/17(木) 08:45:50
ひょっとして、B2が「遅」だったら 夜明休早にしたいのかな?
C2セル =MID("早遅夜明休",MOD(FIND($B2,"早遅夜明休")+COLUMN(A1)-1,5)+1,1) F2まで右にコピー。 (TI) 2025/04/17(木) 09:03:09
>(?) 2025/04/17(木) 09:19:34 B2には「早」しか入力しないという解釈なの? (TI) 2025/04/17(木) 09:30:51
↑ その解釈なら、B2にわざわざ「早」を入力する必要ないのでは?
B2セル =MID("早遅夜明休",COLUMN(A1),1) 右にコピー。 (TI) 2025/04/17(木) 12:01:12
返信が遅れてしまい申し訳ありませんでした
皆様ご回答ありがとうございました
(タカ) 2025/04/28(月) 14:35:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.