advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 37686 for IF (0.007 sec.)
[[20131029142202]]
#score: 1591
@digest: 8c6cb3f98f0e3b049ed74772e2fad6f4
@id: 63726
@mdate: 2013-10-29T08:24:01Z
@size: 3671
@type: text/plain
#keywords: タ10 (19519), キカ (12838), カク (8972), 恵熱 (6721), 頭良 (6425), 他作 (4723), 号シ (4239), 同番 (4125), 天邪 (3942), 邪鬼 (3942), 999 (2035), 2013 (1910), 101 (1793), ウッ (1644), ルd1 (1468), 列追 (1423), 火) (1245), 票番 (1188), ッシ (1117), 今更 (1107), ー。 (793), 伝票 (645), デー (614), ータ (543), (ウ (541), シ) (530), 番号 (502), gobgob (495), ピー (470), 白行 (466), コピ (455), 不具 (443)
『伝票番号』(キカク)
下記のように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 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201310/20131029142202.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97045 documents and 608224 words.

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