Como eu copio dados selecionados específicos entre células em um arquivo CSV no Excel ou no Notepad ++?

1

Eu tenho que baixar diariamente os bancos de dados de arquivos de mídia e modificar os metadados de um arquivo csv para que o prefixo numérico exclusivo na coluna B seja adicionado como um sufixo às células na coluna C.

Existe uma maneira de fazer isso de uma só vez para todas as células que ainda não contêm o sufixo nos nomes de células da coluna C?

Nomomento,aúnicamaneiradefazerissoéadicionar_01aofinaldaprimeiracélula(iniciando_01)earrastaracélulaparabaixo,demodoapreencherautomaticamenteorestantedosnúmerosemordemcrescente.(comovistonaimagemabaixo).

Eu tentei abrir o arquivo no Notepad ++ para ver se há uma maneira de fazer isso lá, mas infelizmente ele não traz os dados com colunas e mostra todo o texto separado por vírgula em um estilo típico de bloco de notas. Eu preciso manter o arquivo no formato .csv para que eu possa reimportar os dados modificados em nosso servidor de mídia.

alguém sabe de uma maneira que irá tomar XX_ da coluna B e adicioná-la como _XX às células que não a possuem na coluna C? Estou aberto a tentar isso em qualquer software que não seja o Excel. Eu usei o notepad ++ para esse tipo de coisa no passado, mas nunca com arquivos csv e não tenho certeza se o documento sairá corretamente formatado posteriormente.

Coluna B:

16_9S0816YE556_GOPR0091_0S01
17_9S0816YE556_GOPR0091_1S01
18_9S0816YE556_GOPR0091_2S01
19_9S0816YE556_GOPR0091_3S01
01_9S0803SD006MN_C0001S01
02_9S0803SD006MN_C0002S01
03_9S0813ED095MN_8R7A3425S01
04_9S0813SD007MN_C0001S01

Coluna C:

9S0815GP174_16
9S0815GP174_17
9S0815GP174_18
9S0815GP174_19
9S0816GP175
9S0816GP175
9S0816GP175
9S0816GP175

Resultado final desejado para a coluna C ( sem afetar as primeiras quatro células ):

9S0815GP174_16
9S0815GP174_17
9S0815GP174_18
9S0815GP174_19
9S0816GP175_01
9S0816GP175_02
9S0816GP175_03
9S0816GP175_04

Obrigado.

    
por Myles 23.08.2018 / 10:55

2 respostas

1

Com o Notepad ++, você pode fazer:

  • Ctrl + H
  • Encontre o que: ^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),
  • Substituir por: $1_$2,
  • check Embrulhe
  • verificar expressão regular
  • Substituir todos

Explicação:

^           : beginning of line
(           : start group 1
  [^,]*     : 0 or more non comma character
  ,         : 1 comma
  (\d\d)    : group 2, 2 digits
  _         : underscore
  [^,]*     : 0 or more non comma character
  ,         : 1 comma
  [^,]*     : 0 or more non comma character
)           : end group 1
(?<!        : negative lookbehind, make sure we don't have before the comma
    _\d\d   : underscore and 2 digits
)           : end lookbehind
,           : a comma

Resultado para o exemplo dado:

col_A,16_9S0816YE556_GOPR0091_0S01,9S0815GP174_16,col_D
col_A,17_9S0816YE556_GOPR0091_1S01,9S0815GP174_17,col_D
col_A,18_9S0816YE556_GOPR0091_2S01,9S0815GP174_18,col_D
col_A,19_9S0816YE556_GOPR0091_3S01,9S0815GP174_19,col_D
col_A,01_9S0803SD006MN_C0001S01,9S0816GP175_01,col_D
col_A,02_9S0803SD006MN_C0002S01,9S0816GP175_02,col_D
col_A,03_9S0813ED095MN_8R7A3425S01,9S0816GP175_03,col_D
col_A,04_9S0813SD007MN_C0001S01,9S0816GP175_04,col_D
    
por 23.08.2018 / 13:49
0

Se você tiver o Excel 2016, use o Obter & Transforme ferramentas de poder para obter uma nova tabela com a coluna correta,. (Para o Excel 2010-2013, use o suplemento gratuito do MS Power Query for Excel .)

Você pode se conectar diretamente à fonte (arquivo csv, banco de dados, arquivo do Excel, ...) e realizar uma transformação como essa (mantive as colunas usadas, que podem ser removidas por uma etapa adicional antes do carregamento em uma folha):

Aqui,ocódigoMgeradopelainterfacedousuário.

letSource=Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", type text}, {"Column3", type text}}),
    #"Add Col: Col2 Text before delimiter" = Table.AddColumn(#"Changed Type", "Col2 TextBeforeDelimiter", each Text.BeforeDelimiter([Column2], "_"), type text),
    #"Add Col: Col3 Text after delimiter" = Table.AddColumn(#"Add Col: Col2 Text before delimiter", "Col3 TextAfterDelimiter", each Text.AfterDelimiter([Column3], "_"), type text),
    #"Added Custom" = Table.AddColumn(#"Add Col: Col3 Text after delimiter", "Check Number", each [Col2 TextBeforeDelimiter] = [Col3 TextAfterDelimiter]),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Col3 Transformed", each if [Check Number] = true then [Column3] else [Column3] & "_" & [Col2 TextBeforeDelimiter])
in
    #"Added Custom1"
    
por 23.08.2018 / 12:52