advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 19635 for 20�����������������������... (0.004 sec.)
[[20180825165854]]
#score: 2681
@digest: 0fa3a5fc1e577ea1cdc32ed8dc23bcd4
@id: 77116
@mdate: 2018-08-26T08:27:20Z
@size: 7645
@type: text/plain
#keywords: shopdse (105838), 時op (58591), 時cl (56447), rwtowrit (36340), 舗日 (34297), isovtime (29523), rngptn (29523), paternrow (29523), poscol (29072), worke (28639), 京8 (25676), 川8 (21562), 祝( (19159), 付)) (18595), 川20 (17392), ptne (14761), works (13719), 月&# (13438), 京20 (13432), 玉8 (11665), 了2 (9114), 神奈 (8060), 日開 (7920), 店舗 (7853), 奈川 (7565), 始終 (7012), ・祝 (6324), 12316 (5899), 舗に (5526), 東京 (4473), 埼玉 (4465), ↓↓↓ (4210)
『曜日と担当店舗によって変わる時間外の抽出』(ありさ)
お世話になっております あまり、関数やVBAも詳しくなくご協力頂けますでしょうか 複数のシートをまとめたVBAからのまとめデータとなります 店舗によって営業時間が異なるのと、土日・祝でも異なります OPEN前の時間と営業時間後の場合のデータのみを抽出が希望となります 東京なら 月&#12316;金 11時OPEN&#12316;18時close 土 10時OPEN&#12316;20時close 日・祝 10時OPEN&#12316;19時close 神奈川や埼玉なら 月&#12316;金 10時OPEN&#12316;18時close 土 11時OPEN&#12316;19時close 日・祝 12時OPEN&#12316;20時close 群馬なら 月&#12316;土 10時OPEN&#12316;18時close 日・祝 12時OPEN&#12316;20時close となりシートは下記のように表示されております A B C D 1店舗 日 開始 終了 2東京 8/2 9:00 10:00 3東京 8/15 20:30 22:30 4埼玉 8/15 14:50 17:20 5東京 8/17 20:30 21:28 6神奈川 8/12 9:00 11:00 7埼玉 8/13 15:00 18:00 8神奈川 8/15 18:50 20:20 上記のような表があり 営業時間外の場合の列のみ抽出する方法を教えて頂けますでしょうか ↓↓↓抽出をこのようにしたいです↓↓↓ A B C D 1店舗 日 開始 終了 2東京 8/2 9:00 10:00 3東京 8/15 20:30 22:30 4東京 8/17 20:30 21:28 5神奈川 8/12 9:00 11:00 6神奈川 8/15 18:50 20:20 ※営業時間は、現状のところ3パターンです 店舗によって異なるのと、曜日によっても異なるので悩んでしまいまして ご指導よろしくお願いします < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- >店舗によって異なるのと、曜日によっても異なるので悩んでしまいまして その部分は、ケース分けをすればいいので、こちらで何とか出来ます。 しかし、「抽出」の仕様自体がハッキリしないので、 「東京の日曜日の1パターンしかない」としたら、 コードはどんなものになるのか・・そのコードをアップ頂けると明解で有難いのですが。 (半平太) 2018/08/25(土) 20:33 ---- 半平太様 説明不足で申し訳ありません(>_<) 関数も調べつつ行っているので、コードがどのようにすればいいのかな状態です 申し訳ありません 抽出としては、東京の日曜は10時〜19時以外の時間のみとなるので 10時前の時間が記載されていたら時間外 また、19時以降の時間が記載されていたら時間外と判断し、判断されたもののみの列が抽出されるのが希望となります。 店舗の曜日に合わせて、さらに営業時間ではないものを抜き出したいのですが いろいろ検索して IFとTIMEを使いつつ行おうとは思ったのですが、これがあっているのかも微妙なので より良い方法があれば教えて頂けると助かります<(_ _*)> (ありさ) 2018/08/25(土) 21:41 ---- <Sheet1>シートのテストデータ 行 ___A___ ______B______ __C__ __D__ 1 店舗 日 開始 終了 2 東京 2018/8/2(木) 9:00 10:00 3 東京 2018/8/15(水) 10:30 18:00 4 埼玉 2018/8/15(水) 14:50 17:20 5 東京 2018/8/17(金) 20:30 21:28 6 神奈川 2018/8/12(日) 9:00 11:00 7 埼玉 2018/8/13(月) 15:00 18:00 8 神奈川 2018/8/15(水) 18:50 20:20 <パターン>シートを作成して、以下のデータを入力して置く。 H列には祝日を入力してください。 行 ___A___ ___B___ __C__ ___D___ __E__ __F__ __G__ _____H_____ 1 店舗 日祝(2) 月金(4) 土(6) 祝日リスト 2 東京 10:00 19:00 11:00 18:00 10:00 20:00 2018/8/15 ←テスト用 3 神奈川 12:00 20:00 10:00 18:00 11:00 19:00 4 埼玉 12:00 20:00 10:00 18:00 11:00 19:00 5 群馬 12:00 20:00 10:00 18:00 10:00 18:00 <抽出>シート テスト結果図 行 ___A___ ______B______ __C__ __D__ 1 店舗 日 開始 終了 2 東京 2018/8/2(木) 9:00 10:00 3 東京 2018/8/17(金) 20:30 21:28 4 神奈川 2018/8/12(日) 9:00 11:00 5 神奈川 2018/8/15(水) 18:50 20:20 '標準モジュールに貼り付けるマクロ Private Enum ColOrder 店舗 = 1 日付 開始 終了 End Enum Sub overTime() Const Ws1N As String = "Sheet1" '←実態のシート名に合わせる Const WsExN As String = "抽出" '←実態のシート名に合わせる Const WsPtnN As String = "パターン" '←新規シート名 Dim rngPtn As Range Dim paternRow, ShopDSE, Result() Dim RW As Long, CL As Long, posCol As Long, RWtoWrit As Long Dim isOvTime As Boolean Dim ptnS, ptnE, WorkS, WorkE Rem パターンRangeを取得 Set rngPtn = Worksheets(WsPtnN).Range("A2").CurrentRegion Application.ScreenUpdating = False Worksheets(WsExN).UsedRange.ClearContents '更地化 With Worksheets(Ws1N) With .Range("A1", .Cells(.Rows.Count, "A").End(xlUp).Offset(, 3)) .Copy Worksheets(WsExN).Range("A1") '丸ごとコピー ShopDSE = .Value2 ReDim Result(1 To UBound(ShopDSE) - 1, 1 To UBound(ShopDSE, 2)) End With End With RWtoWrit = 0 For RW = 2 To UBound(ShopDSE) isOvTime = False '初期化 paternRow = Application.Match(ShopDSE(RW, 店舗), rngPtn.Columns(1), 0) If Not IsNumeric(paternRow) Then MsgBox "店舗名「" & ShopDSE(RW, 店舗) & "」はパターンに無いです。処理中止" Exit Sub Else If Application.CountIf(rngPtn.Columns("H"), ShopDSE(RW, 日付)) Then '祝日 posCol = 2 '日祝(2) Else Select Case Weekday(ShopDSE(RW, 日付)) Case 1: posCol = 2 '日祝(2) Case 2 To 6: posCol = 4 '平日(4) Case 7: posCol = 6 '土曜(6) End Select End If End If With rngPtn(paternRow, posCol) ptnS = .Value2 ptnE = .Offset(, 1).Value2 End With WorkS = ShopDSE(RW, 開始) WorkE = ShopDSE(RW, 終了) WorkE = WorkE + IIf(WorkE < WorkS, 1, 0) '深夜越え考慮 If WorkS < ptnS Or _ ptnE <= WorkS Or _ WorkE <= ptnS Or _ ptnE < WorkE Then isOvTime = True End If If isOvTime Then RWtoWrit = RWtoWrit + 1 For CL = 1 To 4 Result(RWtoWrit, CL) = ShopDSE(RW, CL) Next CL End If Next RW Rem 結果打ち出し Worksheets(WsExN).Range("A2").Resize(UBound(Result), UBound(Result, 2)).Value = Result Application.ScreenUpdating = True End Sub (半平太) 2018/08/26(日) 10:43 ---- 半平太様 うわぁー!!本当にありがとうございます(>_<) 試してみたのですが、下記のコード Select Case Weekday(ShopDSE(RW, 日付)) 型が一致しませんと表示されてしまいます 黄色部分を見ると、 ShopDSEはSheet1の日付である2018/8/2(木)となっています 本当申し訳ありませんが再度教えて頂けますでしょうか よろしくお願いします(>_<) (ありさ) 2018/08/26(日) 16:17 ---- >ShopDSEはSheet1の日付である2018/8/2(木) そこは、日付データ(シリアル値)ですよね? ※私のサンプルは、表示形式で曜日も表示させてはいますけれども・・ 私のサンプル通り「文字型で手入力」したのでしょうか? (半平太) 2018/08/26(日) 17:08 ---- 半平太様 値を設定しなおしたら無事にエラーなく表示されました。 ご指摘ありがとうございます これで作業が本当に楽になります(>_<)泣 本当に拙い説明の中、何度もありがとうございました (ありさ) 2018/08/26(日) 17:27 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201808/20180825165854.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97032 documents and 608010 words.

訪問者:カウンタValid HTML 4.01 Transitional