Je rencontre un problème en combinant SUMIFS
avec ImportRange
dans Google Sheets. J'ai trouvé des réponses suggérant de l'imbriquer avec QUERY
. Cependant, le problème est que l'un de mes critères n'est pas numérique.
Formule dans la feuille de calcul 2:
=query(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u"),
"select sum (Col13) where (Col13='<>'
and Col14 >= date'"&TEXT(today()-30, "yyyy-mm-dd")&"') label sum (Col13) ''")`
ImportRange
Je reçois un message d'erreur:
#VALUE!
Impossible d'analyser la chaîne de requête pour la fonction QUERY paramètre 2: AVG_SUM_ONLY_NUMERIC
FYI
Les valeurs de la colonne M sont
Les valeurs de la colonne N sont
De toutes les réponses que j'ai trouvées en ligne, QUERY
n'aime pas les données non numériques/les données mixtes. Certaines solutions suggéraient d'utiliser ArrayFormula
ou FILTER
- mais celles-ci utilisaient des données dans la même feuille de calcul (pas ImportRange
.
D'autres solutions utilisaient IF(ISNUMBER))
imbriquée avec ma formule. J'ai également essayé de changer le format de colonne en "texte brut", ce qui n'a pas fonctionné.
Quelques formules que j'ai essayées:
=query(isnumber(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u")),
"select Sum (Col13) where (Col13)='<>'
and (Col14)>=date'"&TEXT(today()-30,"yyyy-mm-dd")&"' label sum (Col13) ''")`
Erreur de valeur: impossible d'analyser la chaîne de requête pour le paramètre Function QUERY 2: NO_COLUMN: Col13
=query(ImportRange("https://docs.google.com/spreadsheets/d/1p_F-1tyYhlHfjjE2151T52FvcwGrtKUvB12WSJR0WRT",
"inquiries.app date.bonus!a4:u"),
"select,sum (Col13) where (Col13)='<>'
and Col14= date'"&TEXT(today()-30, "yyyy-mm-dd")&"' label sum (Col13) ''")`
Erreur de valeur: impossible d'analyser la chaîne de requête pour le paramètre Fonction QUERY 2: PARSE_ERROR: rencontré "", "", "" à la ligne 1, colonne 7. Attendait l'un de: "true" ... "false" ... " date "..." timeofday "..." datetime "..." timestamp "..." min "..." max "..." avg "..." count "..." sum " ... "no_values" ... "no_format" ... "est" ... "null" ... "year" ... "month" ... "day" ... "hour" .. . "minute" ... "seconde" ... "milliseconde" ... "avec" ... "contient" ... "commence" ... "se termine" ... "correspond à" ... " comme "..." maintenant "..." dateDiff "..." trimestre "..." inférieur "..." supérieur "..." dayOfWeek "..." toDate "... ... ... ... ... ... "(" ... "*" ... "-" ...
Existe-t-il un moyen de faire fonctionner ma formule sans ajouter une nouvelle colonne à mes données source? Je me demande si je peux utiliser ISNUMBER
ou ArrayFormula
?
Voici quelques exemples de feuilles: Feuille 2 (contient la formule)Feuille 1 (données source)
Pour résumer, mon problème est QUERY
ne pas additionner les nombres dans le Col M (Col13). Dans QUERY
j'ai essayé d'utiliser:
<>
Et <>""
(N'est pas vide)Col13 is not null
Col13>0
=ARRAYFORMULA(SUM(IFERROR(QUERY(IFERROR(IMPORTRANGE(
"1HrEGCH-MCfeGh952VkpONRfSoLbZVLir5BNgFWK0PH8", "inquiries.app date.bonus!A5:O")*1),
"select Col13
where Col13 is not null
and Col14 >="&DATEVALUE(TODAY()-30), 0))))
Le problème est que Column M
Et Column N
De la feuille de calcul source incluent du texte et des nombres/dates. Les cellules vides ne causent pas de problèmes.
Dans les deux colonnes, vous devez supprimer les valeurs de texte avant de transmettre les valeurs importées à QUERY
.
Bien qu'il puisse être apparemment "élégant" d'avoir une seule formule qui fait tout le travail, cela rend la feuille de calcul plus difficile à comprendre, à dépanner et à maintenir, donc au moins en attendant que vous compreniez comment chaque tâche doit être effectuée, évitez d'utiliser l'approche "formule tout-en-un".
=IMPORTRANGE(...)
). L'étape suivante suppose que cette formule a été ajoutée à une feuille nommée Sheet1
.=ARRAYFORMULA({IF(ISNUMBER(Sheet1!M:M),Sheet1!M:M,),IF(ISNUMBER(Sheet1!N:N),Sheet1!N:N,)})
. Disons que cette formule est ajoutée à une feuille nommée Sheet2
.QUERY
mais au lieu de Col13
, Et Col14
, Utilisez respectivement A
et B
.