[Risolto] Concatena (Da : A), è possibile?

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Wyv
Messaggi: 14
Iscritto il: martedì 31 gennaio 2017, 8:15

[Risolto] Concatena (Da : A), è possibile?

Messaggio da Wyv »

Buongiorno,

Ho una riga "1" con varie formule ed ognuna delle quali riporta un valore.
La riga è lunga oltre 500 celle e riporta svariati valori, di cui la maggior parte sono vuoti.

Con la formula:
CONCATENA(A1;",";B1;",";C1;",", e così via)
sarei in grado di scrivere in un'unica cella tutti i risultati ottenuti nella riga 1, escludendo poi virgole e spazi vuoti tramite altre formule.
Il problema è che come detto la riga 1 contiene formule per 500 celle, il che rende un problema scrivere la formula CONCATENA, che risulterebbe
incredibilmente lunga perchè dovrei partire da A1;"," fino ad arrivare a SF1;"," .

Mi chiedevo quindi se c'era un modo per dare un range a CONCATENA anzichè indicare singolarmente ogni cella.
Qualcosa del tipo CONCATENA(A1:SF1;","), cioè concatena(Dalla cella A1 che è la prima, Alla cella SF1 che è l'ultima; ",").
Ho provato qualche formula, ma non riesco a venirne a capo.
Allegati
Prova Concatena.ods
(15.03 KiB) Scaricato 17 volte
Ultima modifica di Wyv il sabato 19 aprile 2025, 14:21, modificato 1 volta in totale.
OperOffice 4.1.2 su Windows 10 Pro
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9056
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Concatena (Da : A), è possibile?

Messaggio da charlie »

Ciao, ti posso suggerire solo un metodo di scrittura più rapido.
  • In una casella a piacere, mettiamo A1, scrivi una virgola
  • Nella casella del risultato digiti: =CONCATENA(
  • Fai clic sulla prima casella da concatenare
  • Tenendo premuto Ctrl fai clic su A1
  • Tenendo premuto Ctrl fai clic sulla seconda casella da concatenare
  • Tenendo premuto Ctrl fai clic su A1
  • .......
  • Tenendo premuto Ctrl fai clic sull'ultima casella da concatenare
  • Digita ) e premi Invio
charlie
macOS 15.5 Sequoia: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Wyv
Messaggi: 14
Iscritto il: martedì 31 gennaio 2017, 8:15

Re: Concatena (Da : A), è possibile?

Messaggio da Wyv »

E' l'equivalente di scrivere, però al posto di scrivere clicco sulla cella.
Grazie del suggerimento, questo però lo faccio già regolarmente, ma il problema rimane. Se ho una riga con 500 valori devo cliccare singolarmente su ognuna di quelle celle, ed inoltre devo anche cliccare 500 volte sulla virgola (Anche se quella la farei premendo direttamente la virgola sulla tastiera per evitare il click in più). Se poi la riga mi diventasse da 1000 valori sarebbero 1000 click + altri 1000 click. E' certamente più veloce di scrivere, ma non è decisamente una soluzione ideale.
Io starei cercando una soluzione simile o sostitutiva a TESTO.UNISCI che non posso usare perchè non ho libreoffice.

Grazie dell'interessamento e del suggerimento.
OperOffice 4.1.2 su Windows 10 Pro
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 9056
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Concatena (Da : A), è possibile?

Messaggio da charlie »

Se passi a Libre Office, c'è la funzione TESTO.UNISCI che risolve il problema.
Esempio, se l'intervallo fosse B1:BA1:

Digita la formula: =TESTO.UNISCI(" ";1;B1:BA1).
  • TESTO.UNISCI: è la funzione che concatena le celle.
  • " ": è il separatore, in questo caso uno spazio. Puoi sostituirlo con qualsiasi altro carattere o stringa.
  • 1: indica che la funzione deve concatenare tutte le celle nell'intervallo.
charlie
macOS 15.5 Sequoia: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
gioh66
Volontario assiduo
Volontario assiduo
Messaggi: 1906
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Concatena (Da : A), è possibile?

Messaggio da gioh66 »

Ciao. Se non vuoi o non puoi passare a LibreOffice, potresti accorpare i dati in una riga con la seguente formula matriciale

Codice: Seleziona tutto

=SE(VAL.ERRORE(INDICE($B$9:$DC$9;PICCOLO(SE($B$9:$DC$9<>"";RIF.COLONNA($B$9:$DC$9)-1);RIF.COLONNA(A1))));"";INDICE($B$9:$DC$9;PICCOLO(SE($B$9:$DC$9<>"";RIF.COLONNA($B$9:$DC$9)-1);RIF.COLONNA(A1))))
La formula va inserita in una cella, confermata con la combinazione di tasti ctrl+maiuscolo+invio (non col solo invio) e trascinata a destra tenendo premuto il tasto control, o copiata e incollata per quanto ti può servire.
Allegati
accorpa dati.png
accorpa dati.png (7.64 KiB) Visto 582 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661

Libreoffice 25.8 LinuxMint 21/22
Wyv
Messaggi: 14
Iscritto il: martedì 31 gennaio 2017, 8:15

Re: Concatena (Da : A), è possibile?

Messaggio da Wyv »

Gioh, la formula fa esattamente quello che volevo facesse. Grazie mille, è perfetta.

Se possibile però vorrei chiederti una cortesia, sia per me e sia per chi arriverà in seguito poi su questo post per la mia stessa ragione.
Mi piacerebbe riuscire a capire la formula, ci sono alcune cose che non ho mai visto e non ho idea del perchè vada confermata con ctr+shift+invio.
Se potessi scomporla e spiegarla passo passo sarebbe il top, in modo che una volta capita poi la possa utilizzare senza andare a chiedere a nessuno.

In ogni caso, grazie ancora.
OperOffice 4.1.2 su Windows 10 Pro
Avatar utente
gioh66
Volontario assiduo
Volontario assiduo
Messaggi: 1906
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Concatena (Da : A), è possibile?

Messaggio da gioh66 »

Ciao felice d’esserti stato d’aiuto.
Allora ti spiego come funziona la formula partendo dal centro, cioè dalla funzione SE.
Dunque con la formula

Codice: Seleziona tutto

$B$9:$DC$9<>""
creiamo una matrice di VERO e FALSO, tipo
FALSO.FALSO.VERO.VERO.FALSO.FALSO.VERO… ecc…
e con

Codice: Seleziona tutto

RIF.COLONNA($B$9:$DC$9)-1 
ci facciamo restituire il numero di colonna a cui corrisponde la condizione VERO.
Mettendo poi la formula

Codice: Seleziona tutto

SE($B$9:$DC$9<>"";RIF.COLONNA($B$9:$DC$9)-1
come primo argomento dentro la funzione PICCOLO ci facciamo restituire quali sono il primo, il secondo, il terzo valore ecc... a cui coincide la condizione VERO.
Mettendo come secondo argomento della funzione PICCOLO la formula

Codice: Seleziona tutto

RIF.COLONNA(A1)
automatizziamo l’estrazione dei dati man mano che trasciniamo o copiamo a destra la formula.
Una precisazione. Nella formula

Codice: Seleziona tutto

RIF.COLONNA($B$9:$DC$9)-1
il -1 serve a riportare il conteggio delle colonne da 1.
La colonna B è la seconda per cui il conteggio comincia da 2, ma per avere i dati corretti serve che inizi da 1.
Se ad esempio la matrice iniziasse dalla colonna F, al posto di -1 ci andrebbe -4.

La formula è una formula matriciale, perché viene fatta una forzatura delle funzione SE che normalmente serve a confrontare un dato alla volta, mentre in questo caso viene confrontata un’intera matrice.
Le formule matriciali per avere effetto vanno confermate con la combinazione di tasti ctrl+maiuscolo+invio.
Inoltre se guardi nella barra della formula vedrai che la stessa viene racchiusa automaticamente tra parentesi graffe.

Ps.: se la tua matrice fosse verticale invece che orizzontale devi sostituire dentro al SE il RIF.COLONNA con il RIF.RIGA, correggendo con un -N° a seconda della riga da dove inizia la tua matrice.
Un’altra cosa se prevedi di togliere o aggiungere colonne (o righe), seguendo il tuo esempio, sarebbe più opportuno fare la formula dentro il SE così

Codice: Seleziona tutto

SE($B$9:$DC$9<>"";RIF.COLONNA($B$9:$DC$9)-RIF.COLONNA($B$9)+1)
in modo che la formula si adatti automaticamente alle modifiche.
Spero di essere stato abbastanza chiaro.
Ultima modifica di gioh66 il domenica 20 aprile 2025, 8:40, modificato 3 volte in totale.
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661

Libreoffice 25.8 LinuxMint 21/22
Wyv
Messaggi: 14
Iscritto il: martedì 31 gennaio 2017, 8:15

Re: Concatena (Da : A), è possibile?

Messaggio da Wyv »

Chiarissimo, è un livello nettamente superiore a quello che ho raggiunto io, ma penso di aver capito tutto.
Grazie mille, sei stato gentilissimo anche a spiegare.

Grazie a tutti, metto Risolto.
OperOffice 4.1.2 su Windows 10 Pro
Avatar utente
gioh66
Volontario assiduo
Volontario assiduo
Messaggi: 1906
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: [Risolto] Concatena (Da : A), è possibile?

Messaggio da gioh66 »

Di nulla. Grazie del riscontro e buona Pasqua
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661

Libreoffice 25.8 LinuxMint 21/22
Rispondi