Como posso fazer alguns dados em uma classificação automática do Planilhas Google?

Digamos que eu queira que o Planilhas Google classifique alguns dados automaticamente, por exemplo coluna C.

Como faço isso?

Sei que posso classificar os dados manualmente clicando com o botão direito e selecionando Classificar dados , mas não é isso que estou procurando.

Resposta

Você pode usar o sort() função para isso, mas você deve ter seus dados em um lugar e uma cópia classificada automaticamente desses dados em outro lugar.

Por exemplo, diga Tenho a Planilha1 com meus dados:

 | A | B | C ===================== 1 | This | this | 2 2 | Is | is | 1 3 | Test | test | 3 

Então, na Planilha2, célula A1, colocaria esta função:

= sort (Folha1! A: C, 3, TRUE)

Isso mostraria meus dados, mas classificado por coluna C (a terceira coluna), crescente.

 | A | B | C ===================== 1 | Is | is | 1 2 | This | this | 2 3 | Test | test | 3 

Comentários

  • Os parâmetros devem ser separados por ponto e vírgula

    por exemplo = sort(Sheet1!A:C; 3; TRUE)

  • @Petr Funciona muito bem para mim com as vírgulas.
  • @ user17634: Isso depende das configurações de sua localidade.
  • O problema com esta abordagem é que você não pode mover o item 3 para a posição do item 1 (ele duplica a posição 3).

Resposta

Também é possível usar Google Apps Scripts para obter a classificação automática local dos dados.

Isso pode ser mais difícil de alcançar e mais sujeito a erros (eu ainda escolheria a solução de William Jackson, +1 BTW), mas achei que era interessante o suficiente para mostrar.

Eu tenho uma planilha parecida com esta:

planilha de classificação automática

Eu adicionei um novo script, usando estas etapas:

  • no menu, vá para Ferramentas -> Editor de scripts …
  • selecione Criar um novo projeto
  • na janela de código vazia que aparece, cole o seguinte código, que será executado automaticamente sempre que um a célula é editada:

    function onEdit(event){ var sheet = event.source.getActiveSheet(); var editedCell = sheet.getActiveCell(); var columnToSortBy = 4; var tableRange = "B3:E9"; if(editedCell.getColumn() == columnToSortBy){ var range = sheet.getRange(tableRange); range.sort( { column : columnToSortBy } ); } } 
  • volte para a planilha e comece a brincar com os valores para ver a classificação da tabela automaticamente a cada vez

Nota:

No script acima,

  • o valor 4 representa o índice da coluna D (a coluna Value – o nesse “será classificado)
  • o valor "B3:E9" representa o intervalo da tabela (excluindo a linha de cabeçalho)

Sua tabela provavelmente será diferente da minha, então esses valores devem ser ajustados de acordo.

Comentários

  • Tentei a sua função [editada] onEdit ( evento) {var sheet = event.source.getActiveSheet (); var editedCell = sheet.getActiveCell (); var columnToSortBy = 4; var tableRange = ” A2: F99 “; if (editedCell.getColumn () == columnToSortBy) {var range = sheet.getRange (tableRange); range.sort ({coluna: columnToSortBy}); }} mas continuo recebendo um erro: TypeError: Não é possível ler a propriedade ” source ” de indefinido. (linha 2) que é o seguinte código: var sheet = event.source.getActiveSheet (); alguma ideia? NM, só obtém o erro ao executar a partir da página do script, mas funciona corretamente na planilha real
  • , mas continua recebendo um erro: TypeError: Cannot read property ” fonte ” de indefinido. (linha 2) que é o seguinte código: var sheet = event.source.getActiveSheet (); alguma ideia? NM, só obtém o erro ao executar a partir da página do script, mas funciona corretamente na planilha real. Agora a pergunta … é classificação A-Z, como faço para alterá-lo para classificação automática Z-A? obrigado
  • @ drizzt09 Ao chamar o método, você provavelmente especifica null para o parâmetro event, que de outra forma é adequado preenchido pela infraestrutura de planilhas do Google quando um evento real é acionado.
  • @ drizzt09 para alterar a ordem de classificação, altere a linha range.sort como esta: range.sort( { column : columnToSortBy, ascending: false } ); . Para obter mais opções de classificação, consulte developers.google.com/apps-script/class_range#sort
  • @ w0lf Obrigado, funcionou perfeitamente. agora eu gostaria de adicionar a ele ou ter uma função separada que executa exatamente a mesma função, mas ao abrir ou atualizar. Portanto, quando eu abro / atualizo a planilha do Excel, ela classifica automaticamente a 4ª coluna em ordem decrescente, da mesma forma que quando edito o código na coluna 4 com seu código atual. Obrigado

