필터 자동 업데이트 126 P8 / 2014;

나는 3 년간의 데이터를 묘사하는 그래프와보고 싶은 데이터를 선택하는 옵션을 가지고있다. 그 해를 선택 취소하면 데이터를 # N / A로 변경하는 수식에 넣은 차트의 데이터를 가져옵니다. 그러나 그래프는 여전히 그 해를 보여줍니다. 그래야 그래프를 NA 옵션을 그래프로 나타내지 말아야하는 것으로 recoginze 할 수있는 방법이 있습니까?

내 데이터는 다음과 같이 보입니다.

기간 # orders # 주문
P6 / 2014; 281 74
P7 / 2014; 498 126
P8 / 2014; 589 132
P9 / 2014; 655 158
P10 / 2014; 679 161
P11 / 2014; 489 115
P12 / 2014; 574 129
P13 / 2014; 340 80
P1 / 2015; 615 225
P2 / 2015; 0 0
P3 / 2015; 0 0
P4 / 2015; 0 0
P5 / 2015; 0 0
P6 / 2015; 0 0
P7 / 2015; 0 0
P8 / 2015; 0 0
P9 / 2015; 0 0
P10 / 2015; 0 0
P11 / 2015; 0 0
P12 / 2015; 0 0
P13 / 2015; 0 0

2015가 선택되지 않은 경우 다음으로 전환합니다.

기간 # orders # 주문
P6 / 2014; 281 74
P7 / 2014; 498 126
P8 / 2014; 589 132
P9 / 2014; 655 158
P10 / 2014; 679 161
P11 / 2014; 489 115
P12 / 2014; 574 129
P13 / 2014; 340 80
P1 / 2015; # N / A # N / A
P2 / 2015; # N / A # N / A
P3 / 2015; # N / A # N / A
P4 / 2015; # N / A # N / A
P5 / 2015; # N / A # N / A
P6 / 2015; # N / A # N / A
P7 / 2015; # N / A # N / A
P8 / 2015; # N / A # N / A
P9 / 2015; # N / A # N / A
P10 / 2015; # N / A # N / A
P11 / 2015; # N / A # N / A
P12 / 2015; # N / A # N / A
P13 / 2015; # N / A # N / A

내가 그 분야에서 그 변화를 할 수있는 공식은; = IF ($ AY $ 13 = TRUE, $ J24, NA ())

그래서 저는이 모든 데이터에서 선택한 그래프가 2015 년 데이터에 데이터가없고 차트에 포함시키지 않기를 기대하고있었습니다.



답변

원본 데이터의 연도가 모두 있고 해당 연도의 값 또는 # N / A가있는 차트가 있다고 가정합니다. NA() 기능.
이 경우에도 여전히 데이터에 남아 있기 때문에 연도가 차트에 계속 표시됩니다. 원본 데이터의 연도가 완전히 제거되도록 주위를 변경해야합니다.
사용자가 다른 연도를 선택할 때 피벗 캐시를 새로 고치려면 약간의 VBA를 작성해야하지만 피벗 차트로이 작업을 수행 할 수 있습니다.
또한 수식과 동적 범위를 사용하여이 작업을 수행 할 수 있습니다. 타당성은 차트 데이터가 얼마나 크고 동적인지에 달려 있습니다. 해마다 요약을 보여 주면 쉽습니다. 수백 가지 데이터 포인트를 표시하는 경우 성 가시고 수 있습니다.
원하는 결과가 무엇인지에 대한 예를 추가하여 답변을 만들 수 있습니까? (귀하의 답변을 바탕으로이 답변을 업데이트하겠습니다.)


OP 업데이트를 기반으로 한 업데이트
Excel이 삭제되지 않습니다. NA() 그래프에 아무 것도 없더라도 그래프를 볼 수 있기 때문에 텍스트가있는 것과 같습니다. 축에는 모든 마침표가 표시되므로 축에 배치 할 레이블이 있고 처리 할 수없는 데이터는 건너 뜁니다. Excel이 우리가 원하는 데이터 만 보도록 변경해야합니다.

  • 문제 1) 특정 연도를 도표화하지 않음
  • 문제 2) 앞으로 오는 것을 도표로 그린다. 그 년. (E.G. 차트 2014 및 2016 만)

문제 1에 불과하다면 몇 가지를 설정할 수 있습니다. 동적 명명 된 범위 차트 소스로 설정하십시오. 그러나 문제 2 때문에 중간 테이블을 먼저 설정해야하며 그때 명명 된 범위를 만듭니다.

첫째로, 이것이 조금 조밀 해지면 나는 사과한다. 나는 종종 너무 장황하다는 비난을 받는다. 나는 정말 여기에 파일을 업로드 할 수 있으면 좋겠다.

1 단계

여기 내 출발점의 CSV 버전이 있습니다. 내 데이터가 범위 내에 있습니다. A1:D35 (필자는 앞에 열을 추가했다. Order – 나중에 도움이 될 것이며 데이터를 2016 년으로 확대했습니다.)

