Come posso indicizzare un valore esatto ripetuto in più colonne in Excel


0

Questa applicazione è per elencare cosa cremagliere un articolo sarebbe situato in un magazzino.

Ad esempio se un articolo è stato memorizzato su alcuni rack diversi. Non ho bisogno di un totale di quante volte l'elemento viene ripetuto, solo l'intestazione della colonna in questo caso "Rack #" dove potrebbe essere trovata.

Ho creato un semplice esempio e ho bisogno del codice per B2.

Ho appena inserito il valore di B2 per mostrare il risultato che sto cercando:

enter image description here


1
Non abbiamo tutti "solo bisogno del codice" per qualcosa? - Seriamente, questo è un sito web in cui le persone ti aiuteranno con un problema specifico a un livello dettagliato, dopo hai dimostrato di aver provato a risolverlo e dove hai fallito.
Run CMD

Quanti rack hai nei tuoi dati reali?
Excellll

Sfortunatamente questa applicazione è per un grande magazzino dove ci sarebbero 102 rack / coloi. Stavo cercando un modo efficace per elencare i rack che potrebbero essere trovati in modo da poter riorganizzare il nostro inventario. Molto probabilmente un codice / elemento singolo verrebbe trovato solo in 1 o 2 diversi Racks al massimo. @Class Stacker La mia conoscenza excel è minima e dopo un po 'su Youtube e altri siti come questo non ho trovato una soluzione. Apprezzo le risposte utili di tutti.
Jared

Risposte:


0

Una soluzione complicata senza l'utilizzo di VBA

  • Inserire ="" in G2: G6.
  • Inserire =IF(NOT(ISNA(MATCH($A2,D$2:D$5,0))),CONCATENATE(G2,IF(G2="","",", "),D$1),G2) in H2 e copialo in H2: J6
  • Inserire =J2 in B2 e copiarlo in B2: B6

Solution to Questions

Se aggiungi rack, devi aggiungere colonne a destra della colonna J.

More Racks and more content in the Racks

Se ci fosse una bella funzione di concatenazione di stringhe in Excel, si potrebbe accorciare ...

Spiegazione

Dobbiamo metterlo ="" nella colonna G perché volevo avere lo stesso codice nelle colonne da H a J e senza clausole extra se.

Il lungo comando spiegava:

  • In quale riga è A2 nella colonna D2: D5 (se non presente, allora #NA) = & gt; MATCH (A2, D2: D5,0)
  • A2 non è nella colonna D2: D5 = & gt; ISNA (MATCH (A2, D2: D5,0))
  • Inverti "A2 non è nella colonna D2: D5" = & gt; NOT (ISNA (MATCH (A2, D2: D5,0)))
  • Se succede quanto sopra, fai QUESTO altro THAT = & gt; IF (NOT (ISNA (MATCH (A2, D2: D5,0))), questa, che)
  • QUESTO (A2 è nella Colonna = vogliamo che "Rack 1" sia scritto) = & gt; CONCATENATE (G2, IF (G2 = "", "", ","), D1)
  • CHE (non abbiamo nulla di nuovo) = & gt; G2

-1

Eccolo, usando VBA / Macros:

Public Function racks(code As String, range As range) As String
    result = ""
    Separator = ","
    colRanges = range.Columns.Count
    rowRanges = range.Rows.Count
    For i = 1 To colRanges
        For j = 2 To rowRanges
            If code = range.Cells(j, i) Then
                If result <> "" Then
                    result = result & Separator & range.Cells(1, i)
                Else
                    result = range.Cells(1, i)
                End If
                j = rowRanges
            End If
        Next j
    Next i
    racks = result
End Function

Apri VBA / Macros con Alt + F11, inserisci un nuovo modulo sotto ThisWorkbook e incollare questo codice sul lato destro.

La funzione utilizza due parametri, il codice e il gamma dove farà la ricerca.

Ad esempio, per cella B2 sul tuo esempio sarà =racks(A2,$D$1:$F$5).


Fantastico, apprezzo la tua risposta approfondita! Non pensavo che ci sarebbe stata una risposta così rapida.
Jared
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.