come calcolare con excel se in 31 giorni vi sono in continuo le sigle "cso" e "asp" superiore o uguale a 10 giorni continuativi senza interruzioni.

Anonimo
2010-07-09T09:16:47+00:00

Salve, ho un grande problema per creare una formula particolare in un calendario dall'uno al 31 o a cavallo tra due mesi se ho inserito le sigle cso e asp di continuo nei giorni del mese o dei mesi per 10 giorni o superiori ai 10 giorni di continuo del calendario indipendentemente che sia cso o asp, dandomi in una cella a parte il risultato di (uno). Se pero' vi è una interruzione anche di un solo giorno non mi si deve calcolare . Qualcuno sa aiutarmi con urgenza? grazie anticipatamente. Saluti da Marco

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

14 risposte

Ordina per: Più utili
  1. Anonimo
    2010-07-17T05:41:10+00:00

    Scusa, ma non so proprio usare le macro. ci provo ma non ci riesco. Saprei usare meglio le formule e giostrarle a modo mio tipo quello di Antonio sono riuscito a inserirla senza proplemi. Unica cosa e riuscire a farla cascare in caso si accavalli tra due mesi in due fogli diversi.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-07-16T19:37:56+00:00

    Visto la mancanza di risposta immagino che non sia stato chiaro e allora semplico ancora.

    in un foglio ho creato i giorni del mese dall'uno al trentuno nella riga da E8 fino a AI8.

    in questi giorni giorni in base al turno devo inserire anche ASP oppure CSO.

    mi serve un riferimento in una cella qualsiasi un segno o numero che mi dica se vi è stato inserito di continuo per 10 giorni o superiore la sigla ASP e CSO indipendemente che sia una o l'altra o ambidue, purchè continuativo senza interruzioni. GRazie

    Questa UDF fa quanto chiedi:

    Public Function f(ByVal vSelection As Variant) As Long

        Dim c As Range

        Dim rng As Range

        Dim lCont As Long

        f = 0

        lCont = 0

        For Each c In vSelection

            If UCase(c.Value) = "ASP" Or UCase(c.Value) = "CSO" Then

                lCont = lCont + 1

            Else

                If lCont >= 10 Then

                    Exit For

                Else

                    lCont = 0

                End If

            End If

        Next

        If lCont >= 10 Then

            f = 1

        End If

    End Function

    Va copia/incollata in un modulo standard e poi richiamata in una cella così: =f(Range) , dove Range va sostituito con il riferimento che vuoi controllare(esempio:E9:AI9). Qui funziona, se hai problemi chiedi sempre in questo thread. Grazie per l'attenzione.


    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-07-16T19:37:47+00:00

    Dimenticavo nella tua formula ho corretto OSD con CSO perchè era CSO e non OSD. Grazie ancora intanto. sono in debito. In attesa di eventuale risposta a cavallo dei due mesi.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-07-16T19:34:06+00:00

    Perfetto e provato anche è Funziona! ^_^ Unica cosa che chiedo e se possibile farlo il seguente: avendo un foglio nominato Gen (che uso per inserimento del mese di Gennaio) poi un'altro foglio Feb e un'altro mar e così via fino a dicembre. Come posso far calcolare se le 10 condizioni cascano a cavallo tra due mesi senza interruzioni esempio dal (25/7/2010 fino al 05/08/2010) dovrebbe darmi il segnale di 10 sul mese di agosto. Se pero' cade solo nel singolo mese va benissimo la tua formula. SI PUO' FARE?

    Ciao da Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2010-07-16T15:37:55+00:00

    Allora metti questa di formula:

    =SE(E(O(E8="ASP";E8="OSD");O(F8="ASP";F8="OSD");O(G8="ASP";G8="OSD");O(H8="ASP";H8="OSD");O(I8="ASP";I8="OSD");O(J8="ASP";J8="OSD");O(K8="ASP";K8="OSD");O(L8="ASP";L8="OSD");O(M8="ASP";M8="OSD");O(N8="ASP";N8="OSD"));10;"")

    considera min 10, quindi se sono si più dovrebbe contare poco.

    Ciao

    Antonio

    La risposta è stata utile?

    0 commenti Nessun commento