I've generalized you problem a little bit. The one you presented is limited to adding each user to only a single group. But what if you had to add each user to one or more groups? The code below will work with one or more users to be added to each group:
[array]$ColumnsToOmit = "User names"
$ColumnsToScan = @()
$groups = @{}
[array]$data = Import-Csv c:\junk\g.csv
$ColumnsToScan = $data[0] |
Get-Member -MemberType NoteProperty |
Select-Object -expand name |
Where-Object {$ColumnsToOmit -notcontains $_}
ForEach ($user in $data) {
ForEach ($ColumnName in $ColumnsToScan){
if ($user.$ColumnName -eq 'x'){
[array]$groups[$ColumnName] += $user."User names"
}
}
}
$groups.GetEnumerator() |
ForEach-Object{
# "Adding $($_.Value) to $($_.Name)"
Add-ADGroupMember -Identity $_.Name -Members $_.Value
}