Creare tabella combinazioni
-
- Messaggi: 13
- Iscritto il: domenica 16 marzo 2014, 4:32
Creare tabella combinazioni
Salve a tutti, ho una domanda un po particolare da fare. Io in pratica, ad esempio, ho 3 numeri e vorrei sapere se c'è qualche sistema che mi dia tutte le possibili combinazioni di questi 3 numeri.
Provo a fare un empio pratico per potermi spiegare meglio:
Diciamo che in 3 diverse celle scrivo
1
2
3
Esiste un calcolo che mi dia le combinazioni di questi numeri che dovrebbero essere:
12
13
123
132
21
23
213
231
31
32
312
321
Grazie a tutti.
Buona giornata.
Provo a fare un empio pratico per potermi spiegare meglio:
Diciamo che in 3 diverse celle scrivo
1
2
3
Esiste un calcolo che mi dia le combinazioni di questi numeri che dovrebbero essere:
12
13
123
132
21
23
213
231
31
32
312
321
Grazie a tutti.
Buona giornata.
OpenOffice 4.0.1 su Windows 7
Re: Creare tabella combinazioni
Avrai sempre 3 numeri ? qual'è la situazione reale ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 13
- Iscritto il: domenica 16 marzo 2014, 4:32
Re: Creare tabella combinazioni
Io in pratica di numeri ne ho diversi, ma ho fatto l'esempio solo con quei 3 numeri per un semplice motivo pratico per poter far capire il risultato che mi serviva alla fine.
Spero di essere stato più chiaro e spero in un vostro aiuto.
Grazie.
Spero di essere stato più chiaro e spero in un vostro aiuto.
Grazie.
OpenOffice 4.0.1 su Windows 7
Re: Creare tabella combinazioni
dispongo di una soluzione in vba e non è facile convertirla in starbasic, se puoi provala su excel, i dati devono stare in colonna A a partire da A3
Codice: Seleziona tutto
Dim rng As Range
Dim Buffer() As String
Dim BufferPtr As Long
Dim RowNum As Long, ColNum As Long
Sub ListPermutations()
Dim PopSize As Integer
Dim SetSize As Integer
Dim Which As String
Dim N As Double
Const BufferSize As Long = 1000
RowNum = 3
ColNum = 3
Set rng = Range(Range("A3"), Cells(Rows.Count, "A").End(xlUp))
PopSize = rng.Cells.Count
For SetSize = 2 To PopSize
ReDim Buffer(1 To BufferSize) As String
BufferPtr = 0
AddPermutation PopSize, SetSize
vAllItems = 0
Next
End Sub
Private Sub AddPermutation(Optional PopSize As Integer = 0, _
Optional SetSize As Integer = 0, _
Optional NextMember As Integer = 0)
Static iPopSize As Integer
Static iSetSize As Integer
Static SetMembers() As Integer
Static Used() As Integer
Dim i As Integer
If PopSize <> 0 Then
iPopSize = PopSize
iSetSize = SetSize
ReDim SetMembers(1 To iSetSize) As Integer
ReDim Used(1 To iPopSize) As Integer
NextMember = 1
End If
For i = 1 To iPopSize
If Used(i) = 0 Then
SetMembers(NextMember) = i
If NextMember <> iSetSize Then
Used(i) = True
AddPermutation , , NextMember + 1
Used(i) = False
Else
SavePermutation SetMembers()
End If
End If
Next i
If NextMember = 1 Then
SavePermutation SetMembers(), True
Erase SetMembers
Erase Used
End If
End Sub
Private Sub SavePermutation(ItemsChosen() As Integer, _
Optional FlushBuffer As Boolean = False)
Dim i As Integer, sValue As String
If FlushBuffer = True Or BufferPtr = UBound(Buffer()) Then
If BufferPtr > 0 Then
If (RowNum + BufferPtr - 1) > Rows.Count Then
RowNum = 1
ColNum = ColNum + 1
If ColNum > 256 Then Exit Sub
End If
Cells(RowNum, ColNum).Resize(BufferPtr, 1).Value _
= Application.WorksheetFunction.Transpose(Buffer())
RowNum = RowNum + BufferPtr
End If
BufferPtr = 0
If FlushBuffer = True Then
Erase Buffer
Exit Sub
Else
ReDim Buffer(1 To UBound(Buffer))
End If
End If
'construct the next set
For i = 1 To UBound(ItemsChosen)
sValue = sValue & ", " & rng(ItemsChosen(i), 1)
Next i
'and save it in the buffer
BufferPtr = BufferPtr + 1
Buffer(BufferPtr) = Mid$(sValue, 3)
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 13
- Iscritto il: domenica 16 marzo 2014, 4:32
Re: Creare tabella combinazioni
Salve, ringrazio per la risposta ma voglio chiarire che non sono proprio un esperto informatico e non ho capito molto (per non dire niente) di quello che mi è stato scritto.
Chiedo pertanto una cortesia, se gentilmente mi potreste allegare un file già impostato dove io debba solo inserire i numeri.
Grazie ancora.
Chiedo pertanto una cortesia, se gentilmente mi potreste allegare un file già impostato dove io debba solo inserire i numeri.
Grazie ancora.
OpenOffice 4.0.1 su Windows 7
Re: Creare tabella combinazioni
la soluzione sopra riportata funziona tramite macro soltanto su excel, ne ho trovata un'altra che ti dovrebbe andare bene, vedi allegato.
Anche questa contiene una macro, quindi devi abilitare le macro
Anche questa contiene una macro, quindi devi abilitare le macro
- Allegati
-
- permutazioni.ods
- (11.95 KiB) Scaricato 1140 volte
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 13
- Iscritto il: domenica 16 marzo 2014, 4:32
Re: Creare tabella combinazioni
Ringrazio per la celere risposta, ho scaricato l'allegato e attivato le macro ma non riesco a farlo funzionare. Poteri avere una spiegazione più dettagliata su come fare??
Grazie mille per l'interessamento.
Grazie mille per l'interessamento.
OpenOffice 4.0.1 su Windows 7
Re: Creare tabella combinazioni
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta