Rus*_*uss 5 worksheet-function microsoft-excel
这基本上是这里提出的问题的一个变体: Excel-How do I find common text values from multiple (>2) columns?
但是,在这种情况下,我需要搜索多行而不是多列数据。因此,每行最多可能有 17 列非重复数据,我想在行之间找到一个或多个匹配项。以下是数据外观的一个小示例(它是从多个来源收集的站点的可能坐标列表,目的是确定一个独特的位置):
源坐标1 Coord2 Coord3 Coord4 Coord5 Coord6 来源 1 (4,0) (5,0) Source2 (3,0) (4,0) (5,0) (3,1) (4,1) (5,1) 源 3 (4,0) (5,1) (5,0) Source4 (3,0) (4,0) (5,0) (3,1) (3,2) 来源 5 (2,3) (3,2) (4,1) (4,2) (5,0)
在引用的线程中,用户 XOR-LX 提供了一种非常有用的按列比较的方法。事实上,如果我转置上述数据,他的方法工作正常,返回 (5,0) 作为第一个输出单元格中的唯一位置,但由于我的数据已排列,我无法修改它以按行使用。到目前为止,我已尝试按以下方式修改它,但没有运气:
$B$2:$G$6ROW(Range1)-MIN(ROW(Range1))COLUMN(INDEX(Range1,1,))-MIN(COLUMN(INDEX(Range1,1,)))+1MMULT(0+COUNTIF(OFFSET(INDEX(Range1,1,),Arry1,,,),INDEX(Range1,1,))>0),COLUMN(INDIRECT(ROWS(Range1)&":1"))^0)最终输入是:
=IFERROR(INDEX(INDEX(Range1,1,),SMALL(IF(FREQUENCY(IF(INDEX(Range1,1,)<>"",IF(Arry3=ROWS(Range1),MATCH(INDEX(Range1,1,),INDEX(Range1,1,),0))),Arry2),Arry2),COLUMNS(A:$A))),"")
使用上述修改,我只是没有输出(也没有错误消息),只有一个空白单元格。我基本上试图通过将 ROW 交换为 COLUMN 等来“反转”他的方法,但我怀疑解决方案可能稍微复杂一些,尤其是考虑到我对 excel 矩阵函数的弱点。
任何帮助是极大的赞赏。
小智 0
您可以在工作表模块中尝试此代码,它不是很强大并且可能会重复颜色,但它可能会完成工作。如果没有发回这里。只需更改范围组件(当前为 B1 至 G100)即可适应。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range, c As Range
Dim MyCI As Long
If Intersect(Target, Range("$B$1:$G$100")) Is Nothing Then Exit Sub
For Each cell In Range("$B$1:$G$100")
cell.Interior.ColorIndex = 0
Next cell
For Each cell In Range("$B$1:$G$100")
If WorksheetFunction.CountIf(Range("$B$1:$G$100"), cell.Value) > 1 Then
If cell.Interior.ColorIndex = -4142 Then
MyCI = Int((56 - 1 + 1) * Rnd + 1)
For Each c In Range("$B$1:$G$100")
If c.Value = cell.Value Then c.Interior.ColorIndex = MyCI
Next c
End If
End If
Next cell
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
712 次 |
| 最近记录: |