ドメイン名が付いたExcelのフィールドがあり、並べ替えの目的で、サブドメイン、domain、tldの順序を逆にしたいとします。例えば:
「my.sub.domain.example.org」は「org.example.domain.sub.my」になります
どのようにExcelでそれを行いますか?
ドメイン名が付いたExcelのフィールドがあり、並べ替えの目的で、サブドメイン、domain、tldの順序を逆にしたいとします。例えば:
「my.sub.domain.example.org」は「org.example.domain.sub.my」になります
どのようにExcelでそれを行いますか?
ワークシート関数でそれをどのように行うかはわかりませんが、それを行うための関数を作成する方がはるかに簡単です。
VBAエディターを開いたら、新しいモジュールを挿入して、ワークシートに使用できる次の関数を貼り付けます。
Public Function Reverse(ByVal Expression As String, ByVal Delimiter As String) As String
Dim Data() As String
Dim Result As String
Dim Index As Integer
Result = ""
Data = Split(Expression, Delimiter)
Index = UBound(Data)
Result = Data(Index)
Do
Index = Index - 1
Result = Result & Delimiter & Data(Index)
Loop While Index > 0
Reverse = Result
End Function
例
A1 ="my.example.site.tld"
A2 ="=Reverse(A1,".")"
A2=="tld.site.example.my"
ピリオド区切り文字を含む列にテキストを使用します。次に、= concatenate(...)または&(連結オペランド)を使用して、希望する順序と形式でそれらをつなぎ合わせることができます。
(ただし、NickSlashが投稿したVBAの回答は素晴らしいです。これは、VBA以外が必要な場合に備えてです)