Toon posts:

[Excel] Lijst probleem + gemiddelde *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb al ff gezocht in de help van Excel, maar ik kon het niet vinden:

Ik heb drie sheets met een verschillend aantal personen. Op sheet 1 staan alle personen vermeld. Op sheet 2 missen een aantal en op sheet 3 ook. Alleen in sheet 2 kan bepaald worden of de genoemde personen aan een bepaald criterium voldoen. Dit wordt dan een kolom met true en false.

Nu zou ik graag twee dingen willen:
1 Dat in sheet 1 en 3 bij de juiste persoon komt te staan of hij aan de criteria heeft voldaan. Let er wel op dat: De namen niet op dezelfde volgorde staan. En een aantal personen staan wel op sheet 1 en niet op sheet 2. De personen die dit betreft moeten allemaal het label false krijgen, die hebben dus niet aan de criteria voldaan.
2 Daarnaast zou ik graag de gemiddeldes willen hebben die horen bij alleen de groep met false achter zijn naam. En ook het gemiddelde van de groep met true achter zijn naam.

Zou dit kunnen? en hoe? Ik krijg het namelijk niet voor elkaar... :(

(evt kan ik wel een voorbeeld excel-bestand sturen)

  • brokenp
  • Registratie: December 2001
  • Laatst online: 16:39
Is het niet mogelijk om alle worksheets dezelfde persoon-volgorde te geven?
Anders denk ik dat je met VBA aan de slag moet

Verwijderd

Topicstarter
Op woensdag 13 februari 2002 22:12 schreef brokenp het volgende:
Is het niet mogelijk om alle worksheets dezelfde persoon-volgorde te geven?
Anders denk ik dat je met VBA aan de slag moet
nee, dat gaat helaas niet. de bladen worden automatisch gemaakt door een programmatje...

  • MIster X
  • Registratie: November 2001
  • Laatst online: 01-01 23:41
Heb je niet zo veel programmeerkennis, neem dan gewoon een macro op waarmee alle bladen gesorteerd worden. Met de Excel-Lookup-functie kun je vervolgens verder de info bij elkaar zoeken.

Als je wat VBA-ervaring hebt, zou ik echter zeker een stukje programmeren. Dat maakt het zoveel simpeler...

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Uit de help file van excel:
You can use the INDEX and MATCH functions together to find a value in a list based on a row or column label, or both labels. INDEX returns a reference to a cell at the intersection of a particular row and column within a range, and MATCH finds the relative position of a cell within a range, based on a value you want to look up. In combination, these functions return a value based on either a row or column label.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Hmm, dat 1e wordt dan dus vrij ingewikkeld zie ik al wel. Ik probeer er wel uit te komen. En dat 2e? Weet iemand hoe dat kan?

  • MIster X
  • Registratie: November 2001
  • Laatst online: 01-01 23:41
Op donderdag 14 februari 2002 09:12 schreef Driver-x het volgende:
Hmm, dat 1e wordt dan dus vrij ingewikkeld zie ik al wel. Ik probeer er wel uit te komen. En dat 2e? Weet iemand hoe dat kan?
Ik wil er wel ff naar kijken. Op zich is het niet zo moeilijk. Ik kan waarschijnlijk zelfs gewoon een stukje copypasten uit andere Excel-bestanden. Mail me maar...

  • MIster X
  • Registratie: November 2001
  • Laatst online: 01-01 23:41
Voor de volledigheid ('k heb de poster al z'n sheet geretourneerd) :
code:
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
Sub FindTrueFalse()

  Application.ScreenUpdating = False
  
  On Error GoTo Errorhandler
  
  Dim iLastRowSource As Integer
  Dim iLastRowDestination As Integer
  Dim iTrueFalseColumn As Integer
  Dim i As Integer
  Dim j As Integer
  Dim strSheetDestinationName As String
  Dim strSheetSourceName As String
  Dim strNameSearch As String
  Dim strNameFound As String
  Dim strNameValueFound As String
  
  strSheetSourceName = "Selectie"
  strSheetDestinationName = Application.ActiveSheet.Name
  
  iTrueFalseColumn = 4
  iLastRowSource = Sheets(strSheetSourceName).Range("a1").End(xlDown).Row
  iLastRowDestination = Sheets(strSheetDestinationName).Range("a1").End(xlDown).Row
    
    For i = 2 To iLastRowDestination
    Sheets(strSheetDestinationName).Cells(i, iTrueFalseColumn) = ""
    For j = 2 To iLastRowSource
      strNameSearch = Sheets(strSheetDestinationName).Cells(i, 1)
      strNameFound = Sheets(strSheetSourceName).Cells(j, 1)
        If strNameSearch = strNameFound Then
        strNameValueFound = Sheets(strSheetSourceName).Cells(j, iTrueFalseColumn)
        If strNameValueFound = "True" Or strNameValueFound = "False" Then
          Sheets(strSheetDestinationName).Cells(i, iTrueFalseColumn) = strNameValueFound
        End If
        j = iLastRowSource
      End If
    Next j
    If Sheets(strSheetDestinationName).Cells(i, iTrueFalseColumn) = "" Then
      Sheets(strSheetDestinationName).Cells(i, iTrueFalseColumn) = "False"
    End If
    Next i
  
  Application.ScreenUpdating = True
  
  Exit Sub
Errorhandler:
  Application.ScreenUpdating = True

End Sub

(wat ben ik toch aardig :))
Ja, ik weet dat ik veel variabelen gebruik...

Edit:
Voor de gemiddelden overigens gewoon sumif(...) gedeeld door countif(...).

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op donderdag 14 februari 2002 17:21 schreef Driver-x het volgende:
Schop! :)
<ultralaat>
Hoi,
[topic=327241/1/25]
Policy mbt het omhoogschoppen van threads. Wacht minstens 24 uur voor je je topic omhoog schopt. Doe dit dan ook alleen met een zinnige opmerking en dus niet met "Waarom antwoord er nou niemand" nadat je 5 minuten geen antwoord hebt gehad. Sommigen van ons hebben een leven :+
tnx :)
</ultralaat>

Doet iets met Cloud (MS/IBM)

Pagina: 1