Aiuto per trasformare una tabella Excel in database-programmino: chi è il genio che mi dà la soluzio

AriesMu

Utente Attivo
113
5
CPU
Intel Pentium E2200
Scheda Madre
ECS G31T-M7 - socket 775
HDD
Disco1: Maxtor STM3160215A 160 GB (OS + dati) *** Disco2: Maxtor STM3250310AS - 250 GB (Backup)
RAM
2x1 GB DDR2 PC2-6400 400 MHz (DDR2 800)
GPU
NVidia GeForce 8400 GS 512 MB
Audio
Via High Definition Audio
Monitor
Asus VW196
PSU
?
Case
Midtower
OS
Windows XP Professional 32 bit
Ciao a tutti, sarò immensamente grato al genio che riuscirà a trovarmi una soluzione ad un mio bisogno...

Le domande le faccio PRIMA, e poi spiego la cosa.

Domanda1: siccome di programmazione non ci capisco quasi nulla (ho solo basi di batch del DOS, HTML e un pò la "logica" generale che vi è dietro), vorrei sapere:
Per fare questo programmino che devo fare, che linguaggi mi servono?
Mi basta Excel? Oppure mi serve di abbinarvi anche ACCESS?
Nella suite di OpenOffice, quali progrmami mi servono?
Mi bastano OpenOfficeCalc + OpenOfficeBase?

Domanda2: dove trovo delle guide gratuite scaricabili o tutorial che mi insegnino a fare ciò?

Ora mi direte: MA CHE CAVOLO DEVI FARE?

Mi spiego con degli esempi altrimenti la cosa sarebbe molto prolissa, perché ho necessità di fare molte cose diverse.

ESEMPIO:

Come punto di partenza ho 3 tabelle excel:
1) TABELLA 1: Una con i nomi di tutte le componenti hardware necessarie per assemblare un PC, ed i rispettivi dati tecnici. Quindi questa tabella avrà una colonna con i NOMI e le altre colonne con valori NUMERICI (supponiamo i Ghz, i bit, i GB, ecc...). Ovviamente alcune componenti avranno dati in più colonne ed in COMUNE. Ad esempio sia i moduli RAM che gli HDD avranno dei valori nella colonna GB... (è solo un esempio).

2) TABELLA 2: Una tabella dove non vi sono valori numerici, ma soltanto "avvertenze" testuali. Il programmino me le dovrà inserire sempre TUTTE, tranne quelle che eventualmente io avviso di non inserire, ceccandole da un elenco.

3) TABELLA 3: Una tabella dove vi sono anche qui solo avvertenze testuali, ma in questo caso di default le deve sempre escludere TUTTE, tranne quelle che io eventualmente avviso di inserire, ceccandole da un elenco.

Supponiamo che io voglia rendere queste due tabelle come se fossero un "database" e poi creare un programmino che mi faccia quanto segue:
Il programmino deve elaborarmi CASUALMENTE delle configurazioni di PC assemblati.
Però non deve avere solo la funzione di base: cioè prendimi a caso un componente per ogni categoria (ad esempio: schede video, processori, schede madri, ecc...), bensì io devo aver la possibilità di definire dei CRITERI di scelta.

E quindi questi sono ad esempio i CRITERI che devo poter definire:

1) Associare dei componenti ad altri componenti. Se ad esempio mi sceglie (o scelgo io) una scheda madre per CPU AMD, automaticamente deve escludere dalla scelta casuale dei CPU tutte le CPU Intel. E così via per i socket, ecc...

2) Devo aver la possibilità di mettere dei "paletti". Ad esempio, con un form da compilare con i quadratini da ceccare per tutti i componenti che voglio escludere. Quindi il programma deve avere anche la possibilità di visionare un elenco di tutti i componenti della tabella excel, però da ceccare quelli "vietati". Ad esempio se voglio un PC che abbia qualsiasi caratteristica, ma che debba ESCLUDERE i seguenti componenti:
HARD DISKS da 5400 rpm
MODUL RAM DDR2 e DDR
SCHEDE VIDEO con ram DDR3

Io debbo poter avere la possibilità di ceccare tutti questi componenti, e lui me li esclude.

3) Magari avere la possibilità di escludere i componenti per "categoria" anzicché doverli ceccare tutti uno ad uno (ad esempio la categoria hard disks da 5400 rpm, anziché doverli bannare uno ad uno). Ma questa funzione non è indispensabile....


4) La possibilità di assegnare delle ETICHETTE ad ogni rigo di tabella... in modo che poi il programmino le usi per richiamarle. Ad esempio:

