Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmi e Utility (https://www.hwupgrade.it/forum/forumdisplay.php?f=37)
-   -   Excel: problematiche e soluzioni (https://www.hwupgrade.it/forum/showthread.php?t=2102242)


Bandit 17-02-2020 19:43

Quote:

Originariamente inviato da sbaffo (Messaggio 46627695)
occhio che se fai copia-incolla da un file in un modo ad uno in un altro excel lo può interpretare nel modo sbagliato e ti incasina tutti i dati. Bisogna stare attenti con le impostazioni internazionali. Se te ne accorgi tardi sei f...to.

Tempo fa mi capitava regolarmente di importare dati da tabelle numeriche in formato testo con punteggiatura diversa e poi dovevo ricorreggere tutto a mano, se prima non avevo cambiato le impostazioni internazionali.

:D :D

grazie mille del consiglio, ma per me era normale .

ciao ciao :)

sbaffo 18-02-2020 10:37

Quote:

Originariamente inviato da Bandit (Messaggio 46626910)
certo che è enorme come cosa :eek: sto cercando di capire cosa significa ogni cosa.

Per curiosità mi ci sono messo anche io a cercare di capire, ma mi sono arenato subito sulla formula INDIRETTO, pur leggendo la spiegazione di excel come al solito inutile...

Comunque la formula sarà anche perfetta ed elegante, sulla fiducia, ma se bisognava usare altre due colonne allora anche il mio metodo "raffazzonato" molto più semplice andava bene:
-colonna A i tuoi dati
-colonna B: metti un riferimento fisso per ogni numero positivo e uno per ogni negativo, del tipo SE(A1>0;1;-1) e trascini giù.
-colonna C: formula per cui se il valore di due celle consecutive di colonna 2 cambia (cioè si passa da positivo a negativo o viceversa) mette un valore, se resta uguale mette zero: SE(B1=B2;0;1) e trascini giù.
-a questo punto in colonna C avrai solo degli 1 in corrispondenza delle variazioni (e degli zero nelle altre celle), fai la somma di tutta la colonna e hai il numero totale di variazioni, sapendo il numero di righe dei tuoi dati con una semplice divisione ottieni la frequenza media: tue righe/variazioni=frequenza variazioni.

Variante un po' più elegante:
-al posto della somma di colonna C usi la formula CONTA.SE(C*:C*;">0") cioè ti conta le celle maggiori di zero, che se avevi usato il valore 1 ti da lo stesso risultato. (al posto di * metti la prima e ultima riga altrimenti ti prende tutta la colonna compreso il titolo, e se usi il "<>0" (diverso da 0) ti conta anche tutte quelle vuote fino in fondo al foglio!)

Per il -2% puoi fare un'altra colonna simile alla B con la %, lascio a te la formula :D, poi usi il conta.se(*;*;"-0,02") .

Raffaele53 18-02-2020 14:02

>>>poi dovevo ricorreggere tutto a mano
Penso che bastava mettere in colonna B2 =SOSTITUISCI(A2;".";",")*1 e trascinare giù
Poi copiare colonna B in A (incolla speciale\valori), mà forse le impostazioni rimettevano tutto come era....
Quali differenze trovi tra (gratuito) "libre office" ed EXCEL ???

>>>ma se bisognava usare altre due colonne... una sola con una cella per la media
>>>INDIRETTO (significa che visualizza una cella predefinita) Ex NON per la cella xy, mà dove lo indirizzo. Ex scrivi in G1=Ciao ed in A1 metti =INDIRETTO("G"&1). Il vero "quesito" di questa formula invece è il >>>CERCA(2;1/...ecc ecc <<< molto difficile da capire se non sei d'entro pienamente in Excel

sbaffo 18-02-2020 20:03

@ raffaele53

no, il “sostituisci” non serve semplicemente perché è già tardi: i numeri dopo la virgola diventano decimali (o viceversa) e spariscono: se scrivo 2,000 (duemila) e viene convertito in 2 netto non ci posso fare più niente. Inoltre non so se quella formula funziona anche nei campi numerici. Se anche funzionasse dovresti sostituire contemporaneamente i punti con le virgole e viceversa, altrimenti potresti avere un numero con due virgole=nonsense. La vera soluzione era cambiare le impostazioni internazionali prima di importare i dati, e dopo ricambiarle indietro.

non ti so dire le differenze con libreoffice, a parte l’interfaccia old stile (non ribbon) che preferisco, perché di fatto non uso più da anni excel e quasi nulla calc (libre). Comunque odiavo la ribbon quindi a pelle preferisco libre.

In realtà ho appena reinstallato Ms Office perché mi serviva powerpoint: quello di libre non mi faceva modificare i grafici come volevo, ma poiché i grafici sono comuni ad excel suppongo che questa sia una differenza anche in excel.


il resto del tuo post ho capito poco, ma fa niente, va bene così :D

86alessio86 28-02-2020 11:08

creare coppie
 
Buongiorno a tutti,vi chiedo se qualcuno è a conoscenza se con excel è possibile creare delle coppie,ora vi spiego meglio.

Ho una tabella con due colonne in cui ho in entrambe le colonne dei nomi,e vorrei che una colonna mi restasse "fissa",mentre nell'altra cambiassero i nomi.esempio

Alessio|Maria
Luca |Giuseppe
Mario | Lucia
------------------
Alessio | Lucia
Luca | Maria
Mario | Giuseppe

Spero di essermi spiegato.
Vi ringrazio

Nicodemo Timoteo Taddeo 28-02-2020 11:17

Ehmmmm... probabilmente non capisco, ma cosa ti impedisce di cambiare i nomi nella seconda colonna?

86alessio86 28-02-2020 13:20

La tabella la ho compilata ma vorrei sapere se c'è possibilità di fare ciò con qualche funzione/formula.

Nicodemo Timoteo Taddeo 28-02-2020 14:45

Io continuo a non capire, perché piuttosto di chiedere una funzione/formula per una cosa che non sappiamo, non spieghi esattamente la situazione?

Cosa ti serve fare con Excel? Da dove vuoi partire e dove vuoi arrivare? Quei nome dove li hai presi? Cosa rappresentano? Un lista di cosa? Perché vuoi cambiarne posto e in quale momento bisogna cambiarne il posto? Su che basi si deve cambiarne posto? In maniera cusuale o c'è una logica di riordinamento dietro? Insomma spiega meglio :)

Così forse si può trovare quello che cerchi.

86alessio86 01-03-2020 14:49

Vorrei creare un tabella scambi...
I nomi che messo sono casuali ed il mio intento era creare una tabella per creare de uno scontro uno ovviamente mettendo in una colonna i nomi e nella secondo i gli stessi nomi che si scontrano con X persona

sbaffo 01-03-2020 19:20

Quote:

Originariamente inviato da 86alessio86 (Messaggio 46642595)
Ho una tabella con due colonne in cui ho in entrambe le colonne dei nomi,e vorrei che una colonna mi restasse "fissa",mentre nell'altra cambiassero i nomi.esempio

Quote:

Originariamente inviato da 86alessio86 (Messaggio 46645514)
Vorrei creare un tabella scambi...
I nomi che messo sono casuali ed il mio intento era creare una tabella per creare de uno scontro uno ovviamente mettendo in una colonna i nomi e nella secondo i gli stessi nomi che si scontrano con X persona

Allora i nomi sono gli stessi nelle due colonne, nel primo esempio erano diversi!
Se capisco bene il tuo secondo messaggio, nonostante gli errori di battitura, gli incontri dovrebbero essere casuali? se così credo sia impossibile fare una formula casuale.

L’unica idea che ho è di metterli in ordine alfabetico nelle prima colonna e alfabetico inverso nella seconda, per quello ci sono i pulsanti nel ribbon.
Oppure lasci lo stesso ordine in entrambe (qualunque, anche in disordine, purché siano uguali) e fai “scivolare” giù di una riga la seconda colonna (e riporti a mano l’ultimo nome in prima posizione). Così puoi ripeterlo tante volte fino a che non hai finito il girone e tutti hanno incontrato tutti.

Raffaele53 02-03-2020 01:56

1 Allegato(i)
Se fosse un campionato sarebbe meglio il VBA

Nella formula, se fossero 100 nomi, il 7 va cambiato in 101 ed i due 6 in 100
Naturalmente trascinando sino colonna CV100

86alessio86 02-03-2020 18:26

Vi ringrazio ad entrambi,mi scuso per l'errori,ma rispondendo tramite telefono non mi ero accorto del pasticcio.Vba non conosco,mentre con excel un pochetto mi arrangio,ecco perché ho chiesto formula in excel.Grazie per l'allegato! Tutto era per non usare carta e penna.:-)

86alessio86 03-03-2020 11:04

Altra curiosità,posso escludere delle coppie che già ho fatto?
Se parto da 0 ogni coppia è valida,ma se Alessio e Lucia si sono già scontrati posso escludere l'accoppiamento?
Semplice curiosità,grazie per il file Excel:-)

