C'est étrange que je ne l'ai pas vu, car Excel semble être un langage valide pour jouer au code (bien que son «compilateur» ne soit pas gratuit).
Excel est un peu un joker dans le golf, étant bon dans les défis de golf de complexité moyenne, et parfois dans des défis plus simples également. Plus souvent qu'autrement, Excel est bon dans les défis avec la manipulation de chaînes et la manipulation mixte de nombres de chaînes.
Quels conseils généraux avez-vous pour jouer au golf dans Excel? Je cherche des idées qui peuvent être appliquées aux problèmes de golf de code en général qui sont au moins quelque peu spécifiques à Excel (PAS VBA). S'il vous plaît, un pourboire par réponse.
Réponses:
Sténographie de référence:
Si votre programme doit prendre plusieurs entrées, vous souhaiterez peut-être les récupérer toutes en même temps. pour lire plusieurs cellules en tant que tableau, on pourrait faire comme l'exemple:
Exemple:
=len(A1)+Len(B1)+LEN(C1)
pourrait être
=SUM(LEN(A1:C1))
=SUM(LEN(A1:C1 A2:C2 A3:C3))
pourrait être
=SUM(LEN(A1:C3))
=SUM(LEN(A1:A1024))
pourrait être
=SUM(LEN(A:A))
=SUM(LEN(A:A B:B C:C))
pourrait être
=SUM(LEN(A:C))
la source
Raccourci concaténé:
La
CONCATENATE
fonction peut être remplacée par le&
symbole 100% du temps, tant que le premier argument est une chaîne ou une cellule.exemple:
=CONCATENATE(A1,B1)
pourrait être raccourci à
=A1&B1
la source
Vectorisation avec des tableaux
Chaque fois qu'une fonction prend un tableau comme argument au lieu d'un singleton, cette fonction affichera également un tableau avec la valeur de résultat dans les indecies correspondants.
Exemple:
=LEN(A1)+LEN(B2)+LEN(C3)
pourrait être remplacé par
=SUM(LEN({A1,B2,C3}))
la source
Conversion d'un nombre en texte:
C'est une astuce très simple, mais elle peut néanmoins être utile à certains ...
1&23
).A1
), Changez le format numérique de la cellule en texte pour éliminer le besoin d'octets supplémentaires.Tableau de référence rapide:
la source
Vectorisation de tableaux de cellules:
L'astuce Vectorisation avec des tableaux Montre comment vous pouvez jouer une fonction avec un tableau en utilisant une mise en forme spécifique dans le tableau. Il est possible de faire la même chose avec les cellules et vous permettra d'économiser de nombreux octets à long terme. Disons que vous avez la feuille suivante:
Et nous voulons trouver la durée de conservation la plus élevée d'un fruit.
Sans vectorisation, on pourrait utiliser les deux formules comme ceci:
Et cela donne une réponse correcte, mais le score de ce golf n'est pas conventionnel et ne sera probablement pas accepté aussi largement. En plus de cela, cela utilise une fonction de glisser-déposer (Ew), ce qui rend la réponse confuse.
Au lieu de cela, nous pouvons placer la fonction dans la colonne D directement avec la formule dans E2. Pour ce faire, vous remplacez (dans ce cas B2 et C2) vos variables par des tableaux pour la plage que vous souhaitez tester. Ainsi, votre formule devient:
Cela vous permet d'économiser quelques octets et de rendre votre entrée correctement notable.
la source
Sténographie booléenne:
Au lieu d'utiliser les fonctions
=TRUE()
et=FALSE()
, utilisez=1=1
et=1=2
.la source
ISBLANK () Sténographie:
Au lieu d'utiliser
=ISBLANK(A1)
, utilisez=A1=0
pour déterminer si une cellule (c'est-à-direA1
) est vide.Remarque: ce raccourci ne fonctionnera pas si la cellule
A1
contient0
. Dans ce cas, vous devrez utiliser=A1=""
.la source
Raccourcir les noms des feuilles
Si vous renommez
Sheet2
pourS
ensuite les références àSheet2!a0
devenirS!a0
.la source