Fórmulas Excel aprimoradas a serem usadas

0
Products    PD1 PD2 PD3 PD4 PD5 PD6 Summary of Purchases
Customer A      2   2   3   5   6   PD2, PD3, PD4, PD5, PD6
Customer B      2   2       1       PD2, PD3, PD5, 

Como faço para resumir as compras de forma que pareçam na linha para ver se não está em branco e obtém a lista de produtos correspondente.

    
por Utam 25.05.2016 / 05:37

2 respostas

0

Tente o seguinte UDF () :

Public Function qwerty(rIN As Range) As String
    Dim r As Range, s As String

    s = ""
    For Each r In rIN
        If r.Value <> "" Then
            s = s & "," & r.EntireColumn.Cells(1).Value
        End If
    Next r
    qwerty = Mid(s, 2)
End Function

FunçõesDefinidaspeloUsuário(UDFs)sãomuitofáceisdeinstalareusar:

  1. ALT-F11exibeajaneladoVBE
  2. ALT-IALT-Mabreumnovomódulo
  3. coleomaterialefecheajaneladoVBE

Sevocêsalvarapastadetrabalho,aUDFserásalvacomela.SevocêestiverusandoumaversãodoExcelposteriora2003,deverásalvaroarquivocomo.xlsmemvezde.xlsx

PararemoveroUDF:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaroUDFdoExcel:

=qwerty(A1:Z1)

Parasabermaissobremacrosemgeral,consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 25.05.2016 / 15:14
0

Outra maneira que não usa vba, em vez disso, usa nomes e fórmulas para verificar se PD1 tem uma entrada. Isso pode ser usado em qualquer lugar da linha. para verificar o cliente A, vá para qualquer célula em branco à direita dos dados na segunda linha e digite

= if ($ b2="", "", $ b $ 1 & ",")

isso será em branco ou PD1, dependendo do conteúdo de b2 copie a fórmula e use o gerenciador de nomes (fita de fórmula) crie um novo nome de PD_1 e cole a fórmula na linha inferior e o gerenciador de nomes irá convertê-lo ligeiramente, como

= SE (Folha1! $ B2="", "", Folha1! $ B $ 1 & ",")

Siga este mesmo padrão para os produtos restantes usando o exemplo de letra de coluna correta $ c2="", $ c $ 1 para PD2, etc.

Você poderia ir direto ao PD_ #, mas eu faria mais um nome

PD_Sum = trim (pd_1 & Pd_2 & PD_3 & PD_4 & PD_5 & PD_6)

Então, na coluna de soma, você acabou de colocar = PD_Sum

se você quiser sem o, no final, então é

= iferror (esquerda (PD_sum, len (PD_sum) -1), "")

O iferror é incluído caso não haja nada selecionado em nenhuma das células, ele permanece em branco e não gera uma mensagem de erro feia.

    
por 25.05.2016 / 16:42