繁体   English   中英

使用excel-vba / udf按行计算相似值之间的距离

[英]Counting the distance between similar values by rows using excel-vba/udf

我在计算相似值之间的距离时遇到了麻烦,因为excel中没有函数可以实现这一点,因此我处理了2000行值。 我更喜欢excel-vba,它可能像示例中那样产生距离。 值太多时,数组公式落后于excel。 一对一地计算它们是浪费时间。 拜托,我想做这个。 如果有一些天才能够做到这一点,我将不胜感激。

下面的示例显示了一个特定值与另一个的距离: 在此处输入图片说明

你可以试试这个

Option Explicit

Sub main()
    Dim cell As Range, f As Range
    Dim rowOffset As Long

    With Worksheets("gaps").Range("A2:F10") '<--| change this to your actual range of interest
        For Each cell In .SpecialCells(xlCellTypeConstants, xlNumbers)
            rowOffset = 1
            Set f = .Find(what:=cell, after:=cell, LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlPrevious)
            If Not f Is Nothing And f.Row <= cell.Row Then rowOffset = cell.Row - f.Row + 1
            cell.offset(, .Columns.Count + 1) = rowOffset '<--| the "+1" offset results range one column away from values range: adjust it as per your needs
        Next cell
    End With
End Sub

在您的“值”上进行测试,除单元格“ K4”外,它会返回相同的“值行间隙”:我希望这对您来说是错误的计数...


您是否需要在相同的“相对”位置但在另一个工作表(例如:“ sheet2”)上显示输出,然后只需更改

cell.offset(, .Columns.Count + 1) = rowOffset

Worksheets("sheet2").Range(cell.offset(, .Columns.Count + 1).Address) = rowOffset 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM