アプリ版:「スタンプのみでお礼する」機能のリリースについて

関数を使って、次のような処理はできますか。1000件ほどの既にデータがあるとして、A2:K1000にあります。そこでD2:K1000の途中にセルの空欄があるとします。但し、例えばD1:K1だとかD13:K13、D48:K48、D98:K98の行ごとにこの空欄があるとして、その空欄にこの全てのセルに直接「良」という文字が入るようにしたい。また、作業用の列がひつようであれば、その列を使う事が可能だと想定していいのですが。なお、A列~C列にもデータがあるとします。

質問者からの補足コメント

  • どう思う?

    質問に間違いがありました、D列からI列のことでした。すみません、次のの通りです。新たな質問です。If文以下をまとめたいのですが、どのようにまとめたらよいのか教え頂けませんか、大変申し訳ありません。関数ではできないことは、ご回答頂きましたので、マクロで作ったのですが、よろしくお願いします。

      補足日時:2018/02/18 20:35
  • どう思う?

    For i = 2 To LastRow

    If Cells(i, "D") = "" Then
    Cells(i, "D") = "良"
    Cells(i, "E") = ""
    Cells(i, "E") = "良"
    Cells(i, "F") = ""
    Cells(i, "F") = "良"
    Cells(i, "G") = ""
    Cells(i, "G") = "良"
    Cells(i, "H") = ""
    Cells(i, "H") = "良"
    ElseIf (Cells(i, "E") = "良" Or Cells(i, "F") = "良") Or Cells(i, "G") = "良")Or Cells(i, "H") = "良") = "良" Then
    Cells(i, "I") = "良"

      補足日時:2018/02/18 20:36
  • どう思う?

    If Cells(i, "D") = 0 Then
    Cells(i, "D").Interior.ColorIndex = 3
    End If
    If Cells(i, "E") = 0 Then
    Cells(i, "E").Interior.ColorIndex = 3
    End If
    If Cells(i, "F") = 0 Then
    Cells(i, "F").Interior.ColorIndex = 3
    End If

      補足日時:2018/02/18 20:42
  • どう思う?

    If Cells(i, "D") = "良" Then
    Cells(i, "D").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If
    If Cells(i, "E") = "良" Then
    Cells(i, "E").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If
    If Cells(i, "F") = "良" Then
    Cells(i, "F").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If

      補足日時:2018/02/18 20:48
  • どう思う?

    If Cells(i, "G") = "良" Then
    Cells(i, "G").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If
    If Cells(i, "H") = ""良" Then
    Cells(i, "H").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If
    If Cells(i, "I") = "良" Then
    Cells(i, "I").Interior.ColorIndex = 46 '46は薄いオレンジ
    End If

      補足日時:2018/02/18 20:48

A 回答 (3件)

#2の回答者です。



マクロとしては意味が分からないです。それに実際はエラーで動かないはずです。

>For i = 2 To LastRow
>If Cells(i, "D") = "" Then
>Cells(i, "D") = "良"
>Cells(i, "E") = ""
>Cells(i, "E") = "良"
>Cells(i, "F") = ""
>Cells(i, "F") = "良"
>Cells(i, "G") = ""
>Cells(i, "G") = "良"
>Cells(i, "H") = ""
>Cells(i, "H") = "良"
>ElseIf (Cells(i, "E") = "良" Or Cells(i, "F") = "良") Or Cells(i, "G") = "良")>Or Cells(i, "H") = "良") = "良" Then
>Cells(i, "I") = "良"

D列のi行が空白だったら、D,E,F,G,Hのi行に「良」と入れる。
しかし、D列のi行が空白ではなく、E,F,G,H列のi行のどれか一つに「良」が入っているなら、I列i行に「良」を入れる
ということでしょうか? 
不可逆というか、一方通行というか。「良」と入れるマクロなのに、すでに、「良」が入っている前提というので良いのでしょうか?

'//標準モジュール
Sub TestSample()
 Dim Lastrow As Long
 Dim i As Long, j As Long, k As Long
 Lastrow = Cells(Rows.Count, "D").End(xlUp).Row
 For i = 2 To Lastrow
   If Cells(i, "D").Value = "" Then
     Cells(i, "D").Resize(, 5).Value = "良"  'D列
   ElseIf Application.CountIf(Cells(i, "E").Resize(, 4), "良") > 0 Then
     Cells(i, "I").Value = "良"
   End If
   For j = 4 To 6 'D-F
     If Cells(i, j).Value = 0 Then
       Cells(i, j).Interior.ColorIndex = 3
     ElseIf Cells(i, j).Value = "良" Then
       Cells(i, j).Interior.ColorIndex = 46
     End If
   Next j
   For k = 7 To 9 'G-I
     If Cells(i, k).Value = "良" Then
       Cells(i, k).Interior.ColorIndex = 46
     End If
   Next k
 Next i
End Sub
    • good
    • 0
この回答へのお礼

色々と試行錯誤をして出来上がりました。大変遅くなりました、お礼申し上げます。

お礼日時:2018/02/25 14:59

まず、どこか検索対象にならない任意のセルに、「良」と入れ、コピー(Ctrl+C)します。


つぎに、
D2:K1000 を選択しますが、面倒だったら、ワークシートの左上の境目の名前ボックスで、「D2:K1000」と入れて、範囲を選択し、

ホーム(タブ)-編集グループの「検索と選択」-条件を選択してジャンプ-
空白を選び->OK

空白が選択されたら、
Ctrl + V で「良」を貼り付けします。

もう少し、複雑な内容でしたら、VBAマクロをお薦めします。
    • good
    • 1
この回答へのお礼

お世話になりました、有難うございました。

お礼日時:2018/02/25 15:00

「空欄を検索して、その空欄に文字を入れる 」なんて、矛盾した、あるいは、辻褄の合わないこと、不可能に決まってます!

    • good
    • 0
この回答へのお礼

ありがとございました。

お礼日時:2018/02/25 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!