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)


oedem 03-06-2019 16:27

Ciao a tutti,
avrei bisogno di un supporto su Excel.

Ho un file di questo genere

A AX1 AY1
A AX2 AY2
A AX3 AY3
B BX1 BY1
B BX2 BY2
B BX3 BY3
C CX1 CY1
C CX2 CY2
C CX3 CY3

In un altro foglio, avrei bisogno di questa operazione:
Se una tal cella = B,
allora fai (BX1*BY1)+(BX2*BY2)+(BX3*BY3)

Come ulteriore info: B=codice alfanumerico, AX1...CY3 sono numeri

Come posso fare?

Sto provando con la combinazione di somma.se e prodotti ma senza riuscirci.

Grazie :help:

sbaffo 03-06-2019 18:10

@ oedem

scusa se non ti do la soluzione esatta ma ormai ho solo libreoffice, nell’attesa che altri rispondano provo a suggerirti di fare una colonna con già pronti i valori delle moltiplicazioni, ti semplifica molto le formule.
A questo punto puoi provare a usare il cerca verticale in alternativa al somma.se.
Ma non garantisco :D .

oedem 04-06-2019 12:22

il problema è che il file da cui devo prelevare i risultati di somma e prodotto non è modificabile:muro:

sbaffo 04-06-2019 18:27

Quote:

Originariamente inviato da oedem (Messaggio 46249623)
il problema è che il file da cui devo prelevare i risultati di somma e prodotto non è modificabile:muro:

copia e incolla i dati su un nuovo file? ok forse se lo devi fare in continuazione non è il massimo.
Però comunque devi mettere le formule su un nuovo file perché il primo è blindato, giusto? quindi devi comunque collegare i due file, quindi tanto vale che nel nuovo ci metti già le moltiplicazioni.

Raffaele53 05-06-2019 20:15

>>>Se una tal cella = B
Ex per H1 =MATR.SOMMA.PRODOTTO((A1:A9=H1)*(B1:B9)*(C1:C9))

ciraw 12-06-2019 09:01

Domanda da inesperto
 
Come si fa in excel a "limitare" la parte visualizzata, mi spiego meglio:
le due barre di scorrimento sono piccolissime anche se le celle fuori dalla zona dove sono compilate sono vuote, esiste un sistema per "ripulire" l'area senza rifare il file?
grazie

Raffaele53 02-08-2019 17:36

Facciamo finta che .....le due barre di scorrimento sono piccolissime
Io selezionerei la prima verticale VUOTA ed andrei sino in Fondo Destra = ELIMINA
Io selezionerei la prima riga VUOTA ed andrei sino in basso = ELIMINA
Ps. Mouse destro = elimina

Bandit 25-01-2020 10:20

ciao a tutti ragazzi, potete darmi una mano per fare questa interrogazione su tabella?

ho una tabella con valori diversi esempio

-8
1.5
2.9
-0.3
-3.5
7
2.4
-6.5

1)
c'è un comando, o serie di comandi, che mi permettano di calcolare con quale frequenza si hanno numeri negativi? cioè, non il numero di numeri negativi presenti in tabella, ma un valore medio che mi indica dopo X,X righe si passa da valore positivo a negativo

2)
legata alla prima, c'è un modo per mettere una condizione alla ricerca precedente? cioè con quale frequenza avvengono diminuzioni di 2% per esempio


grazie infinite:)

+Benito+ 05-02-2020 08:29

risolto

Bandit 06-02-2020 15:37

Quote:

Originariamente inviato da +Benito+ (Messaggio 46609160)
risolto

non so se ti riferivi al mio quesito

però stavo pensando per la prima domanda, di far calcolare il numero di eventi negativi nella colonna e poi dividerli per il numero di celle della colonna

per la due ci vorrebbe ancora l'aiutino:D

sbaffo 06-02-2020 16:15

@ bandit

ma per la prima soluzione non hai una frequenza di cambio segno, ma semplicemente un rapporto tra numeri positivi e negativi, cioè sia che siano alternati uniformemente o prima tutti gli uni e poi tutti gli altri ti viene lo stesso risultato. Boh, se ti va bene cosi ok.

Allora anche la seconda puoi risolverla facendo una nuova colonna di fianco dove calcoli le variazioni in %, e poi lí cerchi i -2%.

@ benito+
non abbiamo capito cosa hai risolto, se metti la soluzione serve anche ad altri, altrimenti è inutile. ;)

Bandit 07-02-2020 12:41

Quote:

Originariamente inviato da sbaffo (Messaggio 46611869)
@ bandit

ma per la prima soluzione non hai una frequenza di cambio segno, ma semplicemente un rapporto tra numeri positivi e negativi, cioè sia che siano alternati uniformemente o prima tutti gli uni e poi tutti gli altri ti viene lo stesso risultato. Boh, se ti va bene cosi ok.

Allora anche la seconda puoi risolverla facendo una nuova colonna di fianco dove calcoli le variazioni in %, e poi lí cerchi i -2%.

