advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1215 for (Mook) (0.001 sec.)
[[20150614103106]]
#score: 9211
@digest: b10802eb089d272330683c8c6694e546
@id: 68239
@mdate: 2015-06-14T06:08:15Z
@size: 6266
@type: text/plain
#keywords: u90 (43139), ルv (17315), 式変 (4739), 録時 (4341), ドッ (4333), 強引 (4245), 抜出 (3919), 過日 (3693), でyy (3306), ロ記 (2613), ロ内 (2150), ト) (2104), 2012 (1658), 日) (1546), 付デ (1453), 「12 (1371), 日付 (1340), 経過 (1268), 2015 (1167), ルア (1111), 平成 (1050), 関連 (1009), 記録 (962), マク (957), substitute (937), デー (923), mook (871), クロ (860), 結果 (859), yyyy (819), ータ (816), year (815)
『マクロ記録と結果が異なるのは?』(こまった)
まだまだ勉強中のため、マクロ記録を参考に書いています。 マクロ記録時、行った結果とマクロを動かした際の結果が異なる事象に 当たりました。 何度考えても不明のため、質問させてもらいました。 やりたいことは抜出した日付データの経過日数を計算したいと思っています。 あるデータを抜出した結果が 12.08.05となります。 ※データ上、.(ドット)形式となり、この点は変更できません…。 そこで、マクロ記録を使ってyyyy/mm/dd形式に使用としました。 Sub Macro4() Columns("V:V").Select Range("V55").Activate Selection.Copy Columns("U:U").Select Range("U55").Activate Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Application.CutCopyMode = False End Sub マクロ記録時は先のデータの結果 12/08/05となりました。 しかし、再度マクロを実行した際、 結果が2025/12/8となります。 最終的に経過日付の比較をしたいのですが、.(ドット)のままだと計算ができないめ、 ある意味強引に.(ドット)→/(スラッシュ)に置き換えています。 またその結果を =DATE(YEAR(U90), MONTH(U90), DAY(U90)) でyyyy/mm/dd形式としています。 この関数がいるのか?と思ったのですが、例えば抽出データが 13.03.27の場合、マクロを実行すると 13/03/27となります。 もう悔しいくらい分かりません。 どなたか、この動きでの原因が分かる方、教えてください。 よろしくお願いします。 < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- U90 はセルアドレスですか? 変数ですか? 日付の12は平成ですか? 2012年ですか? このあたりを整理して、意図した内容に調整出来ればできそうだと思います。 それからU列と、V列のあたりをもう少し説明できるでしょうか。 U55 と U90 の関連がちょっとわかりません。 (Mook) 2015/06/14(日) 11:26 ---- Mook様 説明不足、ご指摘ありがとうございます。 自分なりに書いているつもりですが…。 もう少し考えて書くようにします。 > U90 はセルアドレスですか? 変数ですか? U90はセル番地となります。 V列にある抽出したデータ「12.08.05」を一旦 U列にコピーし、書式を「12/08/05」に変更しています。 最後に =DATE(YEAR(U90), MONTH(U90), DAY(U90)) で 「2012/08/05」に変更しています。 > 日付の12は平成ですか? 2012年ですか? よって、日付の12は2012を意味しています。 > それからU列と、V列のあたりをもう少し説明できるでしょうか。 V列は他より持ってきたデータが入っています。 それをU列で書式を変更している…。 分かる方はそんな動きはしない…かもしれませんが。 >U55 と U90 の関連がちょっとわかりません。 すいません、U55はマクロ記録でU列を掴んでコピー貼り付けする際 自動記述されていました。 U90は今回の説明する際の関数が入っている箇所をコピーした為 U55・U90では関連はないかと思います。 分からないので、ある意味強引にコピーや書式変更マクロとか入れていますが 日付の 「12.08.05」を「2012/08/05」に書式変更できるのが希望なんです。 ややこしくし、すいません。 (こまった) 2015/06/14(日) 12:00 ---- うーん、どれだけのデータをどう処理したいかがまだよくわかりませんが、 U1:U90 に YY.MM.DD という日付が並んでいて、それを隣の V 列に日付にする例です。 Sub Sample() With Range("U1:U90").Offset(0, 1) .FormulaR1C1 = "=(""20""&SUBSTITUTE(RC[-1],""."",""/""))*1" .Value = .Value .NumberFormatLocal = "YYYY/MM/DD" End With End Sub 参考になるでしょうか。 (Mook) 2015/06/14(日) 12:18 ---- もう少し、説明が足りていませんでした。 V列に他よりデータ収集してきた日付がつらつらと羅列しています。 (例) セルV 12.04.29 15.05.11 12.03.14 13.04.09 13.04.09 11.04.29 ・ ・ ・ その中で最古・最新をMIN/MAXの関数で計算する際、 .(ドット)表記ではダメだったのでこのように強引な変更を取り入れました。 (こまった) 2015/06/14(日) 12:43 ---- Mook様 早速の回答ありがとうございます。 教えていただいたマクロ、入れて試してみます。 ちなみに セルV列のデータが(今後有り得るかもしれない)飛び飛びに出てくる場合、 最終データまで取得って可能なのでしょうか? a = Cells(Rows.Count, "V").End(xlUp).Row で最終行は分かるのですが仮に セルV 12.04.29 15.05.11 12.03.14 13.04.09 13.04.09 11.04.29 ・ ・ ・ とかなった場合。 元々の依頼ではないので、自分でもトライしてみます。 (こまった) 2015/06/14(日) 12:51 ---- また漏れていましてすいません。 データ的には約300件前後で足りるかと思っています。 すいません。 (こまった) 2015/06/14(日) 12:54 ---- Mook様 色々検討したのですが、 12.08.05の場合、マクロ実行後 7488/5/29とありえない結果に。 ただ、Mook様の教えていただいたマクロ内の「SUBSTITUTE」 これは使えると単純に隣のセルに当てはめると上手くいきました。 12.08.05 =SUBSTITUTE(V122,".","/") ⇒12/08/05 マクロ内を少し読めるようになったのはうれしかったですが まだまだ知らないことが多いことを痛感しました。 直接的原因は正直分かりませんが、 とりあえずこれでやってみます。 色々アドバイスいただきありがとうございます。 またお願いすることが(必ず?)ありますのでよろしくお願いします。 助かりました。 (こまった) 2015/06/14(日) 13:43 ---- >7488/5/29とありえない結果に。 これは、もともとのデータが日付であるときに、そうなると思います。 表示 シリアル値 12/08/05 → 41126 (2012/08/05) 7488/5/29 ← 2041126 見た目ではなく、データで判断する必要があると思います。 上記のマクロが正しく動くのは、変換元データが YY.MM.DDという形の文字列の時だけで、 これが日付が入っていて、書式で YY.MM.DD と表示されている場合は、上のようなことに なります。 蛇足ですが、 >またその結果を >=DATE(YEAR(U90), MONTH(U90), DAY(U90)) >でyyyy/mm/dd形式としています。 はちょっと冗長のように感じます。 YEAR(U90) は U90 が日付と認識できる形であることが前提なので、これが動くのであれば =DATEVALUE(U90) だけで良いかと思います。 蛇足2ですが、書式とデータを区別して説明すると良いかと思います。 >「12.08.05」を「2012/08/05」に書式変更できるのが希望なんです。 は書式変更 ではなくて、文字列から日付へのデータの変換と書かれた方が意図が正確に 伝わる気がしました。 (Mook) 2015/06/14(日) 14:57 ---- ちなみに、日付データが文字列ではなく >これが日付が入っていて、書式で YY.MM.DD と表示されている場合は であれば、そのまま MAX、MIN 関数が適用できます。 (Mook) 2015/06/14(日) 15:08 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201506/20150614103106.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 96867 documents and 608033 words.

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