問題:
Excelには約50,000行あります。各行には domain=[a-Z0-9] という単語が含まれています。[a-Z0-9] は GUID のような一連の数字とテキストのプレースホルダーです。このドメイン ID を abc123 と呼びましょう。これは一意です。ただし、50,000 行ではテーブルの一意のキーではないため、ドメイン ID = abc123 の他のすべての行を削除して一意にする必要があります。ただし、すべてのドメインに対してこれを行う必要があるため、具体的には言えません。これを理解するにはスクリプトが必要です。ドメイン ID は常に同じ列にあり、多数の異なるドメイン ID が繰り返されます。
サンプル
列 2
abunchofstuff3123123khafadkfh23k4h23kh* DomainID=abc123 *
疑似コード
//Whenever there is a value for domain in row i col 2
//does it already exist in ListOfUniqueDomains?
//if so then remove this row
//else add to the ListOfUniqueDomains
Excel/VBAでこれを行うにはどうすればよいですか?
更新された回答 ピボットテーブルを使用するというアイデアは本当に気に入りましたが、ドメインIDを抽出する必要があったため、その部分のソリューションをここに投稿すると思いました. グーグルで実際に他のWebサイトから機能を盗みましたが、適切な信用を与えるために元の投稿を失いました. もしその人があなたなら許してください。
したがって、私の場合domain=abc123&
、長い文字列に埋め込まれた文字列に 2 つの区切り記号 (=、&) がありました。そのため、ドメイン ID を抽出するために、次のことを行いました。
Public Function extract_value(str As String) As String
Dim openPos As Integer
Dim closePos As Integer
Dim midBit As String
On Error Resume Next
openPos = InStr(str, "=") 'get the position of the equal sign
On Error Resume Next
closePos = InStr(str, "&") ' get the position of the &
On Error Resume Next
midBit = Mid(str, openPos + 1, closePos - 1)
'get the string that is between equal sign and before '&' however this seems
'greedy and so it 'picked up the last '&'.I used split to get the first occurrence
'of '&' because that was how my string was designed.
Dim s As String
s = Split(midBit, "&")(0)
extract_value = s
End Function
VBA は、このようなものに対しても良い考えですか?
ありがとう