a) Ricordate LA TABELLA 2 excel, quella solo "testuale"? Bene, io devo poter assegnare una ETICHETTA ad ogni rigo testuale. Così che quando il programmino mi macina e sputa la configurazione del PC casuale, comunque mi metta anche quel rigo testuale in essa. Per esempio c'è un rigo testuale con tutte le avvertenze per la cura del PC. Per esempio il rigo 15 dice: "Ricordati di acquistare un gruppo di continuità per adeguatamente proteggere il tuo PC". Assegno a questo rigo 15 l'etichetta UPS.
Ovviamente il programma non deve inserire questa avvertenza SEMPRE, perché se devo elaborare la configurazione di un notebook, non avrò bisogno di un UPS e quindi nello stampato finale non ci dovrà essere scritta questa dicitura (è solo un esempio!).
Però neppure devo stare ogni volta a fare copia e incolla ed incollarmi tutte le avvertenze nella configurazione...
Cioè io devo poter indicare al programmino, in fase di immissione delle "esigenze" di configurazione, così come indico i componenti VIETATI da non inserire, ugualmente indicare le avvertenze da non inserire.
Perciò in tale esempio io andrò nell'elenco delle avvertenze testuali, in quelle da ESCLUDERE mi ceccherò quella etichettata UPS se devo configurare un notebook, e lui nell'elaborato finale non mi inserirà quella avvertenza.

b) Ovviamente automaticamente lui mi deve inserire TUTTE le altre avvertenze testuali NON ESCLUSE da me. Per esempio il rigo 16 dice: "Fare attenzione a non versare nessun liquido sulla tastiera". Bene, questa avvertenza me la deve inserire SEMPRE.
Quindi il programmino diciamo che di default deve inserirmi TUTTI I RIGHI TESTUALI, ma, di questi, io devo aver la possibilità di ESCLUDERNE alcuni, ceccandoli da un elenco.

c) RICORDATE LA TABELLA 3 di EXCEL? Ovviamente, però, deve poter "RICHIAMARE" (non so se con una etichetta oppure indicando direttamente il numero del rigo excel) o ESCLUDERE anche i singoli componenti della TABELLA 1 excel principale!
Cioè, devo poter "associare" righi a righi.
PER ESEMPIO:
Ricordo che tutte le righe/avvertenze della TABELLA 3 di default NON DEVONO ESSERE INSERITE nello stampato finale, ma solo quelle che eventualmente gli cecco io da un elenco.
Bene, facciamo finta che le CPU AMD richiedevano che il PC dovesse avere un ventilatore a fianco. Questa avvertenza "opzionale" è inserita nella TABELLA 3 rigo 26: "Ricordati di installare un ventilatore a fianco al PC".
Nel momento in cui io cecco l'avvertenza 26 da un elenco (che si richiama la tabella 3), il programmino mi inserirà questa avvertenza nello stampato finale, ma io ho bisogno che AUTOMATICAMENTE, per il fatto stesso di aver ceccato l'avvertenza 26 del ventilatore, il programmino ESCLUDA tutte le righe con le CPU INTEL della TABELLONA 1 (Quella dei componenti hardware) nel momento in cui andrà ad assegnare casualmente le componenti hardware.
Cioè, in parole teoriche, ogni avvertenza della TABELLA C deve essere ASSOCIATA NEGATIVAMENTE (cioè in senso di far ESCLUDERE) ad ALCUNE righe della TABELLONA 1: quando io cecco quella determinata avvertenza, quelle righe (o le loro "etichette") associatevi per il progammino è come se non esistessero.

5) Poi devo poter mettere anche dei requisiti precisi. Io nella TABELLONA 1 con i componenti ho i valori dei GB, dei GHz, ecc...
Devo potergli dire un dato valore con cui configurarmi il PC.
Ad esempio come se gli dicessi: Elaborami una configurazione di PC che abbia 8 GB di RAM, 500 GB di Hard Disk e 2 GB di memoria grafica dedicata.

6) Poi devo potergli dire anche il NUMERO di configurazioni che mi deve fare, non solo una!!!
Cioè, io devo poter stabilire:
a) Che ogni volta che lui mi fa una configurazione, in realtà me ne deve fare 20, messe in questo ordine:
- 5 configurazioni MEDIE di PC con 8 GB di RAM, 500 GB di Hard Disk e 2 GB di memoria grafica
- 5 configurazioni BASE di PC con 4 GB di RAM, 250 GB di Hard Disk e 1 GB di memoria grafica
- 5 configurazioni EXCLUSIVE di PC con 16 GB di RAM, 1500 GB di Hard Disk e 4 GB di memoria grafica
- 5 configurazioni ADVANCED di PC con 12 GB di RAM, 750 GB di Hard Disk e 3 GB di memoria grafica

