ive cherche des approches différentes pour résoudre mon problème, que ce soit avec Vlookup, index, index / match mais ne pouvait pas le comprendre encore. P>
im essayant de répertorier les mêmes co-locataires du même appartement sur la même ligne que montré sur la photo. Merci pour l'aide! P>
4 Réponses :
Voici une méthode sans la colonne d'assistance:
Pour obtenir "John" dans la cellule B21, vous pouvez utiliser une formule de tableau * qui combinera la colonne A et B afin que vous puissiez correspondre à la fois aux deux critères (en utilisant " & "). La formule ressemblerait à ceci: p> pour obtenir "simon" dans la cellule C21, vous pouvez simplement copier le précédent car les panneaux de dollar s'assureront que les critères de recherche sont Réglage correctement. P> Pour obtenir "Alex" dans D21, il est un peu plus délicat puisque vous essayez d'obtenir le 2e match.
Une méthode pour obtenir un deuxième match est détaillée dans Cet article . Dans ce contexte, cela ressemblerait à ceci: p> *: besoin d'appuyer sur Ctrl kbd> + shift kbd> + Entrez kbd> dans les anciennes versions d'Excel (2010 et antérieure). P> p>
Merci d'avoir essayé d'aider. Cependant, je reçois # N / A tout en utilisant simplement la première ligne de code. Je ne vois pas pourquoi le lookup_value est $ A11 & $ B10 dans la fonction correspondante
@Lou je n'avais pas autant de ligne vide que vous avez dans ma version. J'ai changé les références pour correspondre à celle de votre question.
Présumer que vos données sont dans les colonnes A2: C?, désignez des colonnes à droite comme destinataires de vos données réarrangées. Entrez les mêmes descriptions exactes dans leurs légendes (dans la rangée 1) comme utilisée dans la colonne d'état. J'ai utilisé des colonnes D: H et les légendes "principales" et "co-locataire" dans toutes les colonnes restantes. De cette façon, j'avais 4 colonnes pour les co-locataires. Vous avez besoin autant de colonnes qu'il pourrait y avoir des co-locataires comme maximum. P>
Entrez maintenant la formule ci-dessous dans la première cellule de la nouvelle colonne principale em> (c'était D2 dans mon exemple) et copiez-la sur toute la gamme, dans mon exemple D2: H6. C'est la même formule pour toutes les cellules. P>
= si (décalage ($ B2, colonne () - 4,0) = D $ 1, décalage ($ B2, colonne () - 4,1), "") p>
Observez que les 4 de ma formule sont le numéro de la colonne dans laquelle vous entrez la formule. Dans mon test, la colonne D, la quatrième colonne). Si vous utilisez une autre colonne, veuillez remplacer les deux événements de 4 avec le numéro de la colonne que vous avez choisie. Il en va de même pour la référence de la formule à 1 $ D $. La cellule spécifie la légende de la nouvelle colonne EM> principale em>. P>
Sélectionnez maintenant la gamme complète avec la formule (D2: H6 dans mon test), copier et coller des valeurs spéciales>. Cela remplacera toutes les formules par les valeurs qu'ils ont générées. Vous pouvez maintenant supprimer des colonnes B: c. P>
Sélectionnez la plage complète (je n'ai pas encore supprimé B: C. Donc, c'était A2: H6 pour moi) et cliquez sur Supprimer les duplicates em> sur l'onglet em>. Spécifiez la colonne A à des doublons. Cette action ne conservera que la première rangée de chaque identifiant d'appartement supprimant toutes les autres, en particulier celles qui sont apparues défectueuses après avoir appliqué les formules. Si vous n'avez pas supprimé de colonnes B: C pourfois, ils sont définitivement redondants maintenant. P>
Vous dites Voici la formule: p> < img src = "https://i.stack.imgur.com/pai5m.png" alt = "Entrez la description de l'image ici"> p> p> ive recherché des approches différentes code>, ce n'est donc qu'une petite suggestion si vous utilisez Office365, vous pouvez utiliser la fonction de filtre code> pour cela.
une approche VBA
Sub list()
Dim wb As Workbook, ws As Worksheet
Dim iRow As Long, iHeaderRow As Long
Dim sApt As String, sStatus, sName As String
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
iRow = 4 'start
sApt = CStr(ws.Cells(iRow, 1))
Do While Len(sApt) > 0
sStatus = ws.Cells(iRow, 2)
sName = ws.Cells(iRow, 3)
If Not dict.exists(sApt) Then
dict.Add sApt, ""
End If
If LCase(sStatus) = "main" Then
dict(sApt) = sName & dict(sApt) ' add to front
Else
dict(sApt) = dict(sApt) & ";" & sName ' add to back
End If
iRow = iRow + 1
sApt = CStr(ws.Cells(iRow, 1))
Loop
' result header
iHeaderRow = iRow + 1
ws.Cells(iHeaderRow, 1) = "Apt"
ws.Cells(iHeaderRow, 2) = "Main"
iRow = iRow + 2
' result table
Dim k As Variant, ar As Variant, n As Integer, m As Integer
For Each k In dict.keys
ws.Cells(iRow, 1) = k
ar = Split(dict(k), ";")
n = UBound(ar)
ws.Cells(iRow, 2).Resize(1, n + 1) = ar
If n > m Then m = n ' max for n
iRow = iRow + 1
Next
' complete header row
For n = 1 To m
ws.Cells(iHeaderRow, n + 2) = "Co-tenant"
Next
MsgBox "Done"
End Sub
Êtes-vous autorisé à utiliser une colonne d'assistance qui allie des informations dans la colonne A et B?
Helper serait également utilisé. Il suffit d'essayer de le faire fonctionner = /