![]() |
Riempire cella fino a quando raggiungi il valore
Salve.
Ho un foglio fatto così: _________A___________B__________C__________D__________E 7___________________casa______grande______rossa_______verde 13_______10__________? 14_______20__________? 15_______30__________? 16_______40__________? 17_______50__________? Praticamente nella celle B7, C7, D7, E7 ci sono inserite delle parole, che possono anche essere delle frasi. Nella colonna A in A13, A14, A15 A16 e A17 ci sono invece dei numeri che rappresentano delle lunghezze. Ora, dove ci sono i punti di domanda ?, io devo inserire una formula che mi concateni le varie parole o frasi della riga 7 fino al raggiungimento della lunghezza della colonna A (magari aggiungendo uno spazio ogni volta che inserisce il valore di una cella diversa) Quindi in B13 comparira "casa" perchè sono già 4 caratteri, quindi minore di 10 In B14 invece ci sarà "casa grande rossa" che sono 17 caratteri, quindi minore di 20 e così via. In B15, B16 e B17 ci sarà "casa grande rossa verde" che sono 23 caratteri quindi minore rispettivamente di 30, 40 e 50. Non dovrebbe essere difficile, ma io non ci salto fuori!:-( Grazie a chiunque mi aiuterà Lisa |
Utilizzando due righe d'appoggio puoi fare così:
B8=LUNGHEZZA(B7) e ricopi fino a F8 B9=B8 C9=B9+C8 e ricopi fino a F9 B10=B7 C10=B10& " " &C7 e ricopi fino a F10 C13=SE(VAL.ERRORE(CERCA.ORIZZ(A13;$B$9:$F$10;1));"";SE(CERCA.ORIZZ(A13;$B$9:$F$10;1)=A13;SE(A13-1>$B$9;CERCA.ORIZZ(A13-1;$B$9:$F$10;2);"");CERCA.ORIZZ(A13;$B$9:$F$10;2))) e ricopi fino a in basso fino a quando vuoi. sappimi dire ciao Ivano |
Va, va!
Grazie mille |
Se metti le lunghezze in A2, A3, A4, A5 e le parole in C1, D1, E1, F1, puoi utilizzare questa macro (la puoi utilizzare ugualmente ma modificando i riferimenti di cella)
codice:
Sub scrivi() Valerio |
Un miglioramento della formula di Ivano potrebbe essere questa:
codice:
=SE(LUNGHEZZA($B$7)<A13;$B$7;"")&SE(LUNGHEZZA($B$7&" "&$C$7)<A13;" "&$C$7;"")&SE(LUNGHEZZA($B$7&" "&$C$7&" "&$D$7)<A13;" "&$D$7;"")&SE(LUNGHEZZA($B$7&" "&$C$7&" "&$D$7&" "&$E$7)<A13;" "&$E$7;"") Giulia |
Altra soluzione, molto simile a quella di giulia: poi basta, eh?:-D
codice:
=SE(LUNGHEZZA(B$7)>A13;" ";SE(LUNGHEZZA(CONCATENA(B$7;" ";C$7))>A13;B7;SE(LUNGHEZZA(CONCATENA(B$7;" ";C$7;" ";D$7))>A13;CONCATENA(B$7;" ";C$7);SE(LUNGHEZZA(CONCATENA(B$7;" ";C$7;" ";D$7;" ";E$7))>A13;CONCATENA(B$7;" ";C$7;" ";D$7);CONCATENA(B$7;" ";C$7;" ";D$7;" ";E$7))))) |
1 allegato(i)
Tutte ottime soluzioni. Per chi volesse provarle, allego il file vergine (potevo forse farlo prima?;-))
Grazie ancora Lisa |
Potresti anche fare così:
nel tuo file di Excel, nell'Editor di VBA, inserisci un nuovo Modulo e copiaci dentro questa funzione: codice:
Public Function ConcatenaConLimite(rng As Range, lim As Range) codice:
=concatenaconlimite($B$7:$E$7;A13) |
Tutti gli orari sono GMT +2. Attualmente sono le 07:47 PM. |