[[20160420172953]] 『連続して同じ数字があった場合にセルに文字を表示』(ちんとんとんとん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『連続して同じ数字があった場合にセルに文字を表示』(ちんとんとんとん)

以下のようなことを実行したいのですが・・・
1月から12月までのデータが入力されており、3ヶ月連続で1が入力されているセルがあった場合のみ判定欄に、到達という文字を表示させたいのです。

どなたかお知恵をお貸しください。
よろしくお願いします。

 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 判定
A 1  1  1                                   注意
B 1            1  1    1
C
D                     1   1  1               注意

< 使用 Excel:Excel2013、使用 OS:unknown >


 入力するのは「1」以外に何かあります?
「1」以外の数字は入力しない、もしくは「11」とか「111」は入力しない、ということなら

 1月がB列、12月がM列、データは2行目からだとして
 表示するのが「到達」なのか「注意」なのかわかりませんけど

 N2 =IF(SUMPRODUCT((B2:K2&C2:L2&D2:M2="111")*1),"到達","")

 とか。
(笑) 2016/04/20(水) 18:53

 4ヶ月以上連続ならどーすんの?

 ※「達成」だったら4ヶ月以上でもOKそうだけど。
 
(GobGob) 2016/04/21(木) 08:56

年末年始をまたいで3連続だった場合を表現できませんが、それで良いのでしょうか?
とりあえず、マクロ案。

 Sub test()
    Dim i As Long
    Dim j As Long
    Dim iMax As Long
    Dim cw As String

    iMax = Cells(Rows.Count, "A").End(xlUp).Row
    Range("N2:N" & iMax).ClearContents

    For i = 2 To iMax
        cw = String(12, " ")
        For j = 1 To 12
            If Cells(i, j + 1).Value <> "" Then
                Mid(cw, j, 1) = "1"
            End If
        Next j
        If 0 < InStr(cw, "111") Then
            Cells(i, "N").Value = "注意"
        End If
    Next i
 End Sub
(???) 2016/04/21(木) 09:38

 笑さんと同じレイアウトだとして。
 =IF(SUMPRODUCT((B2:K2=1)*(C2:L2=1)*(D2:M2=1)),"到達","")

 または
 =IF(MAX(COUNTIF(OFFSET(B2,,ROW($1:$9)-1,,3),1))=3,"到達","")
 =IF(MAX(COUNTIF(OFFSET(A2,,ROW($1:$9),,3),1))=3,"到達","")
 式を入力時、ShiftキーとCtrlキーを押しながらEnterキーで確定する(確定後、式が{}で囲まれればOK)

 なお、
 =IF(MAX(INDEX(COUNTIF(OFFSET(B2,,ROW($1:$9)-1,,3),1),0))=3,"到達","")
 =IF(MAX(INDEX(COUNTIF(OFFSET(A2,,ROW($1:$9),,3),1),0))=3,"到達","")
 とするとShift+Ctrl+Enterは必要なくなる。
(ねむねむ) 2016/04/22(金) 09:29

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.