『データがなくても文字を返す方法』(黒豹) 説明が少々難しいので以下の表をご参照下さい。    A   B   C 1 振込完了リスト 2 A支店 10000 3 B支店 10000 4 C支店 10000 5 6 振込エラーリスト 7 A支店 5000 8 B支店 5000 9 C支店 5000 上記のようなリストに対し、C列に文字を 返したいと思います。    A   B   C 1 振込完了リスト 2 A支店 10000  済 3 B支店 10000  済 4 C支店 10000  済 5 6 振込エラーリスト 7 A支店 5000  未 8 B支店 5000  未 9 C支店 5000  未 それぞれの行には特に完了などを示す コードなどは全く存在せず、完了リストと エラーリストの間が1行空いているだけです。 このような条件で、表題(セルA1、A6)から C列に文字を返す事は可能でしょうか? 尚、リストの行数は増減し固定ではありません。 ご回答、よろしくお願い致します。 ---- 済または未を表示する条件は何ですか?  (Hatch) ---- 各項目の表題(上記の例ではセルA1、A6)の 文字での判断になります。 表題の下にリストが並び、1行空いて別の項目 (表題がありリストが並ぶ)が続きます。 (黒豹) ------- 一応テストはしてみたんですが、、ひょっとしたら??かも?です。 どうでしょう? Option Explicit Sub てすと() Dim MyA As Variant, MyAry() As Variant Dim i As Long, Myflag As Long With Worksheets("Sheet1") MyA = .Range("A1", .Range("A65536").End(xlUp)).Resize(, 2).Value ReDim MyAry(1 To UBound(MyA, 1), 1 To 1) For i = 1 To UBound(MyA, 1) If InStr(1, MyA(i, 1), "完了") > 0 Then Myflag = 1 ElseIf InStr(1, MyA(i, 1), "エラー") > 0 Then Myflag = 2 ElseIf IsEmpty(MyA(i, 1)) Then Myflag = 0 End If If Not IsEmpty(MyA(i, 2)) Then Select Case Myflag Case 1 MyAry(i, 1) = "済" Case 2 MyAry(i, 1) = "未" End Select End If Next With .Range("C1") .EntireColumn.ClearContents .Resize(UBound(MyA, 1)).Value = MyAry .EntireColumn.AutoFit End With End With Erase MyA, MyAry End Sub あはははは、さっそくちょっと訂正(;^_^A あせあせ・・・ (SoulMan) ---- 無理やりなので、落とし穴があるかも・・・ さらに、無駄がありそうですが〜 C2 =IF(AND(A2<>"",B2<>""),IF(C1="済","済",IF(ISERROR(C1*1),"未","済")),"") 以下、必要なところまでコピー (キリキ)時間が無いので、書き逃げになりそうです(^_^;) 15:40 修正 ---- C2に=MID("済未",COUNTBLANK(A$2:A2)+1,COUNT(B2))として、 下にフィルドラッグするというものは、どうでしょう?    (LOOKUP) ---- 横から失礼します。 LOOKUPさん、よくまあこんなやり方思いつくものですねえ。 メモ、メモ・・・。  (SS) ---- す・すごい!! MID関数のこういった使い方を始めて知りました!! はっきり言って、感動してます〜♪ 〆\(.. )メモメモ (キリキ) ---- やりたいことを要約すると A列で振込エラーリストの次の行から全ての C列に「未」を記載する。また 2行から 振込エラーリスト行の2行上まで「完」を記載する。 こういうことでしょか。 であれば,下記マクロを実行すれば出来ると思います。 Sub 未を記載() lastrow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow If Cells(i, 1) = "振込エラーリスト" Then For j = i + 1 To lastrow Cells(j, 3) = "未" Next For k = 2 To i - 2 Cells(k, 3) = "完" Next End If Next End Sub (なお) ---- 上でも可でしたが,完璧をねらい下記を作ってみました。(なお) A列に表題とその下にデータがあれば,空欄行まで記載できます。 Sub 済未を記載() lastrow = Cells(Rows.Count, 1).End(xlUp).Row ''' 「未」記載 For i = 1 To lastrow If Cells(i, 1) = "振込エラーリスト" Then start未 = i + 1 Exit For End If Next For j = start未 To lastrow + 1 If Cells(j, 1) = "" Then end未 = j - 1 Exit For End If Next For k = start未 To end未 Cells(k, 3) = "未" Next ''' 「済」記載 For i = 1 To lastrow If Cells(i, 1) = "振込完了リスト" Then start済 = i + 1 Exit For End If Next For j = start済 To lastrow + 1 If Cells(j, 1) = "" Then end済 = j - 1 Exit For End If Next For k = start済 To end済 Cells(k, 3) = "済" Next End Sub