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 = /