Excel:如何查找最后连续的列值?

问题描述 投票:0回答:2

我有一个共享的Excel工作表,一直输入记录。我想找到特定名称的最后一个连续条目(在此示例中为“A”),并在上次发生的开始和结束时记录该值。

附加的excel的输出应该是

  1. A,2,34 ---当我打开时有5个条目
  2. A,5,null ---当我打开时有9个条目
  3. A,9,6 ---当我打开时有11个条目
  4. A,9,3 ---当我打开时有12个条目

请帮我解决一下我可以在同一个excel的不同标签中使用的公式。

谢谢

image of excel

excel excel-formula max row min
2个回答
0
投票

UDF应该能够处理相对循环。

Option Explicit

Function LastConColVals(rng As Range, crit As String, _
                        Optional delim As String = ",")
    Dim tmp As Variant, r As Long, rr As Long

    'allow full column references
    Set rng = Intersect(rng, rng.Parent.UsedRange)

    With rng
        tmp = Array(crit, vbNullString, vbNullString)
        For r = .Rows.Count To 1 Step -1
            If .Cells(r, 2).Value = crit Then
                tmp(2) = .Cells(r, 1).Value
                For rr = r To 1 Step -1
                    If .Cells(rr, 2).Value = crit Then
                        tmp(1) = .Cells(rr, 1).Value
                    Else
                        Exit For
                    End If
                Next rr
                'option 1 - null last value for singles
                If rr = (r - 1) Then tmp(2) = "null"
                'option 2 - truncate off last value for singles
                'If rr = (r - 1) Then ReDim Preserve tmp(UBound(tmp) - 1)
                Exit For
            End If
        Next r
    End With

    LastConColVals = Join(tmp, delim)
End Function

enter image description here


1
投票

这应该工作。

在C列中使用此公式。从第2行开始工作。 row1应该是无关的(此时没有连续的条目)。

= IF(B1 = B2,B2& “ ”A1&“, ”&A2,“”)

您还可以使用公式显示该值的最后一个条目。这是值“A”。

= LOOKUP(2,1 /(B:B = E1),C:C)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.