[Excel] tabel opsplitsen naar producttype *

Pagina: 1
Acties:

  • coachmans
  • Registratie: Januari 2004
  • Laatst online: 21-08 22:52
Ik heb hier op tweakers al gezocht, maar kan niet echt info vinden.
Ik heb een tabel zoals hieronder:

Datum Ordernr ProductA ProductB
1-8 1234 1500 1750
3-8 1345 1600
5-8 1456 1800

Nu wil ik hier een overzicht van maken in excel als volgt:
1-8 1234 ProductA 1500
1-8 1234 ProductB 1750
3-8 1345 ProductA 1600
5-8 1456 ProductB 1800

Is dit met een formule te ondervangen?

Verwijderd

euh? Wtf bedoel je? :?

  • freggell
  • Registratie: Maart 2005
  • Laatst online: 06-08-2024
coachmans schreef op donderdag 18 augustus 2005 @ 12:30:
Ik heb hier op tweakers al gezocht, maar kan niet echt info vinden.
Ik heb een tabel zoals hieronder:

Datum Ordernr ProductA ProductB
1-8 1234 1500 1750
3-8 1345 1600
5-8 1456 1800

Nu wil ik hier een overzicht van maken in excel als volgt:
1-8 1234 ProductA 1500
1-8 1234 ProductB 1750
3-8 1345 ProductA 1600
5-8 1456 ProductB 1800

Is dit met een formule te ondervangen?
Direct antwoord op je vraag is: Ja.

En misschien handig het de volgende keer in het goede subforum te vragen, mogelijk erbij vermelden wat je geprobeerd hebt.

Zo moeilijk is de formule niet, en had je vermoedelijk met zoeken naar excel FAQ/tutorial op internet ook zelf kunnen bouwen.

  • coachmans
  • Registratie: Januari 2004
  • Laatst online: 21-08 22:52
Als ik het zelf had kunnen bouwen, dan had ik het wel gedaan en had ik het niet gevraagd.

  • OMD
  • Registratie: September 2003
  • Laatst online: 22:50

OMD

coachmans schreef op donderdag 18 augustus 2005 @ 13:14:
Als ik het zelf had kunnen bouwen, dan had ik het wel gedaan en had ik het niet gevraagd.
foutieve interpretatie, hij bedoelde door te zoeken in het algemeen naar FAQ's had je het zelf kunnen bouwen ;)

R7 5800X3D // Dark Rock rock 4 // MSI B450 Tomahawk Max // 32Gb Corsair Vengeance // BeQuiet Pure Base 500FX // RX9070 Hellhound


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

coachmans schreef op donderdag 18 augustus 2005 @ 13:14:
Als ik het zelf had kunnen bouwen, dan had ik het wel gedaan en had ik het niet gevraagd.
Dit is idd niet direct met een formule na te bouwen. Je zou het kunnen doen door middel van een aangepast macro (in VBA), weet niet hoe je kennis daaromtrent is?

Daarnaast horen dit soort vragen in Officesuites en -software. Je kan via Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/icon_hand.gif een move-request indienen :)

[ Voor 8% gewijzigd door BtM909 op 18-08-2005 13:19 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

freggell schreef op donderdag 18 augustus 2005 @ 12:57:
[...]


Direct antwoord op je vraag is: Ja.

En misschien handig het de volgende keer in het goede subforum te vragen, mogelijk erbij vermelden wat je geprobeerd hebt.

Zo moeilijk is de formule niet, en had je vermoedelijk met zoeken naar excel FAQ/tutorial op internet ook zelf kunnen bouwen.
Ik ben benieuwd hoe jouw formule er dan uit komt te zien :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • freggell
  • Registratie: Maart 2005
  • Laatst online: 06-08-2024
BtM909 schreef op donderdag 18 augustus 2005 @ 13:22:
[...]

Ik ben benieuwd hoe jouw formule er dan uit komt te zien :)
Euh zoals jouw macro denk ik.
Ik blijf vergeten dat er verschil is tussen formules en macro's 8)7 . ben gewend redelijk veel in VBA te doen, en dan voornamelijk zelf te programmeren.

dus ik zeg dan ja is mogelijk, en met het zoeken naar een oplossing was de TS vermoedelijk de oplossing van macro ook tegengekomen.

  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Excel = Office. Daar hebben we een apart forum voor dus ik verplaats je topic:
Software Algemeen > Officesuites en -software :)

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Het is veel eenvoudiger om dat met Access (of middels een andere DB) ipv. Excel te doen.

Maar goed. Een manier is met wat simpele IF/ALS statements checken of de derde resp. vierde kolom > 0 en dan de beschrijving en de aantallen plaatsen. Alle rijen verbergen die 0 zijn en klaar. Maar dat is lelijk en omslachtig. Een simpel VBA script is inderdaad handiger. Met een of twee FOR loopjes ben je er wel.

offtopic:
En nee je zult bijna nooit een expliciet antwoord vinden in search, Google, tutorial of FAQ. Daar zijn veel te veel mogelijkheden voor. Maar zeggen dat het in een FAQ staat is dan ook een beetje gevaarlijk (zeker als je Excel en VBA door elkaar haalt: soms is VBA gebruiken niet handig wegens de terechte beveiligingen), al is inderdaad met wat lees- en oefenwerk het begrijpen van Excel niet zo moeilijk :P

Ik pas trouwens de topictitel nog wat aan. 'Formule excel, lastig' zegt helemaal niets over de vraag en lastig is een relatief iets.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • coachmans
  • Registratie: Januari 2004
  • Laatst online: 21-08 22:52
