Je récupère des données de HubSpot vers Google Sheets via un connecteur tiers. J'ai un ensemble de données brutes sur la feuille 1, puis je tire certaines données de la feuille 1 vers d'autres feuilles avec la fonction QUERY.
Par exemple, sur la feuille 2, j'ai les dates et les valeurs des soumissions de formulaires sur notre site Web. Voici un exemple de sortie:
Date Value
9/15/2019 1
9/16/2019 2
9/18/2019 1
Comme vous pouvez le voir, le 17 septembre est manquant car aucun formulaire n'a été soumis ce jour-là. Cependant, j'aimerais inclure des jours sans aucune soumission à la feuille. Voici la sortie souhaitée:
Date Value
9/15/2019 1
9/16/2019 2
9/17/2019
9/18/2019 1
J'ai la fonction QUERY dans la feuille 2 A1 et elle doit y rester car les données brutes sur la feuille 1 sont automatiquement mises à jour quotidiennement. Si c'est possible, j'aimerais avoir la sortie souhaitée dans la colonne F de la feuille 2.
Quelqu'un peut-il m'aider avec celui-ci?
Éditer:
Vous pouvez voir ma QUERY actuelle sur la capture d'écran ci-dessus. Dans cette QUERY, la feuille de contacts est la feuille de données brutes. Les colonnes A: D sont le résultat de QUERY et les colonnes G: J sont le résultat que j'aimerais obtenir. Dans mon exmaple (colonnes G: J), j'ai mis en évidence deux lignes. Comme vous pouvez le voir dans les colonnes A: D, il existe désormais des données du 9/9/2019 et du 9/7/2019. Ajouter les dates manquantes comme celle-ci est ce que j'essaie de réaliser.
Il semble que vous recherchiez une solution à formule unique, mais ils pourraient être difficiles à comprendre et à maintenir, surtout si vous n'êtes pas familier avec le fonctionnement des fonctionnalités associées à Google Sheets.
Fonctionnalités associées
ROW(A:A)
et en appliquant un format de date (cliquez sur le menu Format> Nombre puis le format de date souhaité).,
Comme séparateur décimal, au lieu de l'utiliser comme séparateur de colonne, utilisez une barre oblique inverse \
.QUERY
. L'instruction SQL utilise la notation A, B, C pour le nom des colonnes lorsqu'une référence est utilisée comme premier argument, mais elle utilise la notation Col1
, Col2
, Col3
Pour noms de colonnes lorsqu'un tableau est utilisé comme premier argument.Alternative simple
Ajoutez une liste de dates aux données source de Sheet1. Exemple
=ArrayFormula({Sheet1!A:B;Sheet1!A2+ROW(A1:A30),IFERROR(ROW(A1:A30)/0,)})
Sur votre formule QUERY
, utilisez la plage résultante de la formule ci-dessus comme premier argument.
Si vous ne voulez vraiment ajouter que les dates manquantes, au lieu de la formule ci-dessus, utilisez:
=ArrayFormula(
FILTER(
{Sheet1!A2+ROW(A1:A30),IFERROR(ROW(A1:A30)/0,)},
ISNA(MATCH(Sheet1!A2+ROW(A1:A30),Sheet1!A:A,0))
)
)
Alternative "complexe"
Utilisez {Sheet1!A:B;Sheet1!A2+ROW(A1:A30),IFERROR(ROW(A1:A30)/0,))}
comme premier argument de QUERY, sur le deuxième argument (instruction SQL) changez les noms de colonnes de notation A, B, C en notation Col1, Col2, Col3. La formule résultante ressemblera à ceci:
=ArrayFormula(
QUERY(
{Sheet1!A1:B30;Sheet1!A2+ROW(A1:A30),IFERROR(ROW(A1:A30)/0,)},
"SELECT Col1,Col2"
)
)
ou
=ArrayFormula(
QUERY(
FILTER(
{Sheet1!A2+ROW(A1:A30),IFERROR(ROW(A1:A30)/0,)},
ISNA(MATCH(Sheet1!A2+ROW(A1:A30),Sheet1!A:A,0))
),
"SELECT Col1,Col2"
)
)
Remarques
Par souci de simplicité, Sheet!A2+ROW(A1:A30)
est utilisé pour ajouter 30 dates après la première date, si vous en avez besoin de plus, utilisez une référence plus élevée.
Si sur votre instruction SQL vous utilisez la clause GROUP BY
, Utilisez la première formule comme premier argument QUERY
.
Au lieu de A1:A30
, Nous pourrions utiliser A:A
Mais nous utilisons également le moyen de limiter la taille de cette référence. Une alternative consiste à utiliser ARRAY_CONSTRAIN
.
En relation