Pourquoi cette formule de tableau ne fonctionne pas?

entrez la description de l'image ici

Sur l'illustration, toutes les formules sont regroupées. La scope que chaque formule couvre est bordée, et la première formule sur chaque bloc est écrite en haut de ce bloc.

Gamme A4:A103 est un vector d'input (qui est numérique), la plage C4:G23 est une permutation donnée (input) des lignes de A4:A103 (nombres entiers non nuls forment toujours plus nombreux que la longueur du vector d'input) .

Permettez-moi d'interpréter la masortingce de permutation comme set de lignes.

Comment calculer pour chaque ligne dans un nombre constant de cellules le nombre minimal dans le vector d'input? Par le nombre constant de cellules, je veux dire une solution, qui nécessiterait un nombre fixe de cellules pour chaque ligne, quel que soit le nombre de colonnes en permutation. (Dans le cas de production, chaque dimension est beaucoup, beaucoup plus grande, il y a environ 100 colonnes dans la masortingce de permutation.)

Je ne request pas de solutions VBA. Si cela est nécessaire, la solution peut utiliser un complément Excel gratuit et accessible au public, comme MoreFunc, mais je préférerais le garder vanilla Excel 2007 ou version ultérieure.


Je pensais que la formule {=MIN(INDEX(INDIRECT($A$2);$C4:$G4))} résoudrait mon problème. Étonnamment, Excel semble ne pas prendre en count la nature de la formule, et l'évalue comme s'il était écrit comme =MIN(INDEX(INDIRECT($A$2);$C4) équivalent à dysfonctionnel =INDEX(INDIRECT($A$2);$C4) .

D'autre part, on peut voir que l'argument du MIN est compris comme un tableau dans la gamme I4: M4.

INDEX fonctionne de façon étrange!

Normalement INDEX ne peut pas renvoyer un tableau – même si vous semblez avoir trouvé la seule exception à cela – lorsqu'il s'agit d'une formule de tableau entré dans une plage.

Vous devriez pouvoir utiliser OFFSET pour renvoyer le tableau requirejs qui fonctionnera dans MIN , c'est-à-dire avec cette formule

=MIN(N(OFFSET(INDIRECT($A$2);$C4:$G4-1;0)))

confirmé avec CTRL + MAJ + ENTRÉE