Van VBA heb ik niet veel kaas gegeten nee, dus dat zal lastig worden voor me dan...tenzij iemand een voorbeeld voor me heeft waarmee ik verder zou kunnen...

  • freggell
  • Registratie: Maart 2005
  • Laatst online: 06-08-2024
F_J_K schreef op donderdag 18 augustus 2005 @ 13:43:
Het is veel eenvoudiger om dat met Access (of middels een andere DB) ipv. Excel te doen.

Maar goed. Een manier is met wat simpele IF/ALS statements checken of de derde resp. vierde kolom > 0 en dan de beschrijving en de aantallen plaatsen. Alle rijen verbergen die 0 zijn en klaar. Maar dat is lelijk en omslachtig. Een simpel VBA script is inderdaad handiger. Met een of twee FOR loopjes ben je er wel.

offtopic:
En nee je zult bijna nooit een expliciet antwoord vinden in search, Google, tutorial of FAQ. Daar zijn veel te veel mogelijkheden voor. Maar zeggen dat het in een FAQ staat is dan ook een beetje gevaarlijk (zeker als je Excel en VBA door elkaar haalt: soms is VBA gebruiken niet handig wegens de terechte beveiligingen), al is inderdaad met wat lees- en oefenwerk het begrijpen van Excel niet zo moeilijk :P

Ik pas trouwens de topictitel nog wat aan. 'Formule excel, lastig' zegt helemaal niets over de vraag en lastig is een relatief iets.
Krijg het idee dat ik mijn posts duidelijker moet maken.
Verwees naar VBA ivm de verwarring van formule en Macro (voor mij is een macro een formule/functie)

En dat gedeelte over access of een andere DB. Is natuurlijk afhankelijk van hoeveel mensen ermee moeten werken en hoe veel/vaak er gebruik van zal worden gemaakt.
Is dit iets wat 1 keer per week word ingevuld, en niet erg groot word zou ik gaan voor excel.

Anders toch echt een mooi gebouwde DB kan uitkomst brengen, en werkt op dat punt ook veel makkelijker (als in minder invoeren.)

  • coachmans
  • Registratie: Januari 2004
  • Laatst online: 21-08 22:52
Dit wordt maandelijks gebruikt en is voor ongeveer 20 regels...

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

WTF 20 regels :/

Had ik dit werkend voorbeeldje maar beter niet elkaar kunnen knallen ;)

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Dim iTotalRows, iTotalCols As Integer
Dim strDate, strOrder, strProdA, strProdB As String
Dim bProdA, bProdB As Boolean

Sub ChangeOrderOrder()
' Change Order Order :P © 2005 BtM909

    Sheets(2).Select
    Cells.Delete
    Range("A1").Select

    Sheets(1).Select
    Range("A1").Select

    iTotalRows = ActiveCell.End(xlDown).Row - 1

    For i = 1 To iTotalRows
        bProdA = False
        bProdB = False

        Sheets(1).Select
        ActiveCell.Offset(1, 0).Select
    
        strDate = ActiveCell.Value
        strOrder = ActiveCell.Offset(0, 1).Value
        strProdA = ActiveCell.Offset(0, 2).Value
        strProdB = ActiveCell.Offset(0, 3).Value
    
        If strProdA <> "" Then
            bProdA = True
        End If
    
        If strProdB <> "" Then
            bProdB = True
        End If
    
        Sheets(2).Select

        If bProdA = True Or bProdB = True Then
            ActiveCell.Value = strDate
            ActiveCell.Offset(0, 1).Value = strOrder
            ActiveCell.Offset(0, 2).Select
        
            If bProdA = True Then
                ActiveCell.Value = "Product A"
                ActiveCell.Offset(0, 1).Value = strProdA
            Else
                ActiveCell.Value = "Product B"
                ActiveCell.Offset(0, 1).Value = strProdB
            End If
            
            If bProdA = True And bProdB = True Then
                ActiveCell.Offset(1, -2).Value = strDate
                ActiveCell.Offset(1, -1).Value = strOrder
                ActiveCell.Offset(1, 0).Value = "Product B"
                ActiveCell.Offset(1, 1).Value = strProdB
                ActiveCell.Offset(2, -2).Select
            Else
                ActiveCell.Offset(1, -2).Select
            End If

        End If

    Next i

End Sub


Zorg dat je eerste sheet je bron-bestand is, Het tweede sheet wordt je resultaat geplakt. Dan mag je zelf even uitzoeken hoe je module toevoegt :)

Als je hier op GoT zoekt, dan kom je waarschijnlijk een post van mij tegen hoe je dat toe kan voegen binnen de VBA omgeving van Office ;)

[ Voor 5% gewijzigd door BtM909 op 18-08-2005 15:31 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • coachmans
  • Registratie: Januari 2004
  • Laatst online: 21-08 22:52
Dit werkt inderdaad prima...maar dit heeft betrekking op 2 producten..:( en mijn overzicht heeft 8 producten. Is het makkelijk om de code daarop aan te passen?
Ik heb het wel geprobeerd, maar bij de uitvoer loop ik vast omdat je daar zegt if A = true dan... else B...
Maar ja nu heb je A tot en met H dus dan wordt het wat lastiger dit te zeggen en daar kom ik dan ook niet uit.
Heb je daar nog een idee voor?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Voor meer producten kan je een paar extra IF statements toevoegen (IF .. Then .. ElseIf ... etc. maar dat wordt erg onoverzichtelijk. Mooier is dan gaan werken met 'Select Case' (zie ook hier F1 voor een uitleg en een voorbeeld) maar met het uitbreiden van de IF's zou je er ook moeten komen :)

Als je vastloopt: post dan even je eigen poging en geef even aan waarom je vastloopt. Dan kunnen we aangeven in welke richting je vastloopt :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1