[[20201027143116]] 『XMLをエクセルで読み込むと数字が変わってしまう』(conana) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『XMLをエクセルで読み込むと数字が変わってしまう』(conana)

XMLをExcelで開いて数値を取り出したり、計算するために使用してます。
その中で22桁の番号が入った要素があるのですが、必ず0が消え、途中の数字も変換されてしまうので、なんとかもとの数字を維持させたいのですが、方法はありますでしょうか?

< 使用 Excel:Office365、使用 OS:Windows10 >


 野次馬根性でお聞きします。

 XMLファイルの中身はどんな風になっているんですか?
 数字なら、STRING属性を持っているハズと思うのですが。
 そうじゃないと再現できなくなります。

 どなたが作ったファイルなんですか?
 なぜ22桁と分かっているんですか?

(半平太) 2020/10/27(火) 17:03


半平太様

コメントありがとうございます。
XMLファイルはインターネット上で公開されているものをDLしてくるもので、社内で作ったものではありません。

タグ名 データ要素名 説明
JP0XX00 〇〇番号 (22)桁

みたいな感じでタグ名や桁数等は事前にわかっていて、DLしたデータをIEやOfficeXMLhandlerで開けばきちんと表示されます。
ただ、計算するための数値を取り出すためにはエクセルで扱いたく、エクセルで数字が変わらず読み込める方法が思いつきません。

(conana) 2020/10/27(火) 17:31


 現象再現できる様なファイルの中身を提示いただかないと
 ちょっと私はお役に立てないです。

 アイデアとしては、文字の置換でTagに文字属性を追加してから読み込んだらどうか、
 と言うことなんですけども。

 つまり、こんな形にできないかと・・ 
  <Data ss:Type="String">001234</Data>
  <Data ss:Type="Number">125</Data>

(半平太) 2020/10/27(火) 19:28


Excel も VBAも「22桁の整数」なんて扱えません。

セルは15桁まで、それを超えると指数表現になって、
頭から16桁以下は0表示です。

VBAでも
Long型 で 10桁( 〜 2,147,483,647 )
LongLong型 19桁( 〜 9,223,372,036,854,775,807 )

> 計算するための数値を取り出すために
「文字列」として数字を読み込んで、
巨大桁整数の演算を行なうユーザー定義関数を通して、
結果も「文字列の数字」として受け取る。

ネットを検索すればありますよ。

(AddinBox 角田) 2020/10/27(火) 21:50


皆様、
コメントありがとうございます。
現時点でよい方法が思いつかないので、角田様のユーザー定義関数の部分も勉強しながらもう少し考えてみます。

ありがとうございました。
(conana) 2020/10/29(木) 15:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.