выделить дубликаты в одной строке Excel

Я хотел добавить отличный пример того, как «EnableDelayedExpansion» (EDE) может быть полезен вне вездесущих примеров цикла FOR.

Вот строка данных землетрясения, которую я хочу проанализировать (I назовите это 1line.txt)

ak_11574812 2015.04.29.193822 62.9525 -148.8849 1.0 9.5 1 49km S Кантуэлл, Аляска

Проблема, с которой я столкнулся, заключалась в том, что последний сегмент этой строки не всегда начинаются с одного и того же номера столбца. Поэтому мне нужно было создать гибкую команду SET, которая точно вырвет последний сегмент этой строки.

ECHO OFF
setlocal enableDelayedExpansion
set where=72
set /p line=<1line.txt
set locate=!line:~%where%,28!
echo %locate%

EDE позволяет мне помещать переменную (где) внутри другой переменной (строки). EDE сначала преобразует переменную с квадратом в%, а затем обработает переменную, заключенную в скобки! и (в этом случае) выталкивают результаты в переменную «locate».

-1
задан Glenna F 5 March 2019 в 00:38
поделиться

2 ответа

Условное форматирование для дубликатов по строкам.

Хитрость в получении абсолютного относительные адресационные ссылки правильные.

  1. Выберите диапазон ячеек (строк и столбцов), начиная с верхней левой ячейки.
  2. Home Вкладка, Conditional Formatting , New Rule , Use Formula to determine...
  3. [ 1120] Выберите Format , выберите желаемое условное форматирование. Нажмите OK
  4. Редактировать Format Values where this formula is true: - =COUNTIF($B2:$E2,B2)>1
    • $B2:$E2 [1137 ] - строка, содержащая верхнюю левую ячейку выделения.
      Номера строк используют нотацию относительного адреса, а столбцы - абсолютную нотацию. * [1141]
    • B2 - это верхняя левая ячейка (первая ячейка, выбранная в диапазоне). Обозначение относительного адреса

N.B. Текстовые значения в диапазоне, содержащем * или ?, вызовут countif сопоставление с образцом. Матричные совпадения также будут отмечены как дубликаты.

Средство форматирования может использоваться для расширения этого условного форматирования.

* Для условного форматирования дубликатов столбцов поменяйте местами обозначения относительного / абсолютного адреса в диапазоне столбцов Countif.

0
ответ дан Ted D. 5 March 2019 в 00:38
поделиться

Вы можете изменить и попробовать:

Option Explicit

Sub test()

    Dim LastRow As Long, LastColumn As Long, Row As Long, Times As Long, Column As Long
    Dim str As String
    Dim rng As Range

    With ThisWorkbook.Worksheets("Sheet1")

        'Find last row column A
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        'Find last column row 1 (with titles)
        LastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
        'Loop rows
        For Row = 2 To LastRow
            'Loop columns
            For Column = 2 To LastColumn
                'Loop values
                str = .Cells(Row, Column).Value
                'Set range for each row
                Set rng = .Range(Cells(Row, 2), Cells(Row, LastColumn))
                'How many times value appears in row
                Times = Application.WorksheetFunction.CountIf(rng, str)
                'if appears more than one times
                If Times > 1 Then
                    .Range(Cells(Row, 2), Cells(Row, LastColumn)).Interior.Color = vbGreen
                End If

            Next Column

        Next Row

    End With

End Sub
0
ответ дан Error 1004 5 March 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: