gaspart



Otto anni
04.07.2010 06:24:45

Nello steso giorno in cui gli Stati Uniti festeggiano 234 anni di vita, sayIT SA festeggia i suoi primi otto anni. Auguri ad Anna, Elena, Laura, Manuela, Gaspar, Luca, Matteo. Un caro saluto a Cecilia e Memmo, che erano con noi all'inizio.

 

 



Tags: compleanno

Leggi tutto


 
Excel: doppia convalida da elenco
17.06.2010 08:49:32

La convalida da elenco di Excel è una gran bella invenzione. Nell'inserimento di dati in una cella, ti permette di scegliere da un elenco e ti evita di dover scrivere a mano: zero errori, zero fatica, tutti felici. Se però l'elenco dei valori ammessi è molto lungo, come ad esempio per tutte le nazioni del mondo, allora l'uso del menu a tendina diventa troppo complicato rispetto a scrivere direttamente nella cella.

 

Una strategia interessante potrebbe essere quella di far scegliere prima il continente, e poi restringere la scelta della nazione in base alla scelta precedente. Occorre quindi dividere l'elenco in più colonne, come ho fatto in questo esempio:

 

 

La prima convalida in B14 permette di scegliere il continente e ha come origine le celle A1:C1. La seconda convalida in B15 sceglie la nazione e non ha come origine un intervallo, ma una formula che restituisce un intervallo diverso a seconda del contenuto della cella B14:

 

=SCARTO(A2:C7;0;CONFRONTA(B14;A1:C1;0)-1;7;1)


Non è una formula facile da ricordare o da scrivere, e neanche da controllare. Per fortuna ho trovato un altro modo, molto più semplice, che ho usato sotto.

 

 

Prima di tutto ho creato in automatico i nomi per gli intervalli A2:A7, B2:B7 e C2:C7 prendendoli da A1, B1 e C1. In B19 c'è la stessa convalida che in B14, ma in B20 la formula inserita nella convalida da elenco è semplicissima:

 

=INDIRETTO(B19)


Siccome la funzione INDIRETTO restituisce il riferimento specificato da una stringa di testo, e siccome nel nostro caso la stringa di testo in B19 corrisponde al nome dell'intervallo, voilà il gioco è fatto. Per la gioja de li piccini, allego il file di Excel 2007 Doppia convalida. Come al solito, se conosci altri modi di fare la stessa cosa, sono interessato.

 

Tra parentesi, l'esempio è nel formato di Office 2007-2010. Se stai usando versioni precedenti di Excel, e avrai le tue gravissime ragioni, spero tu abbia installato il convertitore gratuito.

 

 



Tags: Convalida | Excel

Leggi tutto


 
Scorciatoie di Excel
03.06.2010 13:20:59

Excel è una miniera di scorciatoie da tastiera, e se ne scoprono di nuove ogni giorno. Provo a fare un elenco parziale di quelle che uso di più.

 

 

F4

Dentro a una formula, trasforma un riferimento da relativo (A1) ad assoluto ($A$1) e viceversa.

 

F4

Fuori da una formula, ripete l'ultimo comando

 

CTRL + Freccia

Sposta la cella attiva in fondo alla riga o alla colonna corrente

 

CTRL + SHIFT + Freccia

Seleziona dalla cella corrente fino in fondo alla riga o alla colonna

 

CTRL + Spazio

Seleziona tutta la colonna della cella attiva

 

SHIFT + Spazio

Seleziona tutta la riga della cella attiva

 

CTRL + Segno meno

Elimina la riga o la colonna selezionata

 

CTRL + Segno più

Aggiunge una riga sopra la riga selezionata o una colonna a sinistra della colonna selezionata

 

CTRL + Apostrofo

Copia nella cella il contenuto della cella superiore

 

ALT + Freccia giù

In fondo a una colonna di dati, apre un menu a tendina e permette di scegliere uno dei valori presenti nella colonna.

 

 



Tags: scorciatoia | Excel

