Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188

    [Excel] - Calcolo valori dei range

    Buongiorno a tutti avrei bisogno di un aiuto.
    Devo impostare una formula e non so come. Mi servirebbe un consiglio, una dritta sull'approccio.

    In pratica:
    Sapendo che A, B, C,... sono tra i valori X1 ed X2 (X1<A<X2, ...) e che L, Q, G sono tra altrettanti due valori Y1 e Y2 (Y1<L<Y2, ...), mi servirebbe una formula che mi permetta di sapere se:
    1) Le nuove X1 e X2 di A, B, C in funzione alle Y1 e Y2 di L, Q e G;
    2) Mi calcola il nuovo range di A, B e C in questo modo:

    Sapendo che:

    Nome X1 X2
    A 5 6
    B 7 8
    C 10 15


    Calcolo:

    Tipo Y1 Y2 A new X1 A new X2 B new X1 B new X2 C new X1 C new X2
    L 2 5 5 5 NA NA NA NA
    Q 6 7 6 6 7 7 NA NA
    G 11 15 NA NA NA NA 11 15

    Cioè di X1 Vs Y1 il nuovo sarà il più grande mentre di X2 Vs Y2 il nuovo valore sarà il più piccolo.
    Avevo pensato a due tabelle, poi nella seconda facevo svolgere i calcoli un pò come da esempio sopra.

    Pensavo ad una matrice somma prodotto per il punto 1 ma per il punto 2 non so...
    Grazie.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, non sono esperto di excel ma anche ragionando per logica non riesco a capire quale sia la tua difficoltà. Forse non ho capito la tua richiesta. Non puoi semplicemente usare MAX() e MIN() per ottenere i valori che ti servono tra i vari X e Y?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ho ragionato un po' cercando di capire meglio il tuo esempio. In sostanza "NA" viene dato se i due intervalli (X1-X2 e Y1-Y2) non si intersecano. Altrimenti vale quanto hai indicato, in riferimento ai valori minimo e massimo da considerare. Giusto?

    In tal caso le due formule, per minimo e massimo, potrebbero essere così (scrivo in pseudo-codice usando i nomi dei parametri di riferimento che chiaramente dovrai convertire con i riferimenti alle tue celle):
    codice:
    =IF(OR(Y1>X2, Y2<X1), "NA", MAX(X1, Y1))
    codice:
    =IF(OR(Y1>X2, Y2<X1), "NA", MIN(X2, Y2))
    La prima parte è semplicemente la condizione che verifica se i due intervalli si intersecano o meno.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Grazie KillerWorm hai centrato il punto, il fatto è che deve essere tutto dinamico.
    Nel senso che le Y e X devono essere range di colonna ad esempio e non dei codici cella.
    Tipo:

    =IF(SUMPRODUCT(--($E$13=Table37[Nome]),--([@Tipo]=Table37[Tipo]))=1,IF(OR([@Y1]>Table37[X2], [@Y2]<Table37[X1]), "NA", MAX(Table37[X1], [Y2])),"No Nome")

    ovviamente quanto sopra non funziona era solo un esempio.

  5. #5
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    ciao scusami sono stato un pò contorto:
    io ho due tabelle:

    Tabella 1



    Nome Tipo X1 X2
    A L 2 5
    B L 1 5
    C L 2 4
    B Q 4 5
    C Q 7 8
    A Q 8 7
    B G 5 7
    C G 6 8
    A G 4 6


    Tabella 2


    NOME TIPO Y1 Y2 NEW X1 NEW X2
    A L 2 4 2 4
    B L 8 10 NA NA
    C L 1 5 ... ...
    A Q 5 6
    B Q 4 7
    C Q 1 3
    A G 2 3
    B G 5 4
    C G 4 7


    In pratica come vedi non posso utilizzare celle prestabilite, ma gliele devo far trovare.

    Una volta che Nome e Tipo di Tabella 1 metcha con quelli di Tabella 2 è necessario applicare la formula che dicevi te che però non può avere ovviamente celle prestabilite ma sono in funzione, le X alle righe di Tabella 1 e le Y a quelle di Tabella 2.

    Non so se è applicabile col solo Excel o devo utilizzare per foza VBA.
    Spero di essermi spiegato meglio. Nel frattempo cerco di buttar giù qualcosa. Grazi ancora del supporto killer

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    No problem.
    Non riesco comunque ad afferrare il punto.
    Quando parli di tabelle ti riferisci ad un database o sono sempre dei fogli excel?

    In pratica come vedi non posso utilizzare celle prestabilite
    Perché no?
    Ti riferisci al fatto che in Tabella1 i dati non sono inseriti in ordine (A,B,C,A,B,C,A,B,C)?

    In tal caso puoi usare delle funzioni di ricerca all'interno della formula stessa. Diventa un po' macchinoso ma dovrebbe essere possibile anche senza usare vba.

    Non ho afferrato bene quali siano i due punti che hai indicato sul primo post.
    Qual'è il criterio per cui stai applicando "somma prodotto"? Non riesco a cosa ti serve in questo caso, e come dovrebbe influire sulla risoluzione della formula.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Quando parli di tabelle ti riferisci ad un database o sono sempre dei fogli excel?
    A due database (tabella 1 e 2) se sono in uno stesso foglio o diversi non credo sia un problema basta tenerne conto per il riferimento.

    Perché no?
    Ti riferisci al fatto che in Tabella1 i dati non sono inseriti in ordine (A,B,C,A,B,C,A,B,C)?
    Esattamente, ma anche al fatto che hai il vincolo del Tipo L, Q e G. Come dicevo deve prima metchare Tipo e Nome di Tabella 1 e 2 per poi trovarti X1 e X2 new.

    In tal caso puoi usare delle funzioni di ricerca all'interno della formula stessa. Diventa un po' macchinoso ma dovrebbe essere possibile anche senza usare vba.
    che intendi una funzione trova se? Ma con due if (tipo e nome) si riesce a fare? Bo mo provo.

    Non ho afferrato bene quali siano i due punti che hai indicato sul primo post.
    Il primo punto era il trova ovvero match tabella 1 e tabella 2 il scondo punto era il calcolo di X1 e X2 nuovi che hai risolto te.

    Qual'è il criterio per cui stai applicando "somma prodotto"? Non riesco capire a cosa ti serve in questo caso, e come dovrebbe influire sulla risoluzione della formula.
    Era la prima idea che mi era venuta in mente, magari sbagliata. E' la funzione che utilizzo più frequantemente per calcoli dinamici su database diversi è molto semplice da utilizzare e quindi avevo pensato a quella prima di altre.

  8. #8
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    E' un casino col cerca.verticale a doppia condizione...

  9. #9
    Utente di HTML.it L'avatar di leomac
    Registrato dal
    Mar 2009
    Messaggi
    188
    Killerworm mi sa che ho fatto con matrice somma prodotto.

    il tuo codicie:
    codice:
    =IF(OR(Y1>X2, Y2<X1), "NA", MAX(X1, Y1))
    L'ho trasformato in:

    =IF(OR([@Y1]>(SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X2])), [@Y2]<(SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X1]))), "NA", MAX((SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X1])), [@Y1]))

    Il tuo codice:
    codice:
    =IF(OR(Y1>X2, Y2<X1), "NA", MIN(X2, Y2))
    l'ho trasformato in:

    =IF(OR([@Y1]>(SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X2])), [@Y2]<(SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X1]))), "NA", MIN((SUMPRODUCT(--([@Nome]=Table37[Nome]),--([@Tipo]=Table37[Tipo]),Table37[X2])), [@Y2]))

    E' un botto ma pare con funziona

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Bene. Hai risolto quindi?
    Le mie conoscenze excel sono limitate. Purtroppo non saprei esserti maggiormente d'aiuto, ma se hai risolto mi fa piacere.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.