PDA

View Full Version : Tabella di conversione in Excel


*nicola*
06-08-2009, 09:32
Vorrei creare un foglio di Excel dove l'operatore immette un valore compreso tra 1 e 10 e nella cella affianco appare un coefficiente proveniente da una tabella di conversione.
La tabella per i valori interi è del tipo
1==>0,99
2==>0,88
3==>0,71
4==>0,56
5==>0,44
6==>0,33
7==>0,29
8==>0,27
9==>0,21
10==>0,1
i valori immessi dall'operatore però potrebbero anche essere del tipo decimale (es 2,3), questo aggrava ulteriormente la situazione.
COme posso fare a dire ad Excel di guardare il contenuto di una cella, confrontarlo con la tabella e scrivermi il valore della cella affianco?

In alternativa mi era venuto in mente di trovare un software per interpolare i valori e giungere alla funzione (molto lunga) che descrive l'andamento però non conosco nessuno di questi software. Ce ne è uno che potrebbe tornarmi utile e non trovvo complicato da usare?

Grazie!

john_revelator
06-08-2009, 09:35
Guarda nella guida in linea la funzione cerca.vert().

*nicola*
06-08-2009, 09:49
Sembra proprio quello che cercavo!

*nicola*
11-08-2009, 22:15
Avrei un altro problema con lo stesso foglio di esercizi:
Ho un elenco di valori (uno per ogni cella)
Esempio:
44
32
12
1
99
e vorrei che Excel mi mettesse affianco ad ogni cella il numero progressivo in ordine decrescente quindi, tornando all'esempio
44|2
32|3
12|4
1|5
99|1
esiste un modo per farlo?

Grazie!!!

zuper
11-08-2009, 22:56
dipende se i dati variano e da altre cosine...ma io fare una bella macro che li ordina decrescenti...aggiunge i numeri nella cella vicino e poi li riordina come erano prima :D

zuper
11-08-2009, 23:01
guarda ho registrato sta robina al volo tanto per darti un'idea di quello che farei

Sub Macro1()

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("A2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A5")
Range("A1:A5").Select
Range("A1:B5").Select
Range("B1").Activate
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:B5")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("C1").Select
ActiveCell.FormulaR1C1 = "1"
Range("C2").Select
ActiveCell.FormulaR1C1 = "2"
Range("C1:C2").Select
Selection.AutoFill Destination:=Range("C1:C5")
Range("C1:C5").Select
Range("A1:C5").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C5")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Range("A1").Select
End Sub


chiaramente andrebbe rivista ed adattata ;)

john_revelator
12-08-2009, 07:22
Avrei un altro problema con lo stesso foglio di esercizi:
Ho un elenco di valori (uno per ogni cella)
Esempio:
44
32
12
1
99
e vorrei che Excel mi mettesse affianco ad ogni cella il numero progressivo in ordine decrescente quindi, tornando all'esempio
44|2
32|3
12|4
1|5
99|1
esiste un modo per farlo?

Grazie!!!

Ma scusa, non puoi fare semplicemente una cosa di questo tipo:

Aggiungi un numero progressivo a fianco ai tuoi valori, li ordini in senso decrescente, a questo punto in un'altra colonna metti un altro numero progressivo e infine riordini sul primo indice che avevi creato. :fagiano:

zuper
12-08-2009, 08:15
Ma scusa, non puoi fare semplicemente una cosa di questo tipo:

Aggiungi un numero progressivo a fianco ai tuoi valori, li ordini in senso decrescente, a questo punto in un'altra colonna metti un altro numero progressivo e infine riordini sul primo indice che avevi creato. :fagiano:

ihhiihhi è esattamente quello che ho registrato nella macro ;)

ses4
12-08-2009, 15:49
Avrei un altro problema con lo stesso foglio di esercizi:
Ho un elenco di valori (uno per ogni cella)
Esempio:
44
32
12
1
99
e vorrei che Excel mi mettesse affianco ad ogni cella il numero progressivo in ordine decrescente quindi, tornando all'esempio
44|2
32|3
12|4
1|5
99|1
esiste un modo per farlo?

Grazie!!!
Usa la funzione RANGO()
Se nel tuo esempio i dati 44, ...99 sono contenuti in colonna A a partire dalla riga 1 in B1 devi scrivere:

=RANGO(A1;$A$1:$A$5)
e trascinare in basso.
Ciao

zuper
12-08-2009, 18:40
Usa la funzione RANGO()
Se nel tuo esempio i dati 44, ...99 sono contenuti in colonna A a partire dalla riga 1 in B1 devi scrivere:

=RANGO(A1;$A$1:$A$5)
e trascinare in basso.
Ciao

:eek: stupenda :D

*nicola*
13-08-2009, 07:43
Grazie 1000 dei consigli, alla fine ho fatto in maniera un po' diversa: ho creato due tabelle una con i record in ordine casuale ed una con i record scritti nell'ordine voluto utilizzando la funzione CERCA.VERT combinata con GRANDE divendogli di cercare il 1 più grande, il 2 più grande e così via.

Trovo interessante la funzione RANGO, dopo voglio provarla!