Correspondance des données dans un tableau sans Vlookup

J'essaie de faire correspondre datatables dans plusieurs files à l'aide de arrays (car vlookup prend trop de time).

Par exemple: j'ai 10 files source contenant les informations (chaque file a pour un jour différent). Chaque file comporte plusieurs éléments et chaque élément comporte plusieurs colonnes d'informations, comme d'une database normale.

File 1 - 20 of January Item (identifier) Price Discount Quantity A 100 5 10 B 80 6 15 C 110 3 15 File 2 - 21 of January Item (identifier) Price Discount Quantity A 95 3 5 B 90 6 10 C 120 4 20 D 130 7 2 File 3 - 22 of January Item (identifier) Price Discount Quantity A 70 11 35 B 100 1 15 D 45 17 25 

Mon code obtient ces données et utilise vlookup pour correspondre, en ajoutant de nouveaux files sources, il augmente le nombre d'éléments dans le file de sortie (si un file n'a pas d'élément existant dans le passé, l'information ne count que zéro) .

Ma sortie dans Excel est:

 Tab 1 (price) All the item Identifiers 20/01 21/01 22/01 A 100 95 70 B 80 90 100 C 3 4 - D - 130 45 Tab 2 (discount) All the item Identifiers 20/01 21/01 22/01 A 5 3 11 B 6 6 1 C 110 120 - D - 2 25 

Etc.

Le premier problème est que les éléments dans chaque file ne sont pas les mêmes (certains peuvent être ajoutés ou exclus), et je suis actuellement autour de milliers d'articles, chacun de plus de 15 colonnes d'informations.

Deuxièmement, si je transforme cette information (chaque file séparément) en un tableau, comment puis-je faire correspondre les informations sans la vlookup?

Disons que je vais au premier file, que je transforme en tableau, comment puis-je faire correspondre mes identifiants d'élément pour get les informations pour chaque date et créer la sortie?

Toute aide sera très appréciée.

J'utiliserais un tableau pivot pour résoudre ce problème. Vos données sont des arrays essentiels. Tout ce que vous devez faire est d'append une autre colonne à chacune des tables dans les files, cette colonne supplémentaire étant "fileDate" ou quelque chose de similaire.

Les tables pivotantes peuvent être utilisées pour générer toute une variété de rapports. Vous n'aurez pas à vous soucier des searchs. Dans les arrays pivot des packages de database coûteux, on connaît les cubes OLAP; Les tables pivot de Excel sont une excellente alternative peu coûteuse.

Si je comprends bien, vous possédez actuellement une méthode pour ouvrir et parsingr des files séparés?

Dans le cas où vous souhaitez accélérer les vlookups dans votre code, une méthode pourrait être de réduire le nombre de vlookups que vous exécutez. Si le nombre de colonnes dans vos files de données est toujours le même (col1 = nom, col2 = date, col3 = adresse, etc.) que vous pouvez envisager d'utiliser MATCH pour find le numéro de ligne de l'identifiant d'intérêt (p. Ex. A, B, C ou D) d'abord:

 MATCH(identifier_address, array_of_interest, 0) 

Si vous stockez ces informations dans une colonne, cela ne doit être recherché qu'une seule fois.

Ensuite, pour interroger les valeurs dans vos files, utilisez la fonction ADDRESS pour accéder directement aux données de chacune de vos colonnes (1-15), sans avoir à utiliser vlookup, de la manière suivante:

 INDIRECT("sheetname!" & ADDRESS(cell_with_match_result, 2)) INDIRECT("sheetname!" & ADDRESS(cell_with_match_result, 3)) 

etc.

modifier. Bien sûr, vous devriez vous référer au file / tableau en question. a ajouté la déclaration INDIRECT .