Passons en revue ensemble le processus d'évaluation:
Dans mon exemple, j'ai la valeur abf5fb6
dans la cellule A2
, qui est évaluée à 56
.
Première étape, remplacer A2
par valeur à la celluleA2
Avant:
= SUM (MID (0 & A2 , GRAND (INDEX (ISNUMBER (- MID (A2, ROW), 1 $: 99 $), 1):)) * * ROW (1 USD: 99 $),), ROW (1 USD: 99 $)) + 1, 1) * 10 ^ ROW (1 $: 99 $) / 10)
Après:
= SUM (MID (0 & "abf5fb6") , LARGE (INDEX (- ISNUMBER (- MID (A2, ROW (1 $: 99 $), 1))) * ROW (1 $: 99 $),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Remarquez comment le texte est maintenant entouré de guillemets. Cela signifie que c'est du texte, autrement appelé une chaîne .
Il est maintenant temps d’expliquer brièvement la MID
fonction. Cette fonction va simplement extraire du texte d'une chaîne. Le premier argument est le texte ou la chaîne par lequel nous allons commencer. Le deuxième argument est la position de départ de l'endroit où nous voulons extraire. Le troisième argument est le nombre de caractères que nous voulons extraire ou la longueur de notre résultat final. Par exemple, =MID("wizlog", 1, 3
retournera wiz
pendant que =MID("wizlog", 2, 5)
reviendraizlog
Ainsi, l'étape suivante concatène alors le 0&"abf5fb6"
, car, comme indiqué ci-dessus, le premier argument de la MID
fonction nécessite un texte (appelé encore une chaîne). Mais pour ajouter un nombre à une chaîne dans Excel, vous utilisez le &
symbole.
Avant:
= SUM (MID ( 0 & "abf5fb6") , LARGE (INDEX (- ISNUMBER (- MID (A2, ROW (1 $: 99 $), 1))) * ROW (1 $: 99 $),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Après:
= SUM (MID ( "0abf5fb6") , LARGE (INDEX (ISNUMBER (- MID (A2, ROW (1 USD: 99 $)), *)) * ROW (1 USD: 99 $),), ROW (1 USD: 99 $)) + 1 , 1) * 10 ^ ROW (1 $: 99 $) / 10)
Nous allons maintenant passer à la MID
fonction suivante pour remplacer l’autre A2
par sa valeur, comme avant.
Après:
= SUM (MID ("0abf5fb6", GRAND (INDEX (- ISNUMBER (- MID ( "abf5fb6 , ROW (1 $: 99 $)), 1)) * ROW (1 USD: 99 $),), ROW (1 USD: de 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Ensuite, nous traitons du deuxième argument de la deuxième MID
fonction ROW($1:$99)
,. Rappelez-vous, le deuxième argument de la MID
fonction nous donne simplement la position de départ. La ROW
fonction, par contre, renvoie simplement la ligne qui lui est donnée. Ainsi, puisque nous lui passons la plage de 1-99, elle nous renvoie un tableau ou une liste de 1-99. Cela signifie que nous prévoyons d’utiliser la MID
fonction 99 fois, chaque fois en partant d’une position différente de 1 à 99.
Avant:
= SUM (MID ("0abf5fb6", GRAND (INDEX (- ISNUMBER (- MID ("abf5fb6")), rangée (1 $: 99 dollars) , 1)) * * le droit des femmes (1 dollar: 99 dollars;).) +1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Après:
= SUM (MID ("0abf5fb6", GRAND (INDEX (ISNUMBER (- MID ("abf5fb6", 3); {1; 2; 3; ...; 99} , 1)).] 1).),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
(Pour gagner de la place, je n'ai pas tapé tous les numéros de 1 à 99, mais je suis sûr que vous avez compris.)
Maintenant que nous avons toutes les pièces de la deuxième MID
fonction, nous pouvons calculer cette partie.
Avant:
= SUM (MID ("0abf5fb6", GRAND (INDEX (ISNUMBER (- MID ("abf5fb6", 3); {1; 2; 3; ...; 99}, 1) ).] 1).),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Après:
= SUM (MID ("0abf5fb6", GRAND (INDEX (ISNUMBER (- {"a". 3); "b"; "f"; "5"; "f"; "b"; "6"; ";" ";" "; ...;" "} ) * ROW (1 $: 99 $),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Alors qu'est-ce qui vient de se passer ici? La MID
fonction ne fait que renvoyer une sous-chaîne de la chaîne donnée, en commençant à l’emplacement donné, pour le nombre de caractères spécifié. Nous lui avons donc donné la chaîne, lui avons donné abf5fb6
un tableau de positions de départ, en spécifiant que nous voulons seulement extraire 1 caractère. Ainsi, la fonction nous renvoie un tableau de chaque caractère de notre chaîne, de 1 à 99. Comme notre chaîne de départ ne comptait que 7 caractères, les positions 8 à 99 sont simplement vides. C'est pourquoi nous avons toutes les sous-chaînes vides après, ( "";"";"";...;"";
).
La fonction suivante à calculer est la ISNUMBER
fonction, mais examinons d’abord une fonction étrange que nous faisons en premier. Remarquez comme il y a un double moins devant notre nouveau tableau. Alors qu'un signe moins unique inverse le résultat d'un résultat (si TRUE
alors retour FALSE
et visa-vera), un double moins signifie que la réponse sous forme de chaîne est forcée. Donc, généralement, les réponses de TRUE
se transformer en un 1
et a FALSE
deviennent une réponse 0
, mais dans ce cas, nous convertissons chaque caractère de notre tableau en nombre. Donc entrer en --"a"
résultera en #VALUE!
entrant en --"5"
résultera en 5
.
Ainsi, lorsque nous exécutons la ISNUMBER
fonction:
= SUM (MID ("0abf5fb6", GRAND (INDEX ( ISNUMBER (- {"a". 3); "b"; "f"; "5"; "f"; "b"; "6"; ";" ";" "; ...;" "} ) * ROW (1 $: 99 $),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Ce que nous exécutons en coulisse est:
= SUM (MID ("0abf5fb6"), LARGE (INDEX ( ISNUMBER ({# VALEUR !; #VALUE !; #VALUE !; 5; #VALUE !; n °!!; 6 !; ...; #VALUE!} ) * ROW (1 $: 99 $),), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
En conséquence, il tourne un tableau de TRUE
ou FALSE
indiquant si la valeur était un nombre ou non. D'où nous obtenons:
= SUM (MID ("0abf5fb6", GRAND (INDEX ( {FALSE; FAUX; FAUX; VRAI; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX; FAUX; ...; FAUX} ) * ROW ($ 1: 99 $)), ROW (1 $: 99 $)) + 1,1) * 10 ^ ROW (1 $: 99 $) / 10)
Je n'ai plus de temps. Je suis au travail et je ne suis pas censé le faire. C'est ce que j'avais avant de devoir faire quelque chose de productif aujourd'hui. J'espère que je vais reprendre là où je me suis arrêté plus tard.