Forum Discussion

mariasolhoej's avatar
mariasolhoej
Copper Contributor
Aug 05, 2020
Solved

Formula help :)

Hi everybody,

I am new here, and I really hope that you will be able to help me on this (Please find the excel file attached):

 

How do I make a formular that ensures that no employees are listed twice (or more) in each row?

And how do I - still "automatically" make en additional scheme showing the employees' names in the first row instead of the rooms? 

 

Thank you very much in advance. 🙂

 

Best wishes,

Maria S.

  • SergeiBaklan's avatar
    SergeiBaklan
    Aug 06, 2020

    mariasolhoej 

    Third question. Solution is bit straightforward, but perhaps works correctly.

    So, in Room Allowance sheet we keep matrix like this

    That's the only source for employee and room names, in all other places we reference on it.

     

    Next is Helper sheet (could be hided) where we keep combinations of all available periods and rooms and build for each such combination list of employees allowed to book the room.

     In C4

    =INDEX(Booking!$C$3:$O$3,1,INT((COLUMN()-COLUMN($B$5)-1)/COUNTA(Booking!$B$4:$B$10))+1)

    drag it to the right till error appears.

    In C5

    =INDEX(Booking!$B$4:$B$10,MOD((COLUMN()-COLUMN($B$5)-1),COUNTA(Booking!$B$4:$B$10))+1,1)

    and in C6

    =SORT(FILTER(
                  'Rooms allowance'!$B$3:$B$22,
                  (COUNTIF(INDEX(Booking!$C$4:$O$10,MATCH(C$5,Booking!$B$4:$B$10,0),0),'Rooms allowance'!$B$3:$B$22)=0)*
                  (INDEX('Rooms allowance'!$C$3:$O$22,0,XMATCH(C$4,'Rooms allowance'!$C$2:$O$2))="x")
    ))

    Drag them also to the right (or select the range and CTRL+R).

     

    Data validation for entire booking range

    is with formula

    =INDEX(Helper!$C$6:$CO$6,1,XMATCH(C$3&$B4,Helper!$C$4:$CO$4&Helper!$C$5:$CO$5))#

     

    Solution is very depends on number of employees, I assumed relatively small one.

    Another variant which I tried, without helper, doesn't work since data validation has 256 characters limit on formula length and now I don't see the way how to fit it.

29 Replies

  • SergeiBaklan's avatar
    SergeiBaklan
    Diamond Contributor

    mariasolhoej 

    If you are on Excel with dynamic arrays that could be done with helper ranges which could be created at any place of your workbook (better in separate sheet)

    Here

    starting from B12 make headers for the time as

    =TRANSPOSE($A$2:$A$8)

    In B13

    =SORT(FILTER($A$13:$A$32,COUNTIF(INDEX($B$2:$N$8,MATCH(B$12,$A$2:$A$8,0),0),$A$13:$A$32)=0))

    (it shows names are not assigned for that time) and drag it to the right.

     

    Select your entire range and add data validation to all cells as

    Formula is

    =INDEX($B$13:$H$13,0,ROW()-ROW($A$1))#

     

    As for the second question I didn't catch, could you please illustrate in file.

      • SergeiBaklan's avatar
        SergeiBaklan
        Diamond Contributor

        mariasolhoej 

        Maria,

        Second question - I see, thank you. For it you need list of rooms

        Formulas like

        =FILTER($A$50:$A$62,COUNTIF(INDEX($B$12:$U$18,MATCH(B$49,$A$12:$A$18,0),0),$A$50:$A$62)=0)

        Data validation

        =INDEX($B$50:$H$50,0,ROW()-ROW($A$11))#
  • NikolinoDE's avatar
    NikolinoDE
    Gold Contributor

    mariasolhoej 

     

    Please take a look at this proposal with data verification.
    the first row (B2: N2) has been made as an example.

     

    If you find this helpful, please mark it as "Best Answer" and as Like (click thumbs up), it will be beneficial to more Community members reading here.

     

    Nikolino

    I know I don't know anything (Socrates)

    • mariasolhoej's avatar
      mariasolhoej
      Copper Contributor

      Hi again, NikolinoDE ğŸ™‚

      Thank you very much, however, I don't read your suggestion in the attached file? 

      Would you mind attaching it again, using another filename?

      Thank you very much for your kind willingness.

      Best regards,

      Maria

  • NikolinoDE's avatar
    NikolinoDE
    Gold Contributor

    mariasolhoej 

     

    Here is a small example with conditional formatting.
    It is easiest for the user to see everything at a glance.

     

    If you find this helpful, please mark it as "Best Answer" and as Like (click thumbs up), it will be beneficial to more Community members reading here.

     

    Nikolino

    I know I don't know anything (Socrates)

    • mariasolhoej's avatar
      mariasolhoej
      Copper Contributor

      Hi NikolinoDE 

      Thanks for your reply. 🙂

      It was not excactly what I was looking for. I am more interested in a formular making the listing with no errors 🙂

      Best wishes,

      Maria

      • NikolinoDE's avatar
        NikolinoDE
        Gold Contributor
        in formula for each row
        =IF(MATCH(A13,$B2:$N2,0)=ROW(),"","double")

Resources