Analyse chemin de navigation web

Jean John

XLDnaute Nouveau
Bonjour,

Je souhaite analyser un parcours de navigation sur un site internet de manière à savoir quelles sont les pages consultés juste avant et juste après une page donnée. Mon outil d'analytics me fournit toutes les données mais pas l'analyse permettant d'exploiter ces données. Je me permets donc de solliciter votre aide!

Chaque page est unique et appartient à une seule catégorie.
Chaque visite sur le site internet est numéroté avec un ID.
Pour chaque ID, je connais la position de chaque page au cours de la visite.

Exemple:
ID Pages Catégorie Position page
1 PageA Catégorie1 1
1 PageB Catégorie2 2
1 PageC Catégorie3 3
Pour la visite n°1, la première page consultée est la page A (position =1), puis la B(position =2), puis la C(position =3).

Je souhaite savoir automatiquement pour une page, sur l'ensemble de visites quelles sont les pages vues juste avant (=position-1) et juste après (=position+1). Cela permettra de dire: "Parmi ceux qui ont consultés la page X, a% viennent de la page Y et b% viennent de la page Z".

J'ai créé un fichier excel avec dans le 1er onglet les données et dans le 2ème l'analyse.
Mes connaissances en VBA sont plutôt faibles et je ne vois pas avec quelles formules excel je pourrai parvenir à ce résultat. Existe-t-il une solution?

Merci par avance,
 

Fichiers joints

thebenoit59

XLDnaute Accro
Re : Analyse chemin de navigation web

Bonjour Jean.

Je n'ai pas eu le temps de vraiment développer l'idée, mais pour t'orienter tu peux enregistrer les valeurs comme ci-dessous, dans un dictionnaire répertoriant le nombre de fois que la Page A amène à la Page B dans la même session. (L'inverse permet de connaître la page source).

Code:
Option Explicit
Option Base 1

Sub Analyse()
Dim i As Long
Dim ShDonn As Worksheet
Dim d As Object
Dim c As Variant
    Set d = CreateObject("Scripting.Dictionary")
    Set ShDonn = Sheets("Données")
    With ShDonn
    For i = 2 To 5000
    If .Cells(i, 1).Value = "" Then Exit For
    If .Cells(i + 1, 4).Value > .Cells(i, 4).Value Then
    d(.Cells(i, 2).Value & "|" & .Cells(i + 1, 2).Value) = d(.Cells(i, 2).Value & "|" & .Cells(i + 1, 2).Value) + 1
    End If
    If .Cells(i, 4).Value = 1 Then d(.Cells(i, 2).Value) = 1 + d(.Cells(i, 2).Value)
    Next i
    End With
End Sub
Voir comment utiliser ces informations pour ton analyse par la suite.

Le résultat donnera ça à peu près.
Code:
PageA|PageB : 4
PageA : 4
PageB|PageC : 2
PageD|PageA : 2
PageD : 1
PageA|PageA : 1
PageC|PageD : 2
PageC : 3
PageB|PageD : 1
PageB|PageA : 3
PageB : 2
PageC|PageB : 2
Quand apparaît seulement PageC par exemple, c'est le nombre de fois où c'était la première page de la session.
 

CPk

XLDnaute Impliqué
Re : Analyse chemin de navigation web

Bonjour, je ne suis pas sûr d'être bien dans les clous mais je post quand même.

en A3 et B3 de la feuille Analyse vous remplissez vos critères (page et catégorie) et le tableau à côté affiche les pages avant et après avec le % par page.

En esperant que cela correspond
 

Fichiers joints

ODVJ

XLDnaute Impliqué
Re : Analyse chemin de navigation web

Bonjour à tous,

Une idée avec un TCD.
Je suis parti du fichier de CPk et j'ai ajouté 2 colonnes de formules pour prédécesseur et successeur.
Ensuite, un TCD avec affichage % par rapport à la ligne.
J'ai fait le TCD prédécesseurs. A toi de faire celui pour les successeurs.

Cordialement
 

Fichiers joints

Jean John

XLDnaute Nouveau
Re : Analyse chemin de navigation web

Bonjour à tous,

Merci pour votre aide.
CPk, je n'arrive pas à comprendre pourquoi la formule PETITE.VALEUR va chercher par exemple la cellule A1 pour E2 qui contient du texte (A2 pour E3, etc...). Quelle est la logique?
 

CPk

XLDnaute Impliqué
Re : Analyse chemin de navigation web

Bonjour Jean John, benoit, odvj.

Jean John, en réalité c'est n'est pas la valeur de A1 que l'on se sert dans se cas de figure mais le numéro de ligne de A1. D'ailleurs si vous regardez bien, A1 est englobé dans la fonction ligne. --> Ligne(A1)

Si vous mettez dans une cellule =ligne(A1) vous allez avoir comme résultat 1
Si vous étirez avec la poignet de recopie vers le bas, vous allez avoir successivement 2,3,4,5 etc...

Et on utilise Ligne(A1) dans la fonction PETITE.VALEUR(matrice, k) pour défini l'index K.

Ligne(A1) = 1 donc PETITE.VALEUR(matrice, ligne(A1)) = la première petite valeur de la Matrice.
Quand on étire la formule d'une cellule vers le bas cela va donné : PETITE.VALEUR(matrice, ligne(A2)) donc la deuxième plus petite valeur de la matrice...

Le but de cette manipulation est de ne pas écrire 50 fois la formule Petite.valeur() et de changer manuellement l'index k à la main.
 
Dernière édition par un modérateur:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas