É estranho que eu não tenha visto isso, pois o Excel parece ser uma linguagem válida para o código de golfe (apesar de seu 'compilador' não ser gratuito).
O Excel é um curinga no golfe, sendo bom em desafios de média complexidade e, às vezes, em desafios mais simples. Na maioria das vezes, o Excel é bom em desafios com manipulação de strings e manipulação mista de número de strings.
Que dicas gerais você tem para jogar golfe no Excel? Estou procurando idéias que possam ser aplicadas para codificar problemas de golfe em geral que sejam pelo menos um pouco específicos para o Excel (NÃO para o VBA). Por favor, uma dica por resposta.
Respostas:
Referência abreviada:
Se for necessário que seu programa receba várias entradas, convém reuni-las todas de uma vez. para ler várias células como uma matriz, pode-se fazer o exemplo:
Exemplo:
=len(A1)+Len(B1)+LEN(C1)
poderia ser
=SUM(LEN(A1:C1))
=SUM(LEN(A1:C1 A2:C2 A3:C3))
poderia ser
=SUM(LEN(A1:C3))
=SUM(LEN(A1:A1024))
poderia ser
=SUM(LEN(A:A))
=SUM(LEN(A:A B:B C:C))
poderia ser
=SUM(LEN(A:C))
fonte
Concatenar taquigrafia:
A
CONCATENATE
função pode ser substituída pelo&
símbolo 100% do tempo, desde que o primeiro argumento seja uma sequência ou célula.exemplo:
=CONCATENATE(A1,B1)
poderia ser reduzido para
=A1&B1
fonte
Vetorização com matrizes
Sempre que uma função usa uma matriz como argumento em vez de um singleton, essa função também gera uma matriz com o valor resultante para as indecies correspondentes.
Exemplo:
=LEN(A1)+LEN(B2)+LEN(C3)
poderia ser substituído por
=SUM(LEN({A1,B2,C3}))
fonte
Convertendo um número em texto:
Esta é uma dica muito simples, mas pode ser útil para alguns, no entanto ...
1&23
).A1
), altere o Formato numérico da célula para Texto para eliminar a necessidade de bytes extras.Tabela de referência rápida:
fonte
Vetorização de matrizes de células:
A dica Vetorização com matrizes Mostra como você pode aprimorar uma função com uma matriz usando formatação específica dentro da matriz. É possível fazer o mesmo com as células e economizará muitos bytes a longo prazo. Digamos que você tenha a seguinte planilha:
E queremos encontrar a maior vida útil de uma fruta.
Sem vetorização, pode-se usar as duas fórmulas da seguinte forma:
E isso dá uma resposta correta, mas a pontuação para este golfe não é convencional e provavelmente não será aceita como amplamente. Além disso, isso usa uma função de arrastar para baixo (Ew), que gera uma resposta confusa.
Em vez disso, podemos colocar a função na coluna D diretamente com a fórmula em E2. Para fazer isso, você substitui (neste caso, B2 e C2) suas variáveis por matrizes para o intervalo que deseja testar. Assim, sua fórmula se torna:
Isso economiza alguns bytes, além de tornar sua entrada com pontuação adequada.
fonte
Taquigrafia booleana:
Em vez de usar as funções
=TRUE()
e=FALSE()
, use=1=1
e=1=2
.fonte
ISBLANK () taquigrafia:
Em vez de usar
=ISBLANK(A1)
, use=A1=0
para determinar se uma célula (ou sejaA1
) está vazia.Nota: Este atalho não funcionará se a célula
A1
contiver0
. Nesse caso, você precisará usar=A1=""
.fonte
Encurtar nomes de planilhas
Se você renomear
Sheet2
para,S
então as referências seSheet2!a0
tornarãoS!a0
.fonte