2014-03-05 2 views
1

누군가가 나를 도울 수 있기를 바랍니다. 수년 전에 VB 6에서 원예 회사의 전체 주문 시스템을 작성했는데 Excel 스프레드 시트를 필요로하는 것과 동일한 방식으로 작동했지만 더 이상 코드가 없거나 내가 한 행동을 알 수 없습니다.엑셀 2010 다른 셀의 값을 기반으로 새로운 값을 계산

기본적으로 스프레드 시트에는 각 행에 항목 번호 (예 : '12345', 상품 설명 (예 : 'Petunia Blue Frost')), 항목이 판매 된 여러 항목 (예 : 100 ","48 ","288 ") 및 사용자가 각 항목에 대해 주문하고자하는 수량을 입력 할 수있는 열을 제공합니다. 이전 VB 시스템에서는 주문한 수량 필드에 입력 한 값이 자동으로 반올림됩니다 따라서 다음 배수까지 배수가됩니다. 따라서 배수가 100이고 배수가 1 인 경우 자동으로 100을 반올림하고 101을 넣으면 최대 배수가됩니다. "200".

주문 된 수량은?

무엇인지 여러이고 내가 Excel에서 자동에 따라,이 작업을 수행 할 수 있습니다 방법

미리 감사드립니다!

+0

오케이, 나는 그것을 알아 냈다. 천장 기능을 사용할 수 있습니다. 열 C1에 배수 (예 : 100)가 있고 열 D1에 정렬 된 qty (예 : 52)가 있으면 열 F1에 "= 천장 (D1, C1)"이 있고 "100"을 반환합니다. 그렇지만 D1에서 함수를 사용할 수있는 방법이 있습니까? (따라서 새로운 열은 필요하지 않습니다)? D1에 수식을 넣으려고했지만 REF # 오류가 발생했습니다. –

+0

'= IF (test, true_condition, else_false_condition)'는 어떨까요? 그럼 .. 네가 뭔가있을거야 : = IF (C1 : D1> 100, 천장 (D1, C1), "") 특정 조건을 찾기 위해 몇 가지 중첩 된 IF가 있어야 할 수도 있습니다. 당신이 할인 테이블에서 말을 꺼내기 위해 lookup을 사용해야한다면, '= VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])'을 사용하십시오. – Leptonator

+0

@KimJones 아마도 Excel은 이벤트를 사용하지 않고 Excel에 그 기능이 없다는 것을 알게 될 것입니다 VBA. Excel이 자동으로 입력 값을 다음 배수로 반올림하도록 요청하는 것 같습니다. Excel 수식이 이런 식으로 작동하지 않습니다. 대부분의 사람들은 앞에서 언급 한 것처럼'= CEILING (D1, C1)'을 사용하여 이것을 수행 할 것입니다. – grovesNL

답변

0

저는 이것이 당신이 필요로하는 것을 성취하기위한 올바른 계산이라고 생각합니다.

=CEILING(quantity/multiple) * multiple 

예 데이터 :

quantity: 101multiple: 100

expected: 200

예 :

양/멀티 PLE = 1.01
CEILING (1.01) (귀하의 경우 천장을 계산) 수정에 적절한 값을하지 않는 2
2 * 100 = 200

+0

그게 작동하지 않으며 또한 문제를 해결하지 않습니다. '= CEILING (D1, C1)'은 예상 출력입니다. 새 수정을해도 여전히 올바르지 않습니다. – grovesNL

+1

@grovesNL MS Excel이 없으므로 Google 스프레드 시트를 사용하고 있습니다 (마녀가 거의 동일합니다). 왜 이것이 작동하지 않는지 알려주실 수 있습니까? –

+0

단순히'CEILING'이 두 개의 인수를 취하는 이유 때문입니다. 'CEILING (value, multiple)'은 주석 자체에 쓰여진대로 질문이 한 것을 수행합니다. 작성자는 이것을 사용하기를 원하지 않습니다. – grovesNL

0

Excel 수식을 =. VB에서 텍스트 필드를 수정했을 가능성이 큽니다.

VBA를 사용하여 셀 변경 이벤트를 처리하고 계산할 수 있지만이 방법을 사용하는 것은 좋지 않습니다. 추가 열을 사용하여 =CEILING(D1,C1)을 수행하는 것이 더 나은 해결책 일 수 있습니다.

+0

무한 루프없이 셀 변경 이벤트 트리거와 같은 VBA ...를 사용하는 방법을 언급하고 싶을 수도 있습니다. –

+0

@PortlandRunner 워크 시트 변경 이벤트는 값이 이미 'CEILING'으로 변환되었는지 확인하여 처리 할 수 ​​있습니다. 예외가있는 경우 아무 것도하지 않습니다 (즉, 무한 루프 없음). 나는 여전히 VBA 이벤트 메서드가 원래 입력이 소멸되기 때문에 이것을 처리하는 좋은 방법이 아니라고 생각합니다. – grovesNL

+0

VBA를 사용하는 변경 이벤트는 내가 원했던 것입니다. (원래 #을 변경하고 싶습니다.) 누군가가 코드로 도움이 될 수 있습니까? ("천장"은 VB 함수가 아닙니다.) 그리고 무한 루프가 있습니까? 감사! –

관련 문제