@ benito+
non abbiamo capito cosa hai risolto, se metti la soluzione serve anche ad altri, altrimenti è inutile. ;)

@sbaffo
ciao, non è che mi va bene, il fatto è che non trovo la soluzione.

sbaffo 07-02-2020 17:25

Quote:

Originariamente inviato da Bandit (Messaggio 46613116)
@sbaffo
ciao, non è che mi va bene, il fatto è che non trovo la soluzione.

Ah, ok. :D
Una soluzione con formula non te la so fornire, e non so se esista. Mi vengono in mente metodi raffazzonati che fai prima a farlo a mano/a occhio. ;)

+Benito+ 10-02-2020 08:08

Quote:

Originariamente inviato da sbaffo (Messaggio 46611869)
@ bandit

ma per la prima soluzione non hai una frequenza di cambio segno, ma semplicemente un rapporto tra numeri positivi e negativi, cioè sia che siano alternati uniformemente o prima tutti gli uni e poi tutti gli altri ti viene lo stesso risultato. Boh, se ti va bene cosi ok.

Allora anche la seconda puoi risolverla facendo una nuova colonna di fianco dove calcoli le variazioni in %, e poi lí cerchi i -2%.

@ benito+
non abbiamo capito cosa hai risolto, se metti la soluzione serve anche ad altri, altrimenti è inutile. ;)

Era una fesseria, sbagliavo la sintassi ;)

Bandit 13-02-2020 12:20

Quote:

Originariamente inviato da sbaffo (Messaggio 46613601)
Ah, ok. :D
Una soluzione con formula non te la so fornire, e non so se esista. Mi vengono in mente metodi raffazzonati che fai prima a farlo a mano/a occhio. ;)

anche io penserei così , se però la colonna ha 6000 campi....è un problema :D

@Benito
continuo a non capire

Raffaele53 14-02-2020 01:59

Premesso che 1.5 e 2.9 ecc ecc si scrive 1,5 e 2,9 ecc ecc
Mettendo i dati che iniziano dalla cella A2
In B2 =SE(A2<0;"";SE(A3>0;0;CONTA.SE(INDIRETTO("A"&CERCA(2;1/(B$1:B1="");RIF.RIGA(B$1:B1))&":A"&RIF.RIGA());">0"))) e trascini giù
Edit. Alla fine della formula mancano un " e tre parentesi tonde

In C1 =CONTA.SE(A:A;">0")/CONTA.SE(B:B;">0")
Edit. Alla fine della formula manca un " e una parentesi tonda

sbaffo 16-02-2020 16:08

Quote:

Originariamente inviato da Raffaele53 (Messaggio 46622771)
Premesso che 1.5 e 2.9 ecc ecc si scrive 1,5 e 2,9 ecc ecc
...

la punteggiatura che usa lui è quella americana con i punti al posto delle virgole e viceversa per separare le migliaia. In effetti dopo un po’ che la usi diventa diffcile tornare a quella europea, anzi se ti arrivano i dati in quella maniera conviene lasciarli così. E non ti dico i casini quando si mischiano i dati con le due punteggiature... :eek:

Per il resto per fortuna che sei tornato, mancava l’apporto di un vero esperto, io ormai vado a memoria, e con libre office non ci provo neanche.

+Benito+ 16-02-2020 19:59

Quote:

Originariamente inviato da Bandit (Messaggio 46621625)
anche io penserei così , se però la colonna ha 6000 campi....è un problema :D

@Benito
continuo a non capire

Avevo chiesto aiuto per un problema con una formula che non funzinava, ma poi mi sono accorto che sbagliavo semplicemente a digitare, visto che non era utile a nessuno ho cancellato il post.

Bandit 17-02-2020 11:49

Quote:

Originariamente inviato da Raffaele53 (Messaggio 46622771)
Premesso che 1.5 e 2.9 ecc ecc si scrive 1,5 e 2,9 ecc ecc
Mettendo i dati che iniziano dalla cella A2
In B2 =SE(A2<0;"";SE(A3>0;0;CONTA.SE(INDIRETTO("A"&CERCA(2;1/(B$1:B1="");RIF.RIGA(B$1:B1))&":A"&RIF.RIGA());">0"))) e trascini giù
Edit. Alla fine della formula mancano un " e tre parentesi tonde

In C1 =CONTA.SE(A:A;">0")/CONTA.SE(B:B;">0")
Edit. Alla fine della formula manca un " e una parentesi tonda


grazie mille per al risposta. :)

certo che è enorme come cosa :eek: sto cercando di capire cosa significa ogni cosa.


si per le virgole ed i punti , vado e mi adatto al caso senza pensarci se . o , :D

sbaffo 17-02-2020 18:56

Quote:

Originariamente inviato da Bandit (Messaggio 46626910)
si per le virgole ed i punti , vado e mi adatto al caso senza pensarci se . o , :D

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.

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: 12:45.

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