2012-12-04 2 views
0

사람들이 식생활을 기록하는 데 도움이되는 통합 문서를 만들고 싶습니다. 통합 문서에는 현재 두 개의 시트 "조리법"과 "일기"가 있습니다.ID 세트를 기반으로 한 다른 시트의 값 합계

조리법에는 ID, NAME, KCAL 및 PROTEIN 열이 있습니다. 사용자는 자주 사용하는 조리법을 추가 할 수 있으며 숫자 ID를 사용하여 참조 할 수 있습니다.

일기에는 DATE, TOTAL_KCAL 및 TOTAL_PROTEIN 열이 있습니다. 아이디어는 각 날짜에 대해 사용자가 섭취 한 에너지와 단백질의 총량을 볼 수 있다는 것입니다.

이미 VLOOKUP을 사용하여 일기 시트()로 조리법 시트에서 하나의 조리법의 킬로 칼로리와 단백질 양을 얻는 방법을 알아 낸

:

=VLOOKUP(1;Table1;3;FALSE) //For kcal 

하지만 난 정말 이것을 자동화하고 싶습니다 비트. 이 단계에서이 시트를 사용하려면 전체 함수를 복사 한 다음 (+ 접두사 추가) 끝에 붙여 넣고 첫 번째 매개 변수를 올바른 ID로 변경해야합니다. 그런 다음 TOTAL_PROTEINS 열 (이 과정에서 소스 매개 변수를 3에서 4로 변경해야 함)에도이 과정을 반복해야합니다.

다이어리 시트에 ID (1,15,6) 목록을 추가 할 수있는 EATEN_RECIPES 열이 있다면 최적의 상황이 될 것이라고 생각하지만 이것이 가능하면 잘 할 수 있는지는 알 수 없습니다. 핵심은 다이어리에 ID를 적어두고 조리법 시트에서 kcal 및 단백질 양을 자동으로 가져와 일기의 총량을 업데이트하는 데 탁월한 능력을 발휘할 수 있기를 원합니다.

이것은 아마도 간단한 문제 일 뿐이지 만 Google에서 어떤 검색어를 사용할지 모르겠다. 이에 대한 의견을 보내 주시면 감사하겠습니다. (또한 더 좋은 제목이 필요합니다.)

답변

2

내가 올바르게하려는 것을 이해한다면, 취득 할 데이터의 접두사를 붙이면 다른 시트의 데이터를 참조하여 복사 & 붙여 넣기 문제를 해결할 수 있습니다! . 데이터가 Sheet1에있는 경우 예를 들어, A1의 범위 : A7, 당신이 수식과 함수에 참조 수 : ID의 목록으로

Sheet1!A1:A7 

...이 작업을 시도 할 수 출발점으로 : 그것은 사용자 정의 코딩에 들어간

http://www.ozgrid.com/forum/showthread.php?t=86497

... 당신은 또한 단지 사용자가 다른 컬럼에 각각의 ID를 입력 할 수 있지만 그 추한 해킹.

사실, 당신이하는 일은 데이터베이스 영역에 가까워지고있는 것처럼 들리지만 ... 엑셀 시트는 결국 자신의 미니 데이터베이스가됩니다. 데이터베이스에 익숙하고 작업에 신경 쓰지 않는다면 대신 데이터베이스를 사용할 수 있습니다.

+0

URL을 보내 주셔서 감사합니다. 제 질문은 약간 불분명했지만 당신의 대답은 저를 도왔습니다. –

0

이것은 내가 결국 해결 한 기능입니다. user1161318에서 제공 한 URL을 기반으로합니다. 그게 그리 좋지는 않지만 단지 작동하도록하고 싶었고 Visual Basic을 처음 접했을뿐입니다.

Function MultiVLookup2(LookUpVal, LookUpRng As Range, LookUpCol As Long) 

Dim v, w, i, rng As Range, sum As Single 

v = Split(LookUpVal, ",") 
sum = 0 

ReDim w(UBound(v, 1)) 

For i = LBound(v, 1) To UBound(v, 1) 
    w(i) = WorksheetFunction.VLookup(Val(v(i)), LookUpRng, LookUpCol, False) 
Next i 

For i = LBound(v, 1) To UBound(v, 1) 
    sum = sum + w(i) 
Next i 

MultiVLookup2 = Round(sum, 1) 

End Function 
관련 문제