1
Excel取込みで失敗した先生
Sonic先生
2
自己紹介
Connpass ID Sonic先生こと
.NETラボ 岡田 将
.NETプログラマーやっています
(VB.NET、C#、Xamarin、SQLServer)
技術ブログもやってます
http://sonic.blue/it/
Sonic先生のしっぱい
1. 古い技術で後悔
2. Excel取込みが便利すぎた
3. 2進数の基本が出来ていな
かった
4. 切り捨て処理を舐めすぎてた
3
質問:
業務のデータ入力では
どんな方法があると思います
か?
4
業務のデータ入力を
Excelでできればと思ったことは
ないですか?
5
古い技術で後悔
いっそExcelでやってしまう案
→ マクロでめちゃくちゃ対応した
6
古い技術で後悔
いっそExcelでやってしまう案
→ マクロでめちゃくちゃ対応した
結果:
VBAの機能が貧弱すぎて後悔
7
古
い
技
術
で
対
応
す
る
と
運
用
の
苦
労
と
技
術
的
負
債
し
か
生
ま
な
い
顧
客
の
動
作
要
件
は
必
ず
し
も
必
須
で
は
な
い
(イ
ン
フ
ラ
除
く
)
8
Sonic先生の教訓
Excel取込みが便利すぎた
ということで、
もちろん.NETで制御できます!
というかやりました
9
Excel Onlineとか
よりExcelっぽいForguncyやSpreadsheetという選択もあり!?
ちなみに、過去こんなことも
やっていました
10
これはExcelへの出力制御→
Excel取込みが便利すぎた
Excel取込みのメソッド
NPOIを利用する(Nuget)
取込みファイルを用意する
セル位置指定して取り込む
11
Excel取込みが便利すぎた
運用開始すると想定してない
トラブルが・・・
13
しっぱい例1
取込み用テンプレートを提供
念のためロックした項目が編集される
セル位置指定がずれたり、文字列が紛れ込む
エラー発生(調査大変)
14
しっぱい例2
ちゃんと取り込まれる
後間違えたので修正したい
修正画面を用意していない
データ入れ替え方式なのに修正部分取り込まれる
データ紛失(バックアップよりサルベージ)
15
しっぱい例3
条件付き書式でエラー警告
警告に気づかず取込み
取込みチェックを顧客要望で甘くしてた(削除
データでも取り込みたい)
データ不整合(データメンテ発生)
16
こ
れ
で
な
ら
使
え
る
だ
ろ
う
と
(
エ
ク
セ
ラ
ー
)
Excel使
い
や
っぱ
無
理
な
人
や
り
過
ぎ
る
人
17
Sonic先生の一句
質問:
Excelでは常に正確な値で
演算処理されるか?
18
質問:
Excelでは常に正確な値で
演算処理されるか?
→ 処理されないことがある
19
20
Excelデモ
21
Excelデモ
もちろん結果は違う!
Excelデモ
22
Excelデモ
Bを100に修正する計が変わってと結果が「同じ」に!
Excelデモ
23
Excelデモ
計から1を計算で引いてるのに、なぜか違うと表示される
Excelデモ
24
Excelデモ
表示桁数を増やすとさらに桁があった!
IEEE 754 規格で循環小数が
例えば0.1を2進数で表すと
0.0001100110011001…
必ずどこかで切り上げられます
25
2進数の基本が出来ていなかった
2進数の基本が出来ていなかった
これを知らずにいい気になって、
次のExcel案件もホイホイ受けて
しまった
26
ちなみにいままで整数だけだったものが、
今度はパーセントをあつかう処理へ!?
2進数の基本が出来ていなかった
Excel関数では合計100%判定
でも実際には有効桁数で保持
されている
それをアプリ側で処理すると・・・
27
2進数の基本が出来ていなかった
やらかしました!
28
やっぱり知っている人には常識らしい・・・。
しっぱいパターン
整数なら問題なかった
Excelでのチェックはもちろん正常
プログラム側できっちり「1(100%)」で比較判定
循環小数でなければ正常に処理される
ついに有効桁数で処理された100%以上が来る
合っているのにエラー警告
29
エ
ク
セ
ル
は
数
学
で
は
な
い
ほ
ぼ
15
桁
(字
余
り
)
30
Sonic先生の一句
切り捨て処理を舐めすぎてた
なので、切り捨て処理を確実に
行う必要があります
31
切り捨て処理を舐めすぎてた
これだけちゃんと覚えて
帰ってください
ROUNDDOWN関数
(Excel関数)
32
切り捨て処理を舐めすぎてた
結論:
Excelは悪くなかった!
33
IEEE 754 規格に準拠して処理していただけなので、
プログラム側で対応すべき事案!?
炎上する事態の鎮火方法として
マイクロソフトの説明(ナレッジ)
があれば、確実にこちらの説明
の信頼性が上がります!
どんどん活用しましょう
34
小
数
点
の
扱
い
に
は
く
れ
ぐ
れ
も
注
意
し
、
ち
ゃ
ん
と
有
効
桁
数
を
確
認
し
て
、
し
っか
り
切
捨
て
処
理
を
行
った
う
え
で
、
用
法
用
量
を
守
って
正
し
く
プ
ロ
グ
ラ
ミ
ン
グ
し
ま
し
ょ
う
。
仕
様
で
も
ち
ゃ
ん
と
確
認
す
る
こ
と
(
DB
で
は
基
本
な
ん
だ
け
ど
・・・) 35
Sonic先生からまとめの開発安全標語
以上で授業を終わります
ありがとうございました
36

More Related Content

PDF
VBAを書きたくない話(Excel-DNAの紹介)
PDF
SI屋のためのF# ~DSL編~
PDF
札束でExcelを殴る
PPTX
C#でこなすexcel課題
PPTX
【12/23】データの魅力を語る DAY3 〜DATA Saber挑戦者の1ヶ月の成長と学び〜
PPTX
WordPressでExcelインポート - Word Fes 2015 -
PDF
DocFXで脱Excel方眼紙!
PDF
Excelのどうでもよいtipsの紹介
VBAを書きたくない話(Excel-DNAの紹介)
SI屋のためのF# ~DSL編~
札束でExcelを殴る
C#でこなすexcel課題
【12/23】データの魅力を語る DAY3 〜DATA Saber挑戦者の1ヶ月の成長と学び〜
WordPressでExcelインポート - Word Fes 2015 -
DocFXで脱Excel方眼紙!
Excelのどうでもよいtipsの紹介

Similar to Excel取込みで失敗した先生 (6)

PPTX
Excelマクロ・vbaについて
PPTX
脱 Excel設計書
PDF
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
PDF
ガラパゴスExcel
PDF
20230306_SD輪読&座談会#42_kitazaki.pdf
PDF
20230508_SD輪読&座談会#44_kitazaki.pdf
Excelマクロ・vbaについて
脱 Excel設計書
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
ガラパゴスExcel
20230306_SD輪読&座談会#42_kitazaki.pdf
20230508_SD輪読&座談会#44_kitazaki.pdf
Ad

More from Sho Okada (16)

PDF
AppleシリコンのMacで Windows11を動かす
PDF
ChatAIの未来予想図
PDF
勉強会参加のすゝめ
PDF
ASP.NETの進化とASP.NET Core Blazorの凄さ
PDF
WebブラウザでC#実行 WebAssemblyの技術
PDF
いままで聴いてきたLTのおはなし
PDF
今のWeb開発者に伝えたいWebブラウザの病みの歴史
PDF
SQL Server中級者のための実践で使えるかもしれないTips集
PDF
オープンソースでExcelレポートプログラミング
PDF
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
PDF
メガネ型デバイスの未来について考える
PDF
WPF開発での陥りやすい罠
PDF
止めないためのWEBインフラ入門
PDF
ASP.NETを利用したAJAX開発の応用
PDF
WebMatrixに対応した、新しいけど新しくないRazor
PDF
初心者でもわかるActive directoryの基本
AppleシリコンのMacで Windows11を動かす
ChatAIの未来予想図
勉強会参加のすゝめ
ASP.NETの進化とASP.NET Core Blazorの凄さ
WebブラウザでC#実行 WebAssemblyの技術
いままで聴いてきたLTのおはなし
今のWeb開発者に伝えたいWebブラウザの病みの歴史
SQL Server中級者のための実践で使えるかもしれないTips集
オープンソースでExcelレポートプログラミング
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
メガネ型デバイスの未来について考える
WPF開発での陥りやすい罠
止めないためのWEBインフラ入門
ASP.NETを利用したAJAX開発の応用
WebMatrixに対応した、新しいけど新しくないRazor
初心者でもわかるActive directoryの基本
Ad

Recently uploaded (8)

PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
PPTX
Vibe Codingを触って感じた現実について.pptx .
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
Vibe Codingを触って感じた現実について.pptx .
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
20250823_IoTLT_vol126_kitazaki_v1___.pdf
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。

Excel取込みで失敗した先生