Leggi tutto


 
CloudCamp Milano, 25 maggio 2010
26.05.2010 14:51:01
Ieri in Bocconi al CloudCamp, impeccabilmente organizzato da ENTER, non credo di aver sentito niente di nuovo o di particolarmente interessante, con due eccezioni: l'intervento di Eddie Budgen di Sensible Cloud sull'importanza dei Service Level Agreement, e il vivace unpanel. La mia impressione generale sulla serata è di molti venditori a caccia di pochi clienti grossi. Per come la vedo io, che non ho la CocaCaola e la FIAT tra i miei clienti, c'è molto da fare anche per le PMI. Considerazione a margine: una legge dovrebbe vietare a un relatore di tenere la sua presentazione da seduto, o peggio, di leggere la sua presentazione da seduto. Gli effetti sull'attenzione del pubblico sono devastanti. E molte slide erano illeggibili (un giorno Presentation Zen sarà libro di testo in tutte le scuole d'Italia, e avremo finito di soffrire).

Tags: Cloud Computing

Leggi tutto


 
Dalla tabella all'elenco, altri modi
16.05.2010 14:58:01
Il post della scorsa settimana su come trasformare una tabella in un elenco ha prodotto commenti interessanti. Marco segnala che si può fare molto prima con R, in sole quattro righe di codice:
library(reshape)
ordini <- read.csv("ordini.csv")
ordini2 <- melt(ordini, id="Prodotto")
names(ordini2) <- c("Prodotti","Taglia","Quantità")
ordini3 <- ordini2[order(ordini2$Prodotti), ]
Robsom con MatLab se la sbriga in due sole righe:

data = load (‘info.dat’); data_new = reshape (data’,size(data,1)*size(data,2),1);

Massimo Morelli invece prende la strada più difficile e la risolve con le formule di Excel. Allego il file di esempio (Esempio - formule dalla tabella alla lista) per i più avventurosi, ma giusto per darti l'idea ecco la formula in A2 che inserisce le etichette della prima colonna:

=SE(RIF.RIGA()-1<=RIGHE(SCARTO(Tabella!$A$1;1;0;CONTA.VALORI(Tabella!$A:$A)-1;1))*COLONNE(SCARTO(Tabella!$A$1;0;1;1;CONTA.VALORI(Tabella!$1:$1)-1));SCARTO(SCARTO(Tabella!$A$1;1;0;CONTA.VALORI(Tabella!$A:$A)-1;1);TRONCA((RIF.RIGA()-2)/COLONNE(SCARTO(Tabella!$A$1;0;1;1;CONTA.VALORI(Tabella!$1:$1)-1));0);0;1;1);"")

Invece per i meno avventurosi, c'è anche una soluzione dove le prime due colonne sono state inserite a mano, e la terza viene calcolata con una formula che si riesce ascrivere in una sola riga:

=CERCA.ORIZZ(B16;$B$1:$G$8;CONFRONTA(A16;$A$1:$A$8;0);0)

Per quanto riguarda la soluzione originale con la macro in VBA, più la guardo e meno mi piace. Magari uno di questi giorni la rifaccio e la ripubblico.

Tags: Excel formule tabella elenco

Leggi tutto


 
Dalla tabella all'elenco
02.05.2010 15:37:52

La settimana scorsa, durante un corso di Excel per una azienda del Luganese, mi hanno raccontato una brutta storia. Uno dei lavori ricorrenti più lunghi, ingrati e noiosi affidati in azienda ad alcuni allievi era questo: data una tabella di ordini riempita dal cliente e simile a questa:
Tabella

ottenere un elenco di dati simile a questo:
elenco

La prima domanda, ovviamente, è stata "Perché? Ma soprattutto, perché?" La dura risposta: "Perché il cliente vuole così, e il cliente ha sempre ragione". Questo restringe molto il campo delle possibili soluzioni, ma almeno si può fare una bella macro. Siccome non c'è stato tempo durante il corso, mi ci sono divertito oggi e ho messo insieme una soluzione "quick & dirty" che farà storcere il naso a tutti i programmatori (io non lo sono), ma che funziona per qualsiasi tabella di qualsiasi dimensione, purché si parta con una cella attiva dentro la tabella da svolgere. Il file di esempio (47KB formato Excel 2003) è dalla tabella alla lista, e il codice è questo:

Sub Tabella_Elenco()

'
' Prende una tabella da un foglio
' e la trasforma in un elenco in un altro foglio
'
On Error Resume Next
Application.ScreenUpdating = False

Dim MioFoglio As Worksheet
Dim MiaTabella As Range
Dim Etichette As Range
Dim colcnt As Integer
Dim rowcnt As Integer

'   Definisco le variabili e il foglio di destinazione
'  con le etichette

Set MioFoglio = ActiveSheet
Set MiaTabella = ActiveSheet.Cells(1, 1).CurrentRegion
colcnt = MiaTabella.Columns.Count
rowcnt = MiaTabella.Rows.Count
Set Etichette = MiaTabella.Range(Cells(1, 2), Cells(1, colcnt))
N = 0

Sheets.Add.Name = "Destinazione"
With ActiveWorkbook.Names
.Add Name:="Prodotto", RefersTo:="=Destinazione!A1"
.Add Name:="Taglia", RefersTo:="=Destinazione!B1"
.Add Name:="Quantità", RefersTo:="=Destinazione!C1"
End With
Range("Prodotto").FormulaR1C1 = "Prodotto"
Range("Taglia").FormulaR1C1 = "Taglia"
Range("Quantità").FormulaR1C1 = "Quantità"

'   Copio e incollo in modo diverso per la prima riga

While N < rowcnt - 1

Application.CutCopyMode = False
MiaTabella.Cells(N + 2, 1).Copy
Application.Goto Reference:="Prodotto"

If N = 0 Then
Range("Prodotto").Offset(1, 0).Range("A1").Select

Else
Range("Prodotto").End(xlDown).Offset(1, 0).Range("A1").Select
End If

Selection.Resize(Selection.Rows.Count + colcnt - 2, Selection.Columns.Count).Select
ActiveSheet.Paste

Application.CutCopyMode = False
Etichette.Copy
Application.Goto Reference:="Taglia"

If N = 0 Then
Range("Taglia").Offset(1, 0).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Else
Range("Taglia").End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End If

Application.CutCopyMode = False
MioFoglio.Select
MiaTabella.Range(Cells(N + 2, 2), Cells(N + 2, colcnt)).Copy
Application.Goto Reference:="Quantità"

If N = 0 Then
Range("Quantità").Offset(1, 0).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Else
Range("Quantità").End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End If

N = N + 1

Wend

Application.CutCopyMode = False

Range("A1").Select
Application.ScreenUpdating = True

End Sub

Buon divertimento. Molto volentieri accetto critiche, pomodori e suggerimenti.



Tags: Exce | l macro | tabella | elenco

Leggi tutto


 
Le nuvole all'asta
15.03.2010 13:57:44

C'è un interessante articolo sull'Economist di questa settimana (p.64 su carta, oppure qui) che comincia nel tipico stile anglosassone:

 

"Se siete stanchi di sentire la parola "cloud" associata a tutte le parole del dizionario, non siete soli. I tecnici disillusi cominciano a soccombere allo "stress da cloud". Ma l'idea della potenza di calcolo come servizio di base distribuito via internet si è ormai affermata. In effetti, l'industria comincia a muovere i primi passi verso la trasformazione della potenza di calcolo in una commodity negoziabile come l'elettricità."

 

L'articolo passa poi a descrivere le Spot Instances dove Amazon mette all'asta la potenza di calcolo inutilizzata dei suoi datacenters: un ulteriore passo verso la commoditization.

 



Tags: Cloud Economist Amazon

Leggi tutto


 
3 buoni motivi per non iscriversi a un corso di informatica
10.03.2010 08:39:36

Nell'organizzazione di un corso di informatica, uno dei momenti fondamentali è lo screening dei partecipanti. Ci capita spesso di dover insistere presso il cliente, cercando di fargli capire che senza questo passaggio, l'efficacia del corso è a rischio (assieme al ritorno sull'investimento).

 

Si tratta di riuscire a formare classi il più possibile omogenee per conoscenze e per necessità formative, compatibilmente con le esigenze di lavoro. Ma mentre in teoria si mira alla perfezione, in pratica poi ci si adatta e si cercano compromessi tra le mille esigenze contrastanti.

 

Vale quindi la pena di chirarire bene a ogni futuro allievo, nel momento in cui si iscrive a un corso, i 3 buoni motivi per non farlo:

 

  1. Non userai il programma
  2. Non possiedi i prerequisiti
  3. Non hai tempo

1.

"Übung macht den Meister", dicono in Germania. I corsi sono una cosa fantastica, e io ne sono un fervente sostenitore; ma senza la pratica immediata e costante, non servono a niente. E' perfettamente inutile iscriversi a un corso di Filemaker se non si prevede, dal giorno dopo, di cominciare a usarlo tutti i giorni. E' un fatto assodato che, senza la pratica, il contenuto di un corso si dimentica totalmente entro tre settimane.

 

2.

Non di rado capita che le assegnazioni ai diversi livelli di un corso vengano decise in base al rango aziendale e non in base alle conoscenze: i neoassunti al corso base, i dirigenti al corso avanzato. Ovviamente, il risultato è disastroso. Ogni corso richiede e si appoggia a una base di conoscenze che devono essere condivise da tutti i partecipanti, e i diversi livelli servono proprio a questo. Se in Excel non hai mai creato una tua formula con le quattro operazioni, il corso "Excel Perfezionamento: funzioni avanzate" non è per te, non ancora.

 

3.

Specialmente nei corsi presso aziende, capita che alcuni partecipanti vengano interrotti e distratti continuamente da telefonate, urgenze, colleghi con problemi. Chi è oberato dal lavoro, se non riesce a ritagliarsi il tempo necessario, è meglio che salti il turno se non vuole stressarsi e stressare gli altri partecipanti.

 



Tags: organizzazione corsi

Leggi tutto


 
L'intervallo dei dati nelle tabelle pivot di Excel
19.02.2010 19:50:24

Quando tengo dei seminari sull'accesso ai dati con Excel, una delle cose per me più interessanti è quando scopro modi diversi di fare le cose. La settimana scorsa, nel fare una tabella pivot basata su un elenco di Excel 2003, un allievo mi ha selezionato, nel passaggio 2 della creazione guidata, come intervallo dati non le celle dell'elenco, ma le intere colonne.

 

Esempio: partendo da un semplice elenco di 7 colonne per 38 righe, io avrei selezionato così:

 

intervallo per pivot

 

Lui invece ha selezionato così:

 

colonne per pivot

 

Perché lo ha fatto? In questo modo, quando aggiunge nuove righe all'elenco, può aggiornare la pivot senza dover ridefinire l'intervallo. Interessante! Io invece devo ritornare ogni volta al passaggio 2 della creazione guidata e aggiungere le nuove righe.

 

Ci sono però dei lati negativi. Si risolve il problema dell'aggiornamento ma se ne creano altri:

  1. La dimensione del file: un elenco di 20KB a cui si aggiunge una pivot fatta nel primo modo, rimane di 20KB; nel secondo modo diventa un file di 900KB (un elenco di 56KB diventa un file di 2MB!).
  2. Gli aggiornamenti: diventano leeenti, e visto che la pivot viene aggiornata anche all'apertura, anche aprire il file diventa leeento.
  3. Nel costruire la pivot, il campo dei totali non viene sommato ma contato, a causa della presenza di celle vuote nella colonna.
  4. Sui campi di data, non si riesce ad aggregare per mese/anno, sempre a causa delle celle vuote.

 

Come mi segnalava Massimo Morelli, c'è un ulteriore modo, consigliato per gli smanettoni di Excel: creare un nome dinamico e fare la pivot sul nome invece che sull'intervallo di celle (o di colonne). La formula per la creazione del nome, che vale per qualsiasi elenco che cominci in A1, è questa:

 

=SCARTO(Inventario!$A$1;0;0;CONTA.VALORI(Inventario!$A:$A);

CONTA.VALORI(Inventario!$1:$1))

 



Tags: Excel | Tabelle Pivot | Intervallo dei dati | Intervalli dinamici

Leggi tutto


 
Excel: scorciatoia per inserire la data di oggi
09.02.2010 08:00:21

Questo è un vecchissimo trucco di Excel ma non lo sanno in molti: per inserire la data odierna in una cella, invece di scriverla per esteso, è possibile usare la seguente combinazione di tasti:

 

CTRL + SHIFT + ; (punto e virgola)

 

Invece per inserire l'ora corrente, stessa combinazione ma con il due punti invece del punto e virgola:

 

CTRL + SHIFT + : (due punti)

 

 



Tags: scorciatoia | Excel

Leggi tutto


  Pagina 1 di 2
<< Inizio < Prec. 1 2 Succ. > Fine >>
IDOBlog - blog for joomla 1.5