[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『伝票番号』(キカク)
下記のようにA列に番号を振りたいと思います。 A1の番号はセルD1の値(101)、以下連番、連続した5行までは同番号、999までいったら 101からはじまる。 考えてたら知恵熱がでてきました。他作業列追加、番号シート追加など、なにか方法ありましたらお願いいたします。(VBAでもokです)
A B 101 データ 101 データ 101 データ 101 データ 101 データ 102 データ 102 データ
103 データ 103 データ
104 データ
こういうことでしょうか。 =MOD(INT((ROW(A1)-1)/5),1000-$D$1)+$D$1 (Mook) 2013/10/29(火) 15:08
最初にA1:A5に101と入力して、 A6=IF((A1+1)>999,$A$1,A1+1)
A6を下にコピー。
(天邪鬼) 2013/10/29(火) 15:11
こんにちは
マクロだと、
Sub test() Dim v As Variant Dim i As Long Dim j As Long Dim x As Long Dim s As Long
s = Range("D1").Value
With Range("B1", Range("B" & Rows.Count).End(xlUp)) v = .Value x = .Cells.Count For i = 1 To x If v(i, 1) = "" Then j = 0 Else If i > 1 Then If v(i - 1, 1) = "" Then s = s + 1 End If End If v(i, 1) = s j = j + 1 If j = 5 Then s = s + 1 j = 0 End If End If Next .Offset(, -1).Value = v End With End Sub
こんな感じでしょうか?
(ウッシ) 2013/10/29(火) 15:26
A1 =D1 A2 =A1 A5までコピー。
A6 =IF(A1+1>999,D$1,A1+1) A7 =A6 A10までコピー。
A6:A10を下へコピー。 (GobGob) 2013/10/29(火) 15:31
データはDBから読み込む度に位置(空白行の位置)がかわります。 (キカク) 2013/10/29(火) 15:43
データのブランクは2つ以上続かないとして A1:101 A2:=IF(B2="","",A1) A3:=IF(B3="","",IF(A2="",IF(A1=999,101,A1+1),A1)) A5までコピー。 A6:=IF(B6="","",IF(A5="",IF(A4=999,101,A4+1),IF(COUNTIF(A1:A5,A5)=5,IF(A5=999,101,A5+1),A5))) 下へコピー。 (NB) 2013/10/29(火) 16:16
こんにちは
999、忘れてました。
Sub test() Dim v As Variant Dim i As Long Dim j As Long Dim x As Long Dim s As Long
s = Range("D1").Value
With Range("B1", Range("B" & Rows.Count).End(xlUp)) v = .Value x = .Cells.Count For i = 1 To x If v(i, 1) = "" Then If s = 999 Then s = Range("D1").Value - 1 j = 0 Else If i > 1 Then If v(i - 1, 1) = "" Then s = s + 1 End If End If v(i, 1) = s j = j + 1 If j = 5 Then s = s + 1 j = 0 End If End If Next .Offset(, -1).Value = v End With End Sub
(ウッシ) 2013/10/29(火) 16:36
頭良すぎです! ウッシーさんのマクロが良い感じでしたので使わせ頂きました。 999も追加して頂き本当に感謝です。 (キカク) 2013/10/29(火) 16:43
今更
A1 =D1 A2 =IF(B2="","",IF(OR(MOD(COUNTIF(A$1:A1,A1),5)=0,B1=""),IF(MAX(A$1:A1)+1>999,D$1,MAX(A$1:A1)+1),A1))
A2を下へコピー (GobGob) 2013/10/29(火) 16:54
不具合ありますな。
A2 =IF(B2="","",IF(OR(COUNTIF(OFFSET(A1,-MIN(4,ROW(A1)-1),0,MIN(5,ROW(A1))),A1)=5,B1=""),IF(LOOKUP(1,0/(A$1:A1<>""),A$1:A1)+1>999,D$1,LOOKUP(1,0/(A$1:A1<>""),A$1:A1)+1),A1)) (GobGob) 2013/10/29(火) 17:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.