Я думаю, вам придется создать свою функцию Excel с VBA, если вы хотите этот уровень управления
- нажмите ALT + F11, чтобы перейти к представлению VBA
- щелкните правой кнопкой мыши VBAProject>Вставить> Модуль
- откроется окно, в котором вы можете ввести код VBA
скопировать этот код VBA в открывшееся окно, чтобы создать новую функцию GenChars, которую вы хотите:
Option Explicit
Function GenChars(value As String)
' an array of individual elements that were delemited by "/"
Dim xs() As String
xs = Split(value, "/")
' remove the last character from each element or replace it with @ if it would be a duplicate
Dim i As Long
For i = LBound(xs) To UBound(xs)
Dim x As String
x = xs(i)
x = Left$(x, Len(x) - 1) ' remove last char
If ArrayContains(xs, x) Then x = "@" ' replace duplicate elements with @
xs(i) = x
Next i
Dim value2 As String
' new value with duplicates
value2 = Join(xs, "/") ' put the elements back into 1 value
' remove @ that was used instead of duplicates
value2 = Replace(value2, "/@", "") ' remove occurrences of /@ (1st element is never duplicate)
GenChars = value2
End Function
' whether array xs contains element y
Function ArrayContains(xs As Variant, y As Variant) As Boolean
ArrayContains = False
Dim x As Variant
For Each x In xs
If x = y Then ArrayContains = True
Next x
End Function
- снова нажмите ALT + F11, чтобы вернуться к обычному виду
- , чтобы использовать его, например, перейдите в ячейку B1 и введите: = GenChars (A1)