주문, 기간, 주문, 배송
1, P6 / 2014,281,74
2, P7 / 2014,498,126
3, P8 / 2014,589,132
4, P9 / 2014,655,158
5, P10 / 2014,679,161
6, P11 / 2014,489,115
7, P12 / 2014,574,129
8, P13 / 2014,340,80
9, P1 / 2015,615,225
10, P2 / 2015,0,0
11, P3 / 2015,0,0
12, P4 / 2015,0,0
13, P5 / 2015,0,0
14, P6 / 2015,0,0
15, P7 / 2015,0,0
16, P8 / 2015,0,0
17, P9 / 2015,0,0
18, P10 / 2015,0,0
19, P11 / 2015,0,0
20, P12 / 2015,0,0
21, P13 / 2015,0,0
22, P1 / 2016,0,0
23, P2 / 2016,0,0
24, P3 / 2016,0,0
25, P4 / 2016,0,0
26, P5 / 2016,0,0
27, P6 / 2016,0,0
28, P7 / 2016,0,0
29, P8 / 2016,0,0
30, P9 / 2016,0,0
31, P10 / 2016,0,0
32, P11 / 2016,0,0
33, P12 / 2016,0,0
34, P13 / 2016,0,0

2 단계

임시 표를 다음에 추가하십시오. NA() 무엇이 필요하지 않습니다. 1 단계와 동일 할 수 있습니다. 제 1 단계를 원시 데이터로 사용 했으므로이 다른 단계가 필요합니다. 내 데이터가 범위 내에 있습니다. F1:I35. 내가 2015 년을 결심했을 때이 CSV처럼 보였습니다.

주문, 기간, 주문, 배송
1, P6 / 2014,281,74
2, P7 / 2014,498,126
3, P8 / 2014,589,132
4, P9 / 2014,655,158
5, P10 / 2014,679,161
6, P11 / 2014,489,115
7, P12 / 2014,574,129
8, P13 / 2014,340,80
9, P1 / 2015, # N / A, # N / A
10, P2 / 2015, # N / A, # N / A
11, P3 / 2015, # N / A, # N / A
12, P4 / 2015, # N / A, # N / A
13, P5 / 2015, # N / A, # N / A
14, P6 / 2015, # N / A, # N / A
15, P7 / 2015, # N / A, # N / A
16, P8 / 2015, # N / A, # N / A
17, P9 / 2015, # N / A, # N / A
18, P10 / 2015, # N / A, # N / A
19, P11 / 2015, # N / A, # N / A
20, P12 / 2015, # N / A, # N / A
21, P13 / 2015, # N / A, # N / A
22, P1 / 2016,0,0
23, P2 / 2016,0,0
24, P3 / 2016,0,0
25, P4 / 2016,0,0
26, P5 / 2016,0,0
27, P6 / 2016,0,0
28, P7 / 2016,0,0
29, P8 / 2016,0,0
30, P9 / 2016,0,0
31, P10 / 2016,0,0
32, P11 / 2016,0,0
33, P12 / 2016,0,0
34, P13 / 2016,0,0

3 단계

세 번째 테이블을 추가하여 그렇지 않은 값만 추출합니다. #N/A 두 번째 테이블에. 이는 배열 수식을 사용하여 수행됩니다. 우리가 어떻게 Order 기둥? 우리는 일치하지 않는 모든 가치를 찾을 것입니다. #N/A ~ 안에 Orders 열을 선택하고 남은 것을 사용하여 나머지 데이터를 가져옵니다. 세 번째 테이블이 범위 안에 있습니다. K1:N35.
첫 번째 값에 대한 수식은 Order 열은 다음과 같습니다. (이 모든 수식의 경우 다음과 같이 입력해야합니다. SHIFT+ENTER 에 의해 표시되는 배열 수식으로 변환합니다. { } 양쪽 끝의 괄호.)

{=MIN(IF(NOT(ISERROR($H$2:$H$35)),$F$2:$F$35))}

그러면 첫 번째 값이 Order 두 번째 테이블의 열 ( F2:F35 ) 어디에 Orders 열 ( H2:H35 )는 오류가 아닙니다.
나머지 두 번째 값의 수식은 Order 열은 다음과 같습니다.

=IF(OR($K2=0,$K2=MAX($F$2:$F$35)),0,MIN(IF(NOT(ISERROR($H$2:$H$35)),IF($F$2:$F$35>$K2,$F$2:$F$35))))

먼저, 이전 값 ( K2 이 경우) 0 또는 두 번째 테이블의 값 중 최대 값 (완료되었음을 의미)을 반환합니다. 0 그럴 경우. 그렇지 않으면, Order 열은 이전 값보다 크고 두 번째 테이블의 Orders 열은 오류가 아닙니다.
이 수식은 열의 나머지 부분으로 끌 수 있습니다. 결과는이 CSV처럼 보입니다.

주문
1
2