Quindi alla fine lo stampato finale dovrà anche essere "ordinato".
Cioè dovrà recare:

1) prima tutte le avvertenze, una sotto l'altra, testuali della TABELLA 2 (escluse quelle che gli avrò ceccato da un elenco)
2) Poi tutte le avvertenze, una sotto l'altra, testuali della TABELLA 3 (solo quelle che gli avrò ceccato da un elenco)
3) Poi tutte le configurazioni di PC (specificando le componenti), elencate in quest'ordine:

PC 1 - configurazione MEDIA:
scheda madre XXXX
CPU XXXX
8 GB di RAM...
ecc....

PC 2 - configurazione MEDIA:
scheda madre YYYY
CPU YYYYY
8 GB di RAM....
ecc....

e così via PC 3, 4 e 5 a configurazione MEDIA.

poi:

PC 1 - configurazione BASE:
dddd
dddd
dddd
dddd

PC 2 - configurazione bASE:
yyyy
yyyyd
dddd

poi così le altre configurazioni, sempre in blocchi di 5.

6b) IMPORTANTE: devo poter assegnare delle etichette a tutti i componenti per ASSOCIARLE alle diverse configurazioni.
Cioè, ad esempio, se io voglio che NON SCELGA MAI hard disks da 5400 rpm per le configurazioni EXCLUSIVE, ADVANCED e MEDIE, ma solo per quelle BASE, io devo poter inserire una "etichetta" o valore a TUTTE LE RIGHE della TABELLONA1 aventi gli hard disk da 5400 rpm, in modo tale che le "PESCHI" e le inserisca SOLO PER LE CONFIGURAZIONI BASE.
Oppure, meglio ancora, per ogni RIGO della TABELLONA 1, devo potergli indicare in QUALI CONFIGURAZIONI le può inserire.
Così, ad esempio, in tutte le righe con gli HDD da 7200 rpm, io gli dico che me li può inserire nelle configurazioni:
MEDIE
ADVANCED

Tutte le righe con i SSD gli dico che può inserire solo nelle configurazioni:
ADVANCED
EXCLUSIVE

Tutte le righe con gli HDD da 5400 rpm gli dico che può inserirle solo nelle configurazioni:
BASE

e così via...

7) Infine, il programmino, leggendo i valori della TABELLONA 1, mi deve poter indicare, a parte, in un altro stampato/file un RIEPILOGO delle caratteristiche NUMERICHE di tutte le configurazioni PC (cioè 5 x 4 = 20 configurazioni) inserite nello stampato principale.
Ad esempio:
Configurazione PC 1 di tipo MEDIO:
RAM: 8 GB
HDD: 500 GB
VRAM: 2 GB

con infine una voce TOTALE che debba poter contenere una FORMULA matematica, cioè mi deve esprimere un PUNTEGGIO TOTALE.
Ad esempio: io associo alla memoria video DDR3 un punteggio di 2 e alla memoria video GDDR5 un punteggio di 3.
Il punteggio totale è dato dai GB di memoria video x il punteggio associato al TIPO di memoria. Quindi 2 GB x 2 = 4.
Poi stessa cosa per la RAM: DDR punteggio 1. DDR2 punteggio 2. DDR3 punteggio 3. Totale: 8 GB x 3 = 24.
Stessa cosa HDD: HDD 5400 rpm punteggio 1. HDD 7200 rpm punteggio 2. SSD punteggio 3. Totale: 500 GB x 2 = 1000
Quindi devo poter avere l'elenco dei PUNTEGGI di ogni singolo componente:
4
24
1000
e il PUNTEGGIO TOTALE di ogni singola configurazione: 1028.


RIASSUNTO FINALE:


Alla fine avrò un elaborato/stampato pronto costituito da questi componenti:

1) Avvertenze generali della TABELLA 2 (escluse quelle ceccate)
2) Avvertenze generali della TABELLA 3 (solo quelle ceccate)
3) Elenco delle configurazioni PC elaborate casualmente MA rispettando i criteri che gli avrò stabilito (cioè esclusi i componenti ceccati da un elenco di esclusione).
Questi criteri sono i seguenti:
- escludere IN TOTO dei componenti ceccati da un elenco (elenco che deve essere completo, ovviamente)
- escludere alcuni componenti solo da alcune configurazioni, in base a criteri fissi prestabiliti (es: gli hdd da 5400 rpm esclusi dalle configurazioni ADVANCED)
- elencare 5 configurazioni per ognuna delle 4 categorie (MEDIE, BASE, EXCLUSIVE, ADVANCED), indicandole in quest'ordine:
* prima 5 configurazioni MEDIE una sotto l'altra, separate da 3 invii accapo e con un titolo generale CONFIGURAZIONI MEDIE
* poi una interruzione di pagnina
* poi un titolo generale CONFIGURAZIONI BASE
* poi 5 configurazioni BASE una sotto l'altra, separate da 3 invii accapo
* eccetera eccetera....

