Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
PQ. Оптимизация запроса поиска повторных значений
 
Добрый день. Есть код, написанный ув. surkenny, который находит повторяющиеся значения и их количество повторений. Может ли кто нибудь оптимизировать его? С большими массивами данных, работает супер долго. При этом мой пк совсем не в нагрузке. Даже не на 20%. Ни процессор, ни озу:( В чём может быть проблема или эксель берет сколько надо? Код и пример:
Код
let
  src = Table.Buffer ( Excel.CurrentWorkbook(){[ Name = "data" ]}[Content] ),
  clmnNames = List.Buffer ( Table.ColumnNames ( src ) ),
  filterValues = List.Buffer ( Excel.CurrentWorkbook(){[ Name = "filterValues" ]}[Content][Значение] ),
  addComb = Table.AddColumn (
    src,
    "comb",
    each List.Accumulate (
      List.Sort ( List.Difference ( List.RemoveNulls ( List.Distinct ( Record.ToList ( _ ) ) ), filterValues ) ),
      { {} },
      ( s, c ) => s & List.Transform ( s, ( x ) => x & { c } )
    )
  ),
  expand = Table.ExpandListColumn ( addComb[[comb]], "comb" ),
  addCount = Table.AddColumn ( expand, "КолЭл", each List.Count ( [comb] ), Int64.Type ),
  parameters = Record.FromTable (
    Table.FromColumns ( Table.ToColumns ( Excel.CurrentWorkbook(){[ Name = "parameters" ]}[Content] ), type table [ Name = text, Value = number ] )
  ),
  filterElements = Table.SelectRows (
    addCount,
    each [КолЭл] = Record.FieldOrDefault ( parameters, "Количество элементов в сочетании", null )
  ),
  toRec = Table.TransformColumns ( filterElements, { "comb", ( x ) => Record.FromList ( x, List.FirstN ( clmnNames, List.Count ( x ) ) ) } ),
  group = Table.Group ( toRec, { "comb", "КолЭл" }, { { "Повт", each Table.RowCount ( _ ), Int64.Type } } ),
  filterRepeats = Table.SelectRows ( group, each [Повт] >= Record.FieldOrDefault ( parameters, "Минимальное число повторений", null ) ),
  sort = Table.Sort ( filterRepeats, { { "КолЭл", Order.Descending }, { "Повт", Order.Descending } } ),
  expandRecs = Table.ExpandRecordColumn ( sort, "comb", List.FirstN ( clmnNames, sort[КолЭл]{0} ) )
in
  expandRecs

Макрос для нахождения значений и удаление соседних значений
 
Всем привет, уже создавала схожую тему, но дабы не апать, создаю другую. Просьба немного другая. В соседней моей теме, уже помогли, особенно DANIKOLA. За что ему, больше спасибо.
Он написало код, для поиска значений и удалений их со сдвигом влево. Так сказать, упростил мне жизнь:) Надоело, каждый раз через найти и заливку всё делать. Может ли кто нибудь изменить его код так, чтобы так же искать значения, но при этом удалять не их, а те, которые не искались, то есть те, которые остались(соседние). И так же со сдвигом влево. Вот его код:
Код
Sub DeleteCellByVal()
    Dim r As Range, s As String, sDefaultText As String, sArr As Variant, i As Byte
    sDefaultText = GetSetting("DeleteCellByValue", "Folder1", "DefaultString")
    s = InputBox("Введите искомый текст", "Удаление текста", sDefaultText)
    s = Application.WorksheetFunction.Trim(s)
    If s = "" Then Exit Sub
    SaveSetting "DeleteCellByValue", "Folder1", "DefaultString", s
    If TypeName(Selection) = "Range" Then
        Set r = Selection
        If r.Cells.Count = 1 Then
            MsgBox "Выделенна только одна ячейка!", vbQuestion, "Вы серьёзно?"
            Exit Sub
        End If
    Else
        Exit Sub
    End If
    Application.ScreenUpdating = False
    If InStr(1, s, " ") > 0 Then
        sArr = Split(s, " ")
        For i = LBound(sArr) To UBound(sArr)
            r.Replace sArr(i), "", 1
        Next i
    Else
        r.Replace s, "", 1
    End If
        r.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
End Sub
Надеюсь нормально объяснила :oops:  Если надо, приложу пример.
Удаление значений в строках и удаление пустой ячейки со сдвигом влево.
 
Добрый вечер, не нашла в поиске готового решения. Не поделится кто нибудь? Приложу пример :)  
Поиск одинаковых значений в строках и сортировка строк в порядке убывания
 
Добрый вечер всем, специально зарегистрировалась тут, дабы задать вопрос, в надежде, что тут помогут. Самой не хватает знаний:( Искала в поиске на данном форуме похожий вопрос, но вроде бы прямо такого нету.
В общем, есть определенное количество строк со значениями. Значения вынесены в отдельный столбец(ячейку). Нужно найти строчки с нужными мне повторяющимися значениями и как то вынести их и отсортировать в порядке убывания. Приложу пример. Если что, объясню подробнее... Я не знаю, нужна тут формула или может быть макрос какой нибудь. Или утилита.
Страницы: 1
Наверх