Resposta

Outra opção sem um script é:

=QUERY(A1:C3,"SELECT * ORDER BY C") 

O intervalo é restrito (A1: C3) porque onde a ordem é crescente, as entradas em branco aparecerão primeiro.

Comentários

  • Você poderia me dizer onde devo colocar isso?
  • Você pode usar SELECT * WHERE C <> '' ORDER BY C para ignorar entradas em branco, então você pode usar um intervalo grande o suficiente para incluir todas as linhas atuais e futuras.

Resposta

Aqui “um script genérico que será classificado automaticamente com base na primeira coluna e assume uma linha de cabeçalho.

Para criar um script:

  • No menu, vá para Ferramentas -> Editor de Script …

Na janela de código vazia, cole o seguinte código, que será executado automaticamente sempre que uma célula for editada:

 // LinkBack to this script: // http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036 /** * Automatically sorts the 1st column (not the header row) Ascending. */ function onEdit(event){ var sheet = event.source.getActiveSheet(); var editedCell = sheet.getActiveCell(); var columnToSortBy = 1; var tableRange = "A2:T99"; // What to sort. if(editedCell.getColumn() == columnToSortBy){ var range = sheet.getRange(tableRange); range.sort( { column : columnToSortBy, ascending: true } ); } } 

Comentários

  • Descobri que precisava var sheet = SpreadsheetApp.getActiveSpreadsheet(); em vez do que ‘ está aqui.
  • Isso funciona muito bem, mas como posso editar isso para que classifique apenas em uma única planilha no documento?
  • não ‘ não parece funcionar

Resposta

Usi a solução do script, mas classifique em mais de uma coluna

Eu queria classificar por uma coluna do menu suspenso e depois por data.

Para fazer isso, modifique a linha “range.sort” dos trechos de código de Cristian ou geekspotz “como:

// Sorts descending by edited column, then ascending by column 1 // Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);

A diferença é adicionar os colchetes ao redor de toda a instrução (matriz) e separar as classificações por vírgulas.

Modificação do código de classificação extraída da resposta Stack Overflow de Serge aqui : Classificação automática em planilhas

Resposta

Aqui eu criei um script e planilha de classificação automática (requer um pouco de trabalho na planilha, uma cópia, colar do código e definir seus intervalos. É baseado em várias respostas de troca de pilha

https://docs.google.com/spreadsheets/d/1LDohwCuy8HZg4YCQEOuWmgpY_WG2BVh_aH-i4JGM5BE/edit#gid=0

Seu registro e obtém o valor do intervalo em que você se concentra na última edição, compare-o com o valor agora após a edição real e se diferente, classifica a tabela.

Resposta

O Planilhas Google tem Filtros por este motivo e faz não é necessário que você crie uma nova planilha em seu documento.

Documentação: https://support.google.com/docs/answer/3540681

Resposta

Isso pode ser feito usando o Google App Script. O script será classificado automaticamente sempre que houver uma alteração nos dados da planilha.

Em sua planilha do Google:
Escolha Ferramentas -> Editor de scripts, cole o script abaixo e salve.

Substitua as variáveis SHEET_NAME, SORT_DATA_RANGE e SORT_ORDER pelos valores correspondentes.

SHEET_NAME = "Sheet1"; SORT_DATA_RANGE = "A1:C999"; SORT_ORDER = [ {column: 3, ascending: false}, // 3 = column number, sorting by descending order {column: 1, ascending: true}, // 1 = column number, sort by ascending order {column: 2, ascending: true} ]; function onEdit(e){ multiSortColumns(); } function multiSortColumns(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(SHEET_NAME); var range = sheet.getRange(SORT_DATA_RANGE); range.sort(SORT_ORDER); ss.toast("Sort complete."); } 

Fonte: https://www.idiotinside.com/2018/06/08/sort-multiple-columns-google-sheets-apps-script/

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *