Допустим, у нас есть столбец со значениями 100,101,102 и т. д., мы хотим объединить строку "A" в конце без использования помощи другого столбца, например, мы можем объединить столбец значений 101 со строкой A. Интересно, сможем ли мы добиться этого с помощью любых встроенных функций или любой другой простой логики?
Пытаюсь использовать функцию concat в том же столбце, где у меня есть данные, которые нужно объединить со строковым значением. Это вызывает ошибку
Какая у вас версия Excel? Какую формулу вы пробовали?
Итак, я готовлю образцы данных для тестирования и задаюсь вопросом, смогу ли я сделать это прямо в столбце. Пример данных: TP100000PT00UC001 TP100000PT00UC002 TP100000PT00UC003 TP100000PT00UC004 TP100000PT00UC005 TP100000PT00UC006 TP100000PT00UC007 .. к этому мне нужно было добавить строку A в конце . Я пытался CONCAT(A$1,"A"), но это неверно.
@UCN Ваша формула почти верна. Просто разблокируйте номер строки. Попробуйте =CONCAT(A1,"A")
без использования помощи другого столбца. Единственный способ — использовать VBA, если вы хотите, чтобы строка была частью значения.
Я могу придумать два способа сделать это, не прибегая к помощи другой колонки.
Присвойте ячейкам собственный формат @\A
.
.
На самом деле это не добавит букву A к тексту, как это можно увидеть в строке формул, но буква A появится в ячейке справа от текста.
Используйте немного VBA, чтобы добавить букву A в каждую выделенную ячейку:
Sub Add_An_A()
Dim rCell As Range
For Each rCell In Selection.Cells
rCell = rCell & "A"
Next rCell
End Sub
В противном случае вам придется использовать вспомогательный столбец:=A1 & "A"
— затем вы можете скопировать это и вставить специальные значения обратно в столбец A (Ctrl+Shift+V, чтобы вставить значения только в 365).
Великолепно! Мне понравились оба этих варианта. Спасибо, Даррен! Цените это.
A2
, после изменения (ввода) значения в столбце A
к нему добавляется буква «A», если значение не является ошибкой или пустым.Листовой модуль, например. Sheet1
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ClearError
Const FIRST_CELL_ADDRESS As String = "A2"
Const SUFFIX As String = "A"
Dim trg As Range, tRowsCount As Long
With Me.Range(FIRST_CELL_ADDRESS)
Set trg = .Resize(Me.Rows.Count - .Row + 1)
End With
Dim irg As Range: Set irg = Intersect(trg, Target)
If irg Is Nothing Then Exit Sub
Application.EnableEvents = False
Dim icell As Range, iValue As Variant
For Each icell In irg.Cells
iValue = icell.Value
If Not IsError(iValue) Then ' is no error
If Len(iValue) > 0 Then ' is not blank
icell.Value = iValue & SUFFIX
End If
End If
Next icell
ProcExit:
Application.EnableEvents = True
Exit Sub
ClearError:
Resume ProcExit
End Sub
Ух ты! Это тоже работает как шарм! Спасибо, приятель.
Да, вы можете. Так как же на самом деле выглядят ваши данные? И как вы хотите, чтобы это выглядело в конечном итоге? В настоящее время это звучит так, как будто вы можете это сделать
A1:A3&"A"
. Вы говорите об ошибке при использованииCONCAT()
. Пожалуйста, не могли бы вы также включить свою попытку формулы.