advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 779 for シリアル値 とは (0.008 sec.)
シリアル値 (1875), とは (29356)
[[20100121113849]]
#score: 8288
@digest: 223d6ccd022446c457635b9a6faa23e4
@id: 47317
@mdate: 2010-01-21T06:41:45Z
@size: 5401
@type: text/plain
#keywords: ギギ (238336), ギコ (19159), 金△ (15241), ギク (12325), 水○ (9554), 象行 (9100), 記対 (7770), 月△ (7675), 木○ (7080), 提: (6984), サギ (6877), 日情 (6760), 土", (6192), 金土 (5948), 水木 (5703), 木金 (5686), 火水 (5685), 月火 (5580), 土" (5527), 記作 (3816), 列日 (3537), 列セ (3266), カギ (3171), 転記 (2265), instr (2005), 曜日 (1747), ベタ (1594), 日曜 (1427), 、転 (1247), 対象 (1217), 件2 (1157), 変動 (1052)
『条件判断をしながらの繰り返し・連続転記』(あらくま)
幾度となく、お世話になっている"あらくま"です。 以下のような構成で、E6:O10のデータをF12:0377へ 次のような条件で転記するマクロを組みたいと考えています。 条件1:B12の曜日情報を取得し、E6:O10のどの行データから 転記を開始するかを判断する。以下の場合、木曜日 スタートですから8行目データ(F8:O8)から順に 9行目(F9:O9)、10行目(F10:O10)、5行目、6行目 7行目、8行目、再び9行目、以下順に、条件2以下の 条件を判断情報として作業を進める。 条件2:日曜日はデータがないので作業せずに、次の月曜日 の判断・作業に移る。 条件3:E13以下のE列データで"○"のときのみ、データの転記 作業を行う。空白、または"△"の場合は、転記作業を せずに作業を進める。 なお、月日・曜日情報は、選択年度により変動します。 また、閏年の場合、データ最終行が378行となります。これら の変動にも対応したいと考えています。 分かりにくい説明とは思いますが、どなたかご教授願えませんか。 A B C D E F G H I J K L M N O 1 2 3 1 2 3 4 5 6 7 8 9 10 4 5 月 ギ ギ ギ ギ ギ 6 火 カ ギ ギ ギ ギ ギ ギ コ 7 水 ギ ギ ギ ギ ギ ク 8 木 サ ギ ギ ギ ギ ギ 9 金 ギ ギ ギ ギ ギ ギ ギ コ 10 土 ギ ギ ギ 11 12 月日 曜 業務 判 13 4/1 木 △ 14 4/2 金 △ 15 4/3 土 16 4/4 日 17 4/5 月 △ 18 4/6 火 ○ カ ギ ギ ギ ギ ギ ギ コ 19 4/7 水 ○ ギ ギ ギ ギ ギ ク 16 4/8 木 ○ サ ギ ギ ギ ギ ギ 〜 40 4/28 水 ○ 41 4/29 木 42 4/30 金 ○ 43 5/1 土 ○ 〜 370 3/24 木 ○ 371 3/25 金 △ 372 3/26 土 373 3/27 日 ○ 374 3/28 月 △ 375 3/29 火 △ 376 3/30 水 △ 377 3/31 木 [△Excel2003,WindowsXP] ---- F13から次のような数式で対応できると思われます。 =IF(OR($E13="△",$E13="",TEXT($A13,"aaa")="日"),"",TEXT(VLOOKUP(TEXT($A13,"aaa"),$E$5:$N$10,COLUMN(B13),FALSE),";;;@")) 前提:A列日付がシリアル値 (みやほりん)(-_∂)b ---- マクロですと、ベタなコードで考えると以下のような感じになります。 配列を使えばもっと早くできますが、考え方を理解するようにベタにセルを操作するコードにしています。 Sub test() Dim i As Long, j As Long With Worksheets("Sheet1") For i = 13 To .Range("A13").End(xlDown).Row If IsDate(.Range("A" & i).Value) And .Range("E" & i).Value = "○" Then j = InStr(1, "月火水木金土", .Range("B" & i).Text) If j > 0 Then .Range("F" & i & ":O" & i).Value = .Range("F" & j + 4 & ":O" & j + 4).Value End If End If Next i End With End Sub 参考にしてみてください。 (momo) ---- みやほりんさん、数式で実現可能とは、思いもよりませんでした。 >前提:A列日付がシリアル値 この条件内で、克つ、他の作業で数式がはいいているセルに対して改めて 入力作業が行わない、他のセルからコピー・貼り付けしないとなりましたら 活用させていただきます。 IsDate関数、InStr関数について調べ、理解を図りながら、コードをより深く 読み取っていきたいと思いますが・・・。 現時点での読み取りは次のとおりです。 転記していく対象セル範囲をEnd(xlDown).Rowで入手し、転記対象行を変数 iを1ずつ増加させながら、対象行を特定する。 その対象行のA列セルの値が日付型かつE列セルの値が"○"のとき >j = InStr(1, "月火水木金土", .Range("B" & i).Text) ここが、今ひとつ読み切れません。 そして、 >If j > 0 Then です。ここも、??? >.Range("F" & i & ":O" & i).Value = .Range("F" & j + 4 & ":O" & j + 4).Value これは、対象行のF列からO列のセルに、対象行A列から導き出される曜日と合致する E5:O10範囲の曜日行のE列からO列の値を渡す。 次の行へ、転記対象最終行まで繰り返す。 このように、読み取ったのですが、どうでしょうか。 不明な点を、お教えいただければ幸いです。 また、momoさんにお許しいただければ、配列を使用したコードを後学のために お教えいただければ幸いです。 (あらくま) ---- とりあえず、配列の件はおいておいて >>j = InStr(1, "月火水木金土", .Range("B" & i).Text) >ここが、今ひとつ読み切れません。 InStr関数はワークシート関数のFINDとほぼ同じです。 したがって、B列のi行目の値(曜日)が"月火水木金土"の何文字目と同じかを探しています。 >>If j > 0 Then >です。ここも、??? InStr関数で0が返るということは"月火水木金土"に該当していませんので日曜か空白となるので 0以上、つまり"月火水木金土"のいずれかに該当した場合に転記処理をします。 (momo) ---- momoさん、丁寧な説明ありがとうございました。 >j = InStr(1, "月火水木金土", .Range("B" & i).Text) 大変よく分かりました。例えば、転記対象行数を示すiが18の場合、B列セル(B18)が"火"ですから、 2が得られ、j=2となるわけですね。 転記先行はi=18で18行目、転記すべきデータのある行は、J=2の2に空白行4の値を加えて6(i+4) これが転記するデータがある行となり、データ範囲はF6:O6ということですね。 お陰で、理解できました。これによって、応用範囲がぐんと広がりました。 前コメントでmomoさんへのおれいの言葉が落ちていました。 大変失礼いたしました。 お許しください。 (あらくま) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201001/20100121113849.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97065 documents and 608342 words.

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