[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件指定 行挿入』(ななし)
データ入力があった日を
2018/10/1 ○○○
2018/10/2 △△△
2018/10/4 ○○○
2018/10/4 △△△
というように記録している"元データ"というシートから
別シートに○○○の記録された行、△△△の記録された行を持っていきます
現在は
A1に○○○や△△△(欲しいデータ)を入力し、データを入れたい行に
=IF(ROW(D6)>COUNTIF(元データ!$B$2:$B$500,$A$1),"",INDEX(元データ!D$1:D$500,SMALL(INDEX((元データ!$B$2:$B$500<>$A$1)*10^5+ROW(元データ!$B$2:$B$500),),ROW(D6))))
という関数を適応しています
この方法では○○○を例にとると
2018/10/1 ○○○
2018/10/4 ○○○
というように記録されていきます
これを
2018/10/1 ○○○
2018/10/2
2018/10/3
2018/10/4 ○○○
というように、データが無い日は日付を挿入するようにしたいです
どのようにしたら良いでしょうか?
マクロでも関数でも大丈夫です
< 使用 Excel:Excel2013、使用 OS:Windows10 >
日付をハンド入力。
=IF(COUNTIFS(元日付範囲,日付セル,元データ範囲,"〇〇〇"),"〇〇〇","")
で、いいよーな。 (GobGob) 2018/10/16(火) 13:08
Dim c As Range, r As Range, rr As Range, i As Long, sht As Worksheet
For Each c In Sheets("元データ").Range("B:B").SpecialCells(2)
If Not Evaluate("isref('" & c.Value & "'!A1)") Then
Sheets.Add
Set sht = ActiveSheet
sht.Name = c.Value
Sheets("元データ").Cells.Copy
sht.Cells.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
Set r = sht.Range("A1")
For i = WorksheetFunction.Min(Sheets("元データ").Range("A:A")) To WorksheetFunction.Max(Sheets("元データ").Range("A:A"))
r.Value = i
Set rr = Sheets("元データ").Range("B:B").Find(c.Value, , , xlWhole)
If Not rr Is Nothing Then
If rr.Offset(, -1).Value = i Then r.Offset(, 1).Value = c.Value
Set f = rr
Do
Set rr = Sheets("元データ").Range("B:B").FindNext(rr)
If rr.Address = f.Address Then
Exit Do
Else
If rr.Offset(, -1).Value = i Then r.Offset(, 1).Value = c.Value
End If
Loop
End If
Set r = r.Offset(1)
Next i
End If
Next c
End Sub
(mm) 2018/10/16(火) 14:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.