Excel-如何從多行 (>2) 中尋找常見文字值?

Excel-如何從多行 (>2) 中尋找常見文字值?

這本質上是這裡提出的問題的變體: Excel-如何從多個 (>2) 欄位中尋找常見文字值?

然而,在這種情況下,我需要搜尋多行,而不是多列資料。因此,每行最多可能有 17 列非重複數據,我想在行之間找到一個或多個匹配項。以下是資料外觀的一個小範例(它是從多個來源收集的網站的可能座標列表,目的是找出唯一位置):

源 座標 1 座標 2 座標 3 座標 4 座標 5 座標 6
源 1 (4,0) (5,0)
資料來源 2 (3,0) (4,0) (5,0) (3,1) (4,1) (5,1)
資料來源 3 (4,0) (5,1) (5,0)
資料來源 4 (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) 作為第一個輸出單元格中的唯一位置,但我無法修改它以供按行使用,因為我的數據已排列。到目前為止,我嘗試通過以下方式修改它,但沒有成功:

  • 範圍1 =$B$2:$G$6
  • 阿里1=ROW(Range1)-MIN(ROW(Range1))
  • 阿里2=COLUMN(INDEX(Range1,1,))-MIN(COLUMN(INDEX(Range1,1,)))+1
  • 阿里3 = MMULT(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 矩陣函數的弱點。

任何幫助是極大的讚賞。

答案1

您可以在工作表模組中嘗試此程式碼,它不是很強大並且可能會重複顏色,但它可能會完成工作。如果沒有發回這裡。只需更改範圍組件(目前為 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

相關內容