4
5
6
7
8
22 개월
23
24
25 명
26 세
27
28
29
30
31
32
33
34
0
0
0
0
0
0
0
0
0
0
0
0
0

4 단계

다음의 조합을 사용하십시오. INDEXMATCH 뭐든간에 값 조회 Order 값은 생존했습니다. 단계 3. 수식 기간, 주문 및 출하가 다음과 같이 순서대로 주어집니다.

=INDEX(B$2:B$35,MATCH($K2,$A$2:$A$35,0))
=INDEX(C$2:C$35,MATCH($K2,$A$2:$A$35,0))
=INDEX(D$2:D$35,MATCH($K2,$A$2:$A$35,0))

첫 번째 레코드로 입력하고 나머지는 복사 / 붙여 넣기하거나 아래로 드래그하십시오. 이것들은 첫 번째 테이블을 다시 참조하며 유일한 차이점은 첫 번째 매개 변수입니다. 2015 년을 숨길 경우 CSV가 표시됩니다.

주문, 기간, 주문, 배송
1, P6 / 2014,281,74
2, P7 / 2014,498,126
3, P8 / 2014,589,132
4, P9 / 2014,655,158
5, P10 / 2014,679,161
6, P11 / 2014,489,115
7, P12 / 2014,574,129
8, P13 / 2014,340,80
22, P1 / 2016,0,0
23, P2 / 2016,0,0
24, P3 / 2016,0,0
25, P4 / 2016,0,0
26, P5 / 2016,0,0
27, P6 / 2016,0,0
28, P7 / 2016,0,0
29, P8 / 2016,0,0
30, P9 / 2016,0,0
31, P10 / 2016,0,0
32, P11 / 2016,0,0
33, P12 / 2016,0,0
34, P13 / 2016,0,0
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A
0, # N / A, # N / A, # N / A

5 단계

X 축 레이블, 계열 1 및 계열 2에 대한 동적 명명 된 범위를 만듭니다. Excel 2010을 사용하고 있으며 동적 명명 된 범위 인 경우 전체 차트 데이터 원본을 한 번에 설정할 수 없습니다. 업데이트되지 않는 하드 코딩 된 범위로 되돌아갑니다. 즉, 각 시리즈와 축마다 개별적으로 만들어야합니다. 명명 된 범위를 만들려면 Formulas 리본으로 클릭 Name Manager 중간 근처 어딘가에. 대화 상자 창에서 New 버튼을 클릭합니다. 참조 할 이름과 범위를 지정하십시오. 여기의 트릭은 특정 기능이 OFFSET 범위 객체를 반환하여 다음과 같은 객체 대신 여기에서 객체를 사용할 수 있습니다. =A1:D35. 다음은 내가 만든 3 개의 명명 된 범위와 그 수식입니다.

이름: rngPeriod
공식:

=OFFSET(Sheet1!$L$2,0,0,IFERROR(MATCH(0,Sheet1!$K:$K,0)-2,MATCH(MAX(Sheet1!$A:$A),Sheet1!$K:$K,0)-1))

이름: rngOrders
공식:

=OFFSET(Sheet1!$M$2,0,0,IFERROR(MATCH(0,Sheet1!$K:$K,0)-2,MATCH(MAX(Sheet1!$A:$A),Sheet1!$K:$K,0)-1))

이름: rngShipments
공식:

=OFFSET(Sheet1!$N$2,0,0,IFERROR(MATCH(0,Sheet1!$K:$K,0)-2,MATCH(MAX(Sheet1!$A:$A),Sheet1!$K:$K,0)-1))

각 공식은 같은 방식으로 작동합니다. 우리가 원하는 데이터의 맨 위에서 시작하십시오. 아래로가. 첫 번째 찾기 0 ~ 안에 Order 우리가 원하는 데이터의 끝을 나타내는 최대 값을 찾고 범위를 우리가 원하는 첫 번째 행에서부터 마지막 ​​행까지의 모든 것을 포함 할 수있을 정도로 키가 크도록하십시오. 요점 : 오류가 발생하고 모든 값이 숨겨 지도록 매년 숨기려고하면 그래프가 표시되지 않습니다. #N/A 그리고 첫 번째 가치는 Order 표가 0 왜냐하면 MATCH 함수 반환 11-2=-1 너는 범위를 가질 수 없다. -1 키가 큰 행.

6 단계

이 동적 명명 된 범위를 사용하도록 차트를 설정하십시오. 원하는 모든 값을 사용하십시오. Series name: 그러나 Series values: 동적 범위의 이름이어야합니다. 매우 성가신 – 요점은 파일 이름을 포함해야한다는 것입니다. 수평 (카테고리) 축 레이블에 대해 동일한 작업을 수행하면 모든 설정이 완료됩니다. 시리즈 1, 시리즈 2 및 축 레이블에서 내 차트가 다음과 같이 사용되었습니다.

=sample.xlsx!rngOrders
=sample.xlsx!rngShipments
=sample.xlsx!rngPeriod