Ah, ovviamente ogni SINGOLA configurazione deve avere il suo titoletto magari in grassetto:

Configurazione Media 1:
RAM....
HDD...
SVGA...

Configurazione Media 2:
RAM...
HDD....
SVGA...

ecc...

GRAZIE!
 

fredperry

Nuovo Utente
18
6
Premetto che non conosco bene le funzioni avanzate di excel, quindi non so dirti se sia possibile coprire tutte le funzionalità solo con excel. Da come descrivi i "requisiti" io avrei modellato un database, per definire sia i dati che le regole(per esempio quali componenti sono compatibili tra di loro oppure quali componenti sono ammessi per una configurazione media ecc.) . Un abbozzo di modello so trovi qui di seguito.

ModelloDBConfigurazioniPC.png

Ripeto non conosco bene ne excel, ne access però credo che esista un integrazione tra i due, quindi può darsi che tu possa definire il db con access e accedervi da excel, inoltre per automatizzare le scelte dell'hardware non so se excel abbia i costrutti per eseguire la logica applicativa necessaria.Se invece lo vuoi sviluppare come applicazione, allora devi scegliere che tipo di applicazione vuoi fare es. applicaizone desktop o web, che tipo di linguaggio usare (o quale conosci meglio), quali esigenze particolari hai(per esempio se i file excel ti rimangono necessari e quindi utilizzare delle librerie per leggerli e generarli ecc.).Sicuramente la seconda soluzione è più complessa e richiede più tempo.
 
  • Mi piace
Reazioni: AriesMu

muds

Nuovo Utente
53
5
Da programmatore ti posso solo dire che una problematica del genere necessità di un'analisi tecnica e di un bel po' di ore di programmazione.
Non è una cosa semplice e probabilmente excel non basta. occorre modellare un database con Access e sviluppare un programma Visual Basic (ovviamente conoscendolo bene e avendo delle basi di programmazione)
 

AriesMu

Utente Attivo
113
5
CPU
Intel Pentium E2200
Scheda Madre
ECS G31T-M7 - socket 775
HDD
Disco1: Maxtor STM3160215A 160 GB (OS + dati) *** Disco2: Maxtor STM3250310AS - 250 GB (Backup)
RAM
2x1 GB DDR2 PC2-6400 400 MHz (DDR2 800)
GPU
NVidia GeForce 8400 GS 512 MB
Audio
Via High Definition Audio
Monitor
Asus VW196
PSU
?
Case
Midtower
OS
Windows XP Professional 32 bit
Hey vi ringrazio di cuore per l'aiuto.
Grazie Fredperry.
E muds, hai ragione: infatti ci ho rinunciato da tempo.
 

roxnad94

Utente Èlite
3,279
579
PSU
XFX Pro series 650W
Case
Aerocool Xpredator Evil black
OS
Windows 7 Professional
io so che con un file di excel, se salvi al tabella come file di testo (in cui la tabella è divisa da un simbolo fisso, come ad esempio una virgola, e quando va a capo, vuol dire una nuova riga della tabella), poi per aprirlo e lavorarci su con python, è davvero facile, importi il file e ti crei 1 o piu dizionari.. e una votla che hai tutti i valori della tabella "catalogati" ci fai quello che ti pare a seconda delle tue esigenze



ps: so che con altri linguaggi puo essere molto complicato, ma in python sono poche righe di codice
 
  • Mi piace
Reazioni: AriesMu

AriesMu

Utente Attivo
113
5
CPU
Intel Pentium E2200
Scheda Madre
ECS G31T-M7 - socket 775
HDD
Disco1: Maxtor STM3160215A 160 GB (OS + dati) *** Disco2: Maxtor STM3250310AS - 250 GB (Backup)
RAM
2x1 GB DDR2 PC2-6400 400 MHz (DDR2 800)
GPU
NVidia GeForce 8400 GS 512 MB
Audio
Via High Definition Audio
Monitor
Asus VW196
PSU
?
Case
Midtower
OS
Windows XP Professional 32 bit
Grazie Roxnad! In un periodo un pò "calmo" con gli impegni mi ci metterò....
ottimo suggerimento!
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili