2012-04-13 5 views
0

Helo를 선택하십시오.LibreOffice 스프레드 시트 : 특정 필터가있는 임의의 셀

  • 테이블 하나에

    나는 내가 특정 상태로 항목을 LibreOffice와 스프레드 시트에 다음과 같은 시나리오를 가지고있다

예 : 내가 가지고있는 다른 테이블에서

id state  name 
---------------------------- 
1 open  OpenState 
2 closed ClosedState 
3 resolved ResolvedState 
... 
  • 임의의 프로젝트 목록 State-I 첫 번째 테이블에서 D. 그건 잘 작동합니다.

예 :은 :

id state ProjectName 
------------------------ 
1 1  Proj_1 
2 1  Proj_2 
3 2  Proj_3 
... 
  • 나는 세 번째 테이블에 문제가있다. 이 표에서 테스트 데이터를 생성해야합니다. 항목에는 첫 번째 테이블의 상태도 있습니다. 지금은 항목 상태로 같은 상태가 그 두 번째 테이블에서 각 항목에게 임의 프로젝트를 할당 할 LibreOffice와 기능을 필요

예 :

id state project EntryName 
-------------------------------- 
1 1  2   Entry_1 
2 1  1   Entry_2 
3 1  1   Entry_3 
4 2  3   Entry_4 
... 

답변

0

IMO이 작업을 초과 캘크의 가능성. 가장 큰 문제점은 행의 하위 집합 (동일한 상태를 공유하는 프로젝트)을 반환하는 수식이없는 것 같습니다. 이렇게하려면 필터링이 필요하지만 직접 필터링을 적용 할 방법이없는 것 같습니다. 따라서 각 프로젝트의 상태를 유지하는 두 번째 테이블을 준비하지 않으면 작동하지 않습니다.

따라서 가장 쉬운 해결책은 동일한 상태의 프로젝트를 나열하는 3 개의 영구 필터 결과를 만드는 것입니다. 이러한 필터 결과를 사용하면 INDEXRANDBETWEEN 함수를 사용하여 임의로 프로젝트 ID 중 하나를 선택할 수 있습니다.

프로젝트를 필터링하여이 시트로 이어질 수

Projects

라는 범위로 정의 세 필터 결과들 각각과 (ProjState1 : $E$1:$G$4 등)를, 다음 수식을 사용할 수

=IF(($B2=1);INDEX(ProjState1;RANDBETWEEN(2;ROWS(ProjState1));1) ;IF(($B2=2);INDEX(ProjState2;RANDBETWEEN(2;ROWS(ProjState2));1);INDEX(ProjState3;RANDBETWEEN(2;ROWS(ProjState3));1))) 

RANDBETWEEN은 두 정수 사이의 난수를 반환합니다. 첫 번째는 2입니다 (머리글을 범위의 행 1로 포함했기 때문에). 두 번째는 범위의 마지막 행입니다. INDEX는 임의로 반환 된 행의 값을 선택합니다. 이 "항목"테이블

=IF(
    ($B2=1); 
    INDEX(
     ProjState1; 
     RANDBETWEEN(
      2; 
      ROWS(ProjState1) 
     ); 
     1 
    ); 
    IF(
     ($B2=2); 
     INDEX(ProjState2;RANDBETWEEN(2;ROWS(ProjState2));1); 
     INDEX(ProjState3;RANDBETWEEN(2;ROWS(ProjState3));1) 
    ) 
) 

:

여러 행에 최대 분할

솔루션에 대한

Entries

+0

감사합니다. 나는 그것을 시도 할 것이다. – WebDucer

관련 문제