sbaffo 04-03-2020 23:24

col mio metodo di “scivolamento” basta che metti in cima alla lista le coppie da escludere e parti dal secondo “turno”, se hanno fatto solo una partita a testa. Chiaramente il trucco funziona se sono pochi i già scontrati, e hanno già fatto pochissimi incontri ciascuno, altrimenti diventa un casino “combinare” opportunamente le prime righe.
Per curiosità da quanti nomi è formato il girone?

la megaformula di Raffa53 non l’ho esaminata bene, troppo difficile, ma mi sembra che replichi il mio metodo, perciò nell’attesa che risponda puoi provare lo stesso trucco anche lì.

86alessio86 05-03-2020 13:47

ti ringrazio era come pensavo di "isolare" le persone,
circa 30...Ma non è un problema al massimo con 3 tabelle da 10 è risolvibile credo.
Pardon,ho provato ad aggiungere una riga come se fosse un titolo ,mi viene "conteggiata" nella tabella.Vorrei che il titolo non fosse tra i partecipanti:-)Ho provato a cambiare valore di riferimento ma non so riuscito.Il titolo è piazzato in cella a1.

Raffaele53 05-03-2020 14:55

Il quesito con tre colonne + intestazione è cambiato. Allega un esempio
Comunque nel foglio VBA Ti bastava eliminare le celle "già fatte" (mettevi i 30 nomi e premevi il bottone)

