Condividi tramite

Trova il valore minimo in una serie di dati sulla riga di una variabile nota

Anonimo
2020-05-26T12:10:00+00:00

Buongiorno, 

avrei bisogno di automatizzare una ricerca su diverse schede di un foglio ma non trovo la formulazione corretta.

la prima colonna del foglio indica i nomi delle variabili. le colonne successive i valori della variabile.

Ho bisogno di una formula che identifichi la variabile "pO2 A" nella colonna A e trovi su quella riga il valore minimo. (se "paO2 A" trova valore MIN sulla riga corrispondente). 

i valori di pO2 A sono espressi con l'unità di misura e range fisiologico (es: "103.7 mmHg [80 120]") dunque avrei bisogno anche di una formula che escluda gli ultimi 13 caratteri delle celle (solo il valore "103.7". Le funzioni SINISTRA DESTRA o STRINGA.ESTRAI non sono adatte perchè i caratteri da estrarre sono variabili da 2 a 4 mentre la stringa di testo è sempre uguale.

Non credo sia una formula difficile ma le mia abilità sono scarsissime. 

Ringrazio anticipatamente chiunque vorrà aiutarmi.

Martino

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-05-27T12:21:00+00:00

Ciao Martino,

Buongiorno Norman, 

sei molto gentile. Purtroppo però il codice che mi hai scritto non va e non riesco a risalire all'errore. Nemmeno del foglio di prova che hai inoltrato va e dunque non posso fare una sorta di "copia / incolla".

Se riesci a risolvermi questo problema te ne sono infinitamente grato.

Ciao 

Martino 

A me, il file di prova funziona senza alcun problema e risponde all'inserimento della formula nell'intervallo C5:C7 - vedi l'immagine nella mia precedente risposta.

Sei sicuro di aver abilitato le macro ?

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-05-27T12:12:04+00:00

    Buongiorno Norman, 

    sei molto gentile. Purtroppo però il codice che mi hai scritto non va e non riesco a risalire all'errore. Nemmeno del foglio di prova che hai inoltrato va e dunque non posso fare una sorta di "copia / incolla".

    Se riesci a risolvermi questo problema te ne sono infinitamente grato.

    Ciao 

    Martino

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-05-27T10:06:00+00:00

    Ciao Martino,

    Grazie mille per la risposta rapida!

    purtroppo però non ho risolto il mio problema. Probabilmente non  mi sono spiegato bene: ho fatto sul tuo foglio un esempio della disposizione dei miei dati. 

    Ecco lo screenshot.  

    Grazie Norman!

    Potresti sfruttare una UDF (funzione utente) che può essere utilizzata come una funzione nativa di Excel. 

    Quindi prova:

    • Alt+F11 per aprire l'editor di VBA
    • Alt+IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

     '=========>>

    Option Explicit

    '--------->>

    Public Function myMin(pVal As String, Optional pCol As String = "A")

        Dim Rng As Range

        Dim dVal As Double, dTemp As Double

        Dim i As Long, iRow As Long

        Application.Volatile

        iRow = Application.Match(pVal, Columns(pCol), 0)

        Set Rng = Intersect(ActiveSheet.UsedRange, Rows(iRow))

        dVal = Val(Rng.Cells(2).Value)

        For i = 2 To Rng.Cells.Count

            If Not IsEmpty(Rng.Cells(i).Value) Then

                dTemp = CDbl(Val(Rng.Cells(i)))

                If dTemp < dVal Then

                    dVal = dTemp

                End If

            End If

        Next i

        myMin = dVal

    End Function

    '<<========= 

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel
    • Salva il file con l’estensione xlsm

    Con riferimento alla seguente immagine,  la funzione myMin va utilizzata così:   =myMin(C5)

    Potresti scaricare il mio file di prova Martino20200527.xlsm

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2020-05-26T21:33:03+00:00

    Grazie mille per la risposta rapida!

    purtroppo però non ho risolto il mio problema. Probabilmente non  mi sono spiegato bene: ho fatto sul tuo foglio un esempio della disposizione dei miei dati. 

    Ecco lo screenshot.  

    Grazie Norman!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2020-05-26T12:52:43+00:00

    Ciao Martino,

    avrei bisogno di automatizzare una ricerca su diverse schede di un foglio ma non trovo la formulazione corretta.

    la prima colonna del foglio indica i nomi delle variabili. le colonne successive i valori della variabile.

    Ho bisogno di una formula che identifichi la variabile "pO2 A" nella colonna A e trovi su quella riga il valore minimo. (se "paO2 A" trova valore MIN sulla riga corrispondente). 

    i valori di pO2 A sono espressi con l'unità di misura e range fisiologico (es: "103.7 mmHg [80 120]") dunque avrei bisogno anche di una formula che escluda gli ultimi 13 caratteri delle celle (solo il valore "103.7". Le funzioni SINISTRA DESTRA o STRINGA.ESTRAI non sono adatte perchè i caratteri da estrarre sono variabili da 2 a 4 mentre la stringa di testo è sempre uguale.

    Non credo sia una formula difficile ma le mia abilità sono scarsissime. 

    Con riferimento alla seguente immagine e il mio file di prova, prova una fiormula del genere:

               =MIN(SCARTO(A1;CONFRONTA(C5 &"*";A1:A20;0)-1;0;1;50))

    Potresti scaricare il mio file di prova Martino20200526.xlsx

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento