FIELD NOTE 04 · COLUMN HARBOR
글자 수는 같았는데, ID는 달라졌다
예상값을 계산해 보는 것과, 실제 프로그램에서 실행하는 것은 달랐습니다. CSV 가이드를 Excel에서 다시 확인하며 바꾼 검증 기준을 기록합니다.
12345678901234561234567890123457마지막 한 자리가 다른 식별자입니다.
12345678901234501234567890123450길이는 16자리 그대로. 값은 같아졌습니다.
01 / EXPECTED VS OBSERVED
계산이 맞아도, 검증이 끝난 것은 아니었습니다
앞선 제작 기록에서는 독자가 따라 할 수 있는 예제를 만드는 일을 다뤘습니다. 그 다음에는 한 걸음 더 들어갔습니다. 독립 스크립트의 기대값이 맞더라도 Excel의 가져오기와 자료형 처리까지 확인한 것은 아니기 때문입니다.
실제 Excel을 별도 합성 워크북으로 실행해 값, 자료형, 표시 형식, 조작 순서를 함께 기록했습니다. 신규 원고 검사 32개와 기존 원고 검사 62개를 남겼습니다. 합계 94개는 특정 환경의 검사 행 수이지, 서로 다른 Excel 기능 94개나 모든 버전의 검증을 뜻하지 않습니다.
02 / SAME LENGTH, DIFFERENT VALUE
16자리라는 사실만으로는 충분하지 않았습니다
같은 합성 파일에서 ID 열을 General로 가져온 대조군과 Text로 가져온 경우를 비교했습니다. General 대조군에서는 서로 다른 두 ID가 같은 숫자로 합쳐졌습니다. 두 값 모두 길이는 여전히 16자리였습니다.
원문을 보존한 경로는 QueryTables에서 해당 열을 Text로 지정한 가져오기였습니다. 성공 여부는 원래 문자열과 Value2의 직접 비교, ISTEXT, LEN, EXACT를 함께 사용해 확인했습니다.
Excel의 숫자 정밀도는 유효 숫자 15자리로 제한됩니다. 계산할 숫자가 아닌 긴 식별자는 숫자로 바꾸기 전에 텍스트로 다루는 것이 중요합니다. Microsoft의 앞자리 0·긴 숫자 안내 (영문, 새 탭)
지수 표기로 보인다고 반드시 손상된 것은 아닙니다. 반대로 길게 펼쳐 보이거나 글자 수가 같다고 안전한 것도 아닙니다. 어떤 문자가 실제로 남았는지가 기준입니다.
03 / THE HIDDEN INPUT
수식 밖에도 입력이 있었습니다
SUBTOTAL 실습에서는 필터를 적용한 뒤 행을 수동으로 숨긴 혼합 상태가 예상과 달랐습니다. 이 빌드에서 관측한 결과를 모든 Excel 버전의 일반 규칙으로 바꾸지는 않았습니다.
원고를 ‘필터만 적용하는 실습’과 ‘필터를 완전히 끈 뒤 수동으로 숨기는 실습’으로 나눴습니다. 실습 전에 이전 필터와 숨김 상태를 초기화하고, 혼합 상태의 결과는 별도 관측으로 남겼습니다.
- 초기 상태필터와 숨김을 초기화하고 어떤 행이 보이는지 확인합니다.
- 한 가지 변화필터 또는 수동 숨김 중 하나를 먼저 적용합니다.
- 관측과 범위예상값·실제값·실행 순서를 남기고 다른 환경까지 일반화하지 않습니다.
공식과 셀 값만으로 실험을 설명할 수 없었습니다. 작업 순서와 이전 상태도 입력의 일부였습니다.
04 / WHAT IS STILL UNKNOWN
우회에 성공해도, 원인은 미해결이었습니다
OpenText에 Text 설정을 전달했는데도 긴 ID가 숫자로 읽히는 현상을 별도로 재현했습니다. 파일 확장자와 인수 전달을 달리하는 시도도 했지만 근본 원인을 확정하지 못했습니다.
따라서 결론은 두 줄입니다. QueryTables의 Text 가져오기에서는 원문 보존을 확인했습니다. OpenText 경로의 원인은 아직 미해결입니다. 성공한 대체 방법을 찾았다는 사실과 원인을 해결했다는 주장을 섞지 않았습니다.
최신 동적 배열 함수, Power Query 편집기·M 실행, 모든 언어와 인코딩 조합은 이번 검증 범위가 아닙니다. 사용한 원고나 샘플이 바뀌면 과거의 PASS도 그 전 버전에 대한 근거로 남습니다.
TAKE IT WITH YOU
다음 가이드에는, 예상과 실제를 나란히
샘플, 예상값, 자료형, 실제 엔진, 저장 후 재확인, 미검증 범위를 여섯 개의 질문으로 정리했습니다. 내 원고의 상태를 골라 적고 Markdown으로 가져갈 수 있습니다. 자동 검사는 아니며 입력한 상태는 서버에 보내지 않습니다.