[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ナンバリング』(たいが)
仮にB1に「4」を入力したら A列にナンバーが 1 2 3 4 1 2 3 4 1 2 ・ ・ ・と4までの繰り返し。 もし「6」と入力したら 1 2 3 4 5 6 1 2 3 4 5 6 という具合に6までの繰り返しになるようにしたいのですが、 どのように数式を考えたらよいでしょうか。 よろしくお願いします。
A1=MOD(ROW()-1,$B$1)+1
By しげちゃん
しげちゃん(さん)ありがとうございます。
数式を入れてみましたが,
4を入れたときは上から2,3,1,2,3,1,2,3・・・
5を入れたときは最初の4行が2,3,4,5,1,2,3,4,5,・・・
となってしまい,1からスタートしません。
何とかなりますか。
しげちゃん(さん)解決しました。
A1=MOD(ROW()-2,$B$1)+1
にすればいいのですね。 (たいが)
=Mod(Rows($1:1)-1,$B$1)+1 とかにすれば、どこからでも 1 から... (seiya)
seiyaさん,しげちゃん(さん)ありがとうございます。 ちょっと問題が発生しました。
V2に最初の数式を入れておき,それをA1にコピーし, セル右下の+をダブルクリックすると行末までコピーされるような マクロをファイル操作しながら記録し,フォームボタンに貼り付けています。
******************* Sub group3() ' ' group3 Macro '
' Range("V2").Select Selection.Copy Destination:=Range("A2") Range("A2").Select Selection.AutoFill Destination:=Range("A2:A148") Range("A2:A200").Select Range("A14").Select End Sub **********************
しかし,このときにはB列に148行目までデータが入っていたのですが, データ数は可変で,100の時も200の時もあります。
できればB列にある最後のデータで止めたいのですが, これだと,常に1480行まで書き込んでしまいます。
たとえばB列に100行までデータが入っている場合はA100まで番号を振り, 200行までの場合はA200までコピーされるようなことはできないでしょうか。
よろしくお願いします。 (たいが)
えっ? >できればB列にある最後のデータで.... >これだと, 常に1480行まで書き込んでしまいます。
ここのところがいまいち不明ですが? 例えば Dim LastR As Long LastR = Columns("b").Find("*",Cells(Rows.Count,"b"),xlValues,,,xlPrevious).Row With Range("a2") Range("v2").Copy .Cells .AutoFill .Resize(LastR -1) End With とか? (seiya)
これだと,常に1480行まで書き込んでしまいます。→148行でした。
マクロを記録しながら行った操作は
V2に書いてある =MOD(ROW()-2,$B$1)+1 をA2にコピーし, A2のセルの右下(黒い四角)にカーソルを置き,+をだして, ダブルクリック。
です。わかりますか。
教えていただいたマクロを少し加工して ランダムにデータを並べ替えることと 通し番号をつけることに挑戦してみました。 エクセル2007では動くのですが, エクセル2000では動きません。
どこが対応していないのか,教えていただけますか。 (たいが)
Sub narabe()
'
' narabe Macro
'
'
Rows("2:201").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("G2:G201") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Range("A2:j201") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Dim LastR As Long
LastR = Columns("b").Find("*", Cells(Rows.Count, "b"), xlValues, , , xlPrevious).Row - 1 With Sheets("sheet1") With Range("a2") Range("v2").Copy .Cells End With With Range("a3") Range("v3").Copy .Cells .AutoFill .Resize(LastR - 1) Range("A1").Select End With End With
End Sub
Sortメソッドが2007のものになっています。
Rows("2:201").Sort key1:=Range("g2"), order1:=xlAscending, header:=xlGuess
に変更してみてください。 (seiya)
Seiyaさん,ありがとうございます。
Rows("2:201").Select →Rows("2:201").Sort key1:=Range("g2"), order1:=xlAscending, header:=xlGuess
でいいのでしょうか。(たいが)
Row("2:201").Select から End With までを 変更する必要があります。
Sheets("Sheet1").Range("A2:J201").Sort key1:=Range("g2"), order1:=xlAscending, header:=xlGuess
でどうですか? 今日はここで落ちます、何かありましたら明日になりますので... (seiya)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.