Заменить определенное значение ячейки на основе того, с чего начинается другая ячейка ... - PullRequest
0 голосов
/ 20 декабря 2018

Я искал и нашел несколько ответов на различные части этого сценария, но я не могу собрать все это вместе.

Я получаю электронные таблицы с фамилиями, фамилиями, указанными в столбце A, затем в столбце S будет указано имя человека, назначенного этому первоначальному лицу.Мне нужно найти в столбце S два конкретных имени, а затем, основываясь на том, с чего начинается фамилия в столбце A, изменить запись в столбце S на что-то другое.

До

Таким образом, в приведенном выше примере в столбце S, если запись имеет значение Bert, проверьте столбец A, и если это значение начинается с AK, замените Bert на Grover, еслион начинается с LZ, замените его на Elmo.А также для столбца S найдите и замените Эрни на основе AK = Elmo и LZ = Grover.Оставьте другие записи в столбце S такими, какие они есть.

FINALLY, если в столбце S значение Grover, измените ячейку рядом с ним в столбце T на Example1, а если это Elmo, измените ячейку рядом с in в столбце Tto Example2 В противном случае не нужно ничего менять в столбце T

После (выделение добавлено только для того, чтобы показать, что было изменено, на самом деле это не нужно)

IЯ очень новичок в этом и, честно говоря, отчасти влюбился в то, что кто-то создал.

Я ценю любую помощь!

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Поскольку вам нужно изменить значения в столбце S, вам понадобится макрос для этого.Как то так?

Option Explicit
Sub Example()


Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range, cell As Range
Dim str As String
Dim LastRow As Long

Set wb = ThisWorkbook
Set ws = wb.Sheets("Blad1")

LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(LastRow, 1))

For Each cell In rng
    If Asc(Left(cell.Value, 1)) >= 65 And Asc(Left(cell.Value, 1)) < 76 Then
        str = "Grover"
    ElseIf Asc(Left(cell.Value, 1)) >= 76 And Asc(Left(cell.Value, 1)) < 91 Then
        str = "Elmo"
    End If

    If ws.Cells(cell.Row, 19).Value = "Bert" Then
        ws.Cells(cell.Row, 19).Value = str
    End If
    If ws.Cells(cell.Row, 19).Value = "Grover" Then
        ws.Cells(cell.Row, 20).Value = "Example1"
    ElseIf ws.Cells(cell.Row, 19).Value = "Elmo" Then
        ws.Cells(cell.Row, 20).Value = "Example2"
    End If

Next cell


End Sub
0 голосов
/ 20 декабря 2018

Не используйте VBA для этого, вы можете легко сделать это с помощью формулы, например, такой:

=IF(LEFT(A1;1)="a";"Yes";"No")

Эта формула проверяет, начинается ли ячейка A1 с одной маленькой буквы "a"(число 1 в функции листа LEFT() означает количество символов).Если да, он ставит "Yes", иначе он ставит "No".
Перетаскивание такой формулы по всему столбцу S может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...