What I suggest is :
- Build a new tab called "Tables" in which we will find the valid terms depending to the choices made in tab "Navigation". Theses choices are determined by a formula at each step as for instance :
=sort(unique(query(Data!A:G,"select G where A='" & Navigation!A2 & "' AND B='" & Navigation!B2 & "' AND C='" & Navigation!C2 & "' AND D='" & Navigation!D2 & "' AND E='" & Navigation!E2 & "' AND F='" & Navigation!F2 & "' ",0)))
- Build a new tab called "Navigation" in which you can find data validation in cells row#2
- If a change of one choice has been done, I erase all the choices made on the right by this script
function onEdit(event){
var feuille = event.source.getActiveSheet();
var cellule = event.source.getActiveRange();
if (feuille.getName()=='Navigation' && cellule.getRow()==2){
feuille.getRange(2,cellule.getColumn()+1,1,7).clearContent()
}
}
in A6 of "Navigation"
=IFERROR(sort(unique(query(Data!A:H,"select H where A='" & Navigation!A2 & "' AND B='" & Navigation!B2 & "' AND C='" & Navigation!C2 & "' AND D='" & Navigation!D2 & "' AND E='" & Navigation!E2 & "' AND F='" & Navigation!F2 & "' AND G='" & Navigation!G2 & "' ",0))))
Hope that is clear and fit to your request. Feel free to give me your feedback.