Středa, 19 2022 ledna
  1 Odpovědi
  8.8 tis. Návštěv
0
Hlasy
Zrušit
Vážení

Pokud mám n-tý řádek (velmi velké číslo). Chci spočítat duplikáty každých 10 buněk. Například

Mám například následující sadu
2
1
1
1
1
1
1
3
2

Potřebuji spočítat duplikáty (s přihlédnutím k prvnímu duplikátu), každé 3 buňky, tj. výstup by měl být
2
1
3


Nějaké návrhy
Díky předem. 
Před 2 let
·
#2441
0
Hlasy
Zrušit
Ahoj mtornado,

Chcete-li odstranit deplicitní hodnoty každých 10 buněk, postupujte následovně:

  1. V pracovním listu stiskněte Další + F11, poté klepněte na tlačítko Vložit > Modul;
  2. Zkopírujte níže uvedený kód a vložte jej do pole modulu;
  3. Stisknout F5 spustit kód, pak uvidíte a Kutools pro Excel dialog, jak je znázorněno níže:
  4.   dialog.png
  5. Vraťte se do listu a vyberte rozsah. Poté klikněte na OK tlačítko na dialogu.


Sub RemoveDuplicatesValue_10()

Dim xSltRg, xCells, xRg As Range
Dim xStartRg, xEndRg As Range
Dim xSInt, xCount, xRntInt, xNumInt, xF As Integer
On Error Resume Next

xSInt = 10
Set xSltRg = Application.InputBox("Select range:", "Kutools for Excel", , , , , , 8)
If xSltRg Is Nothing Then Exit Sub
Set xSltRg = Application.Intersect(ActiveSheet.UsedRange, xSltRg)
Set xSltRg = Application.Union(xSltRg, xSltRg.Item(1))
xCount = xSltRg.Count
xNumInt = Int(xCount / xSInt)
xRntInt = 0
xRntInt = xCount Mod xSInt
For xF = 1 To xNumInt
Set xStartRg = xSltRg.Item(((xF - 1) * xSInt + 1))
Set xEndRg = xSltRg.Item(xF * xSInt)
Set xCells = xSltRg.Worksheet.Range(xStartRg.AddressLocal & ":" & xEndRg.AddressLocal)
For xInt = xCells.Count To 1 Step -1
Set xRg = xCells.Item(xInt)
If WorksheetFunction.CountIf(xCells, xRg.Value) > 1 Then
xRg.Value = ""
End If
Next
Next
If xRntInt > 0 Then
Set xStartRg = xSltRg.Item(xNumInt * xSInt + 1)
Set xEndRg = xSltRg.Item(xCount)
Set xCells = xSltRg.Worksheet.Range(xStartRg.AddressLocal & ":" & xEndRg.AddressLocal)
For xInt = xCells.Count To 1 Step -1
Set xRg = xCells.Item(xInt)
If WorksheetFunction.CountIf(xCells, xRg.Value) > 1 Then
xRg.Value = ""
End If
Next
End If

End Sub


Všimněte si, že chcete-li odstranit duplicitní hodnoty každých N buněk, změňte 10 v kódu na N.

Amanda
Přílohy (1)
  • Stránka:
  • 1
Na tento příspěvek zatím nebyly učiněny žádné odpovědi.