Formula Excel: Listează numele foilor cu formula -

Formula generică

=GET.WORKBOOK(1)&T(NOW())

rezumat

Pentru a lista foile de lucru într-un registru de lucru Excel, puteți utiliza o abordare în doi pași: (1) definiți un interval denumit „nume de foi” cu o comandă de macrocomenzi veche și (2) utilizați funcția INDEX pentru a prelua numele foilor folosind intervalul numit. În exemplul prezentat, formula din B5 este:

=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))

Notă: Am întâlnit această formulă pe panoul de mesaje MrExcel într-o postare de T. Valko.

Explicaţie

Intervalul denumit „nume de foaie” este creat cu acest cod:

=GET.WORKBOOK(1)&T(NOW())

GET.WORKBOOK este o comandă macro care preia o serie de nume de foi în registrul de lucru curent. Matricea rezultată arată astfel:

("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")

O expresie criptică este concatenată cu rezultatul:

&T(NOW())

Scopul acestui cod este de a forța recalcularea pentru a prelua modificările la numele foilor. Deoarece ACUM este o funcție volatilă, se recalculează la fiecare modificare a foii de lucru. Funcția ACUM returnează o valoare numerică reprezentând data și ora. Funcția T returnează un șir gol ("") pentru valorile numerice, astfel încât concatenarea nu are niciun efect asupra valorilor.

Înapoi pe foaia de lucru, celula B6 conține această formulă copiată:

=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))

Funcționând din interior spre exterior, funcția MID este utilizată pentru a elimina numele foilor de lucru. Matricea rezultată arată astfel:

("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")

Aceasta intră în funcția INDEX ca „matrice”. Funcția ROW utilizează un interval de expansiune pentru a genera un număr de rând incremental. La fiecare rând nou, INDEX returnează următoarea valoare a matricei. Când nu mai există nume de foaie de redat, formula va returna o eroare #REF.

Notă: deoarece această formulă se bazează pe o comandă macro, va trebui să salvați ca registru de lucru activat pentru macro dacă doriți ca formula să continue să actualizeze numele foilor după închiderea și redeschiderea fișierului. Dacă salvați ca foaie de lucru normală, codul numelui de foaie va fi eliminat.

Legături bune

Postarea forumului Mr. Excel de T. Valko

Articole interesante...