Ps. Se creo una formula (senza sapere le partite già effettuate), naturale che siano comprese tutte le partite

86alessio86 05-03-2020 15:32

1 Allegato(i)
Ti allego il file,cosi vedi il riferimento che volevo escludere.:)

Raffaele53 05-03-2020 23:47

1 Allegato(i)
La formula era ...(ci dovevo pensare meglio) adesso più corta
Mi aspettavo tre colonne con 10 nomi per farTi scartare le partite giocate

Ps. Se intendevi dire "che aggiungendo" una riga sopra escludevi alcune partite. Sbagli di grosso

86alessio86 15-03-2020 10:21

Scusa per il ritardo,ti ringrazio del file!Gentilissimo

fracarro 24-07-2020 14:24

Ciao a tutti,

ho un problema con una macro Excel che ho scritto scopiazzando su internet (non sono un esperto di vba). La macro serve per copiare il contenuto della clipboard nel foglio excel (a partire dalla cella selezionata) dividendo tale contentuo per colonne utilizzando Tab e Spazi come separatori.
La macro ha sempre funzionato bene ma da quando ho preso un nuovo mac, alla prima invocazione della macro compare la finestra di errore: "Errore di runtime 445. Azione non valida per l'oggetto".

Chiusa la finestra di errore, la macro funziona correttamente fino a quando non chiudo excel.

Qualcuno di voi ha idea del perchè la prima invocazione della macro genera quell'errore? Ho un mac con Catalina e uso office 2019. La macro è stata copiata nel modulo Personal.xlbx.

Vi riporto di seguito il codice della macro.

Codice:

Sub incollaPerTABeSPAZI()
'
' incollaPerTABeSPAZI Macro
' incolla il testo formattato in base ai TAB e agli spazi
'
' Scelta rapida da tastiera: Opzione+Cmd+v
'
    Dim objData As New MSForms.DataObject
    Dim strText As String
    Dim text_string As String
    Dim stringaRipulita As String
    Dim WrdMatrix As Variant
    Dim myCell As Range

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    objData.GetFromClipboard
    strText = objData.GetText()

    stringaRipulita = CleanString(strText)

    WrdMatrix = SplitSplit(stringaRipulita)

    DumpAry WrdMatrix

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.Calculate

End Sub


Public Function SplitSplit(ByRef Delimited As String) As Variant
    Dim Rows() As String
    Dim AryOfArys As Variant
    Dim I As Long

    Rows = Split(Delimited, vbNewLine)
    ReDim AryOfArys(UBound(Rows))
    For I = 0 To UBound(Rows)
        AryOfArys(I) = Split(Rows(I), " ")
    Next
    SplitSplit = AryOfArys
End Function

Public Function CleanString(strSource As String) As String
    On Error GoTo CleanStringErr

    ' convert tabs to spaces first
    strSource = Replace(strSource, vbTab, " ")

    ' convert all CRLFs to spaces
    ' strSource = Replace(strSource, vbCrLf, " ")

    ' Find and replace any occurences of multiple spaces
    Do While (InStr(strSource, "  "))
        ' if true, the string still contains double spaces,
        ' replace with single space
        strSource = Replace(strSource, "  ", " ")
    Loop

    ' Remove any leading or training spaces and return
    ' result
    CleanString = Trim(strSource)
    Exit Function

CleanStringErr:
    ' Insert error-handling code here
End Function


Public Sub DumpAry(ByRef AryOfArys As Variant)
    Dim Row As Long, Col As Long
    Dim strg As String
    Dim myCell As Range
    Dim counter As Long

    Set myCell = ActiveCell
    Col = 0
    For Row = 0 To UBound(AryOfArys)
        For Col = 0 To UBound(AryOfArys(Row))
          ' strg = strg & " - " & AryOfArys(Row)(Col)
        myCell(Row + 1, Col + 1) = AryOfArys(Row)(Col)
        Next
        ' Debug.Print strg
        ' strg = ""
    Next

errHandler:
  Application.ScreenUpdating = True

End Sub



Tutti gli orari sono GMT +1. Ora sono le: 19:20.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.