2017-09-18 2 views
1

J'essaie de créer une formule qui recherche une feuille distincte et renvoie la cellule correcte avec une chaîne de texte. Le critère (si filtrage de la feuille) contient une plage de dates, <=DATE(YEAR(U$1),MONTH(U$1)+1,DAY(U$1))-31 essentiellement tout ce qui date de plus de 30 jours à compter de la fin du mois, où la date est définie par l'utilisateur dans la cellule U $ 1 et correspond à une chaîne de texte. J'ai essayé plusieurs itérations d'INDEX MATCH, en utilisant MATCH dans un tableau mais continue à obtenir l'erreur # N/A. La logique est de retourner le contenu de la cellule appropriée dans la colonne G, si la date est antérieure à 30 jours avant la fin du mois (date dans la colonne F), trier par le plus ancien au plus récent et la colonne P doit contenir la chaîne texte « fichier non validée »Formule pour renvoyer le champ de texte en fonction de plusieurs critères et plage de dates

=COUNTIFS(Summary!P:P,"file not validated",Summary!F:F,"<="&DATE(YEAR(U$1),MONTH(U$1)+1,DAY(U$1))-31) 

Cette formule renvoie le nombre correct d'entrées qui correspondent aux critères, mais je ne peux pas insérer correspondance d'index pour afficher l'entrée la plus ancienne

+0

Utilisez 'DATE (ANNÉE (U $ 1), MOIS (U $ 1) +1, 0)' ou 'EOMONTH (U $ 1, 0)' pour obtenir la fin du mois. – Jeeped

+0

S'il vous plaît expliquer * 'où la date est définie par l'utilisateur dans la cellule U $ 1 et correspondant à une chaîne de texte' *. Je ne peux pas comprendre cela. – Jeeped

+0

la date est définie par exemple «01/09/2017», qui devient «Sep-17» et est déplacée le long de la ligne du haut pour me permettre de signaler le mois en cours. La chaîne de texte à laquelle je faisais référence est 'fichier non validé'. Merci pour toute l'aide, je vais essayer votre suggestion et revenir! – johnnywin

Répondre

0

Utilisez INDEX/AGGREGATE comme une formule standard; AGGREGATE fournit le traitement de tableau sans CSE de la même manière que le fait SUMPRODUCT. Évitez les références de colonnes complètes pour cette raison.

=iferror(index('Summary'!G:G, 
    aggregate(15, 6, row(Summary!P$1:index(Summary!P:P, match("zzz", Summary!P:P)))/ 
((Summary!P$1:index(Summary!P:P, match("zzz", Summary!P:P))="file not validated")* 
    (Summary!f$1:index(Summary!f:f, match("zzz", Summary!P:P))<=DATE(YEAR(U$1),MONTH(U$1)+1,DAY(U$1))-31))), 1)), "") 

Vous avez déclaré dans votre récit que votre fin de mois fonctionnait correctement, mais que cela ne semble pas le cas. J'ai offert quelques meilleures formules pour le calcul de la fin du mois dans les commentaires. Vous pourriez vouloir regarder dans cela.