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,
 

Pièces jointes

  • Chemin_navigation.xlsx
    11.2 KB · Affichages: 33
  • Chemin_navigation.xlsx
    11.2 KB · Affichages: 28

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
 

Pièces jointes

  • Chemin_navigation.xlsx
    15.9 KB · Affichages: 25
  • Chemin_navigation.xlsx
    15.9 KB · Affichages: 27

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
 

Pièces jointes

  • xld_Chemin_navigation.xlsx
    23.1 KB · Affichages: 22

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 modification par un modérateur:

Discussions similaires

Réponses
8
Affichages
857

Statistiques des forums

Discussions
314 630
Messages
2 111 365
Membres
111 114
dernier inscrit
ADA1327