Rapatriement de données via 2 fichiers différents

Bonjour à toutes et à tous !

Je suis nouveau ici et également débutant sur excel .... Je viens donc solliciter votre aide

Pour faire simple, je dispose d'un fichier excel issu d'un automate qui fait des acquisitions en lignes de différents paramètres (temps, agitation, pH, etc) lors de mes essais. Je dispose d'un second fichier excel qui provient également d'un analyseur gaz qui fait des acquisitions en lignes de différentes paramètres (temps, % O2 et %CO2).

Dans le fichier excel en pièce jointe, vous trouverez Colonne A (temps relevé par l'automate), Colonne B (%O2) et Colonne C (%CO2). En Colonne G (temps relevé par l'analyseur gaz), Colonne H (%O2) et Colonne I (%CO2).

Je cherche à mettre les valeurs %O2 et %CO2 des Colonnes H et I dans les Colonnes B et C pour des valeurs de temps identiques (ou très très proche) via les Colonnes A et G.

Les temps des 2 appareils d'acquisitions sont différents et il n'est pas possible d'avoir la même fréquence d'analyse pour les 2 ....

J'espère avoir été assez précis et une nouvelle fois, je suis débutant ... Et encore merci pour votre aide !

Natus

Salut,

pour faire une formule, il faudrait qu'on sache ce que tu appelles "très très proche". En 1000ème, 10.000ème, ... ?

Et si on trouve en colonne G plus d'une valeur très proche de celle de la colonne A, il faudra bien en choisir une, on garde la 1ère ?

Salut !

Au 100ème ce sera déjà bien.

Concernant le choix de la valeur, on peut garder la 1ère oui.

Merci pour ton aide

Alors il me semble que ceci fait le job, on peut bien sûr remplacer le message d'erreur (quand aucune valeur à maximum 1/100 n'est trouvée) par du vide ;

=INDEX(H$3:H$589;PETITE.VALEUR(SI(($G$3:$G$589<=($A3+$E$2))*($G$3:$G$589>=($A3-$E$2))>0;LIGNE(H$3:H$589)-2);1))

Matricielle pour B3.

excel test analyseur gaz par natus b

J'ai incrémenté jusqu'à la ligne 615 mais tu peux aller jusqu'en bas.

En changeant le delta en E2, les colonnes B et C se mettent à jour.

Trop bien, ça marche niquel !

Du coup, je suis intéressé pour remplacer le message d'erreur par du vide lorsqu'aucune valeur est trouvée.

Tu pourrais m'expliquer comment marcher la fonction index et pourquoi on résonne en matricielle stp ?

Merci en tout cas !

De rien

Pour le vide, il suffit de rajouter un SIERREUR ;

=SIERREUR(INDEX(H$3:H$589;PETITE.VALEUR(SI(($G$3:$G$589<=($A3+$E$2))*($G$3:$G$589>=($A3-$E$2))>0;LIGNE(H$3:H$589)-2);1));"")

L'index désigne la plage où on va chercher l'info à afficher, la suite est une imbrication de fonctions qui au final servent la fonction Index.

C'est une matricielle parce qu'au lieu de créer une formule ligne par ligne, on va travailler sur un ensemble de lignes, ça renvoie donc une matrice dans laquelle on va chercher l'info qui nous intéresse avec PETITE.VALEUR.

Un truc très pratique et utile pour voir le fonctionnement d'une formule, surtout une matricielle, est d'aller dans l'onglet Formules, évaluer la formule et à chaque clic sur évaluer, on voit la progression du calcul.

Si tu veux tu peux signaler le sujet comme résolu en cliquant sur la petite flèche vers le haut en bas à droite de mon message précédent.

Au top merci beaucoup

bonjour Natus, Doux Rêveur,

on peut aussi interpoler avec

=PREVISION.LINEAIRE([@[Age (h)]];DECALER(Tabel1[[#En-têtes];[O2 (%)]];[@[petit.valeur]];;2;);DECALER(Tabel1[[#En-têtes];[Age (h)]];[@[petit.valeur]];;2;))
Rechercher des sujets similaires à "rapatriement donnees via fichiers differents"