パスワードを忘れた? アカウント作成
16650261 story
マイクロソフト

Excelで数値先頭のゼロを削除しないオプションをテスト中 99

ストーリー by nagazou
よくあるやつ 部門より
窓の杜の記事によると、現在、Microsoft 365 Insider上では、「先頭のゼロを削除しない」オプションがテストされているという。これは電話番号や商品コードなど、ゼロから始まるデータをExcel内に入力すると「数値」として扱われてしまい、冒頭のゼロが勝手に消されてしまうという意見から来たもののようだ。実際の業務では冒頭のゼロが削除されると意味が変わってしまうこともあり、余計なお世話と感じることもある(窓の杜)。

テスト中の仕様では、市区町村コードのCSVファイルを「Excel」で読み込むと、「先頭のゼロを削除する」というデータ変換を行うかどうかを問うダイアログが表示される。[変換しない]ボタンを選択するとゼロから始まる数値データは文字列として扱われるという。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by microwavable (47421) on 2023年06月08日 14時02分 (#4474197) 日記

    その需要の大半はそもそもExcelでおこなうべきではない作業によるものではなかろうか。

    (そのオプションの実装は)ありがたいけどね。

    • 万能ツール(DTPとかワープロ)用途以外の、本来の表計算ソフトとして使う場合でも、勝手に0を除外されると都合が悪いケースありますよ。

      顧客コードと売上集計表みたいなケースで、顧客コードの0が消えてしまって「ムキキー!」となりながらセルに文字列設定しにいく、みたいな。

      親コメント
      • >万能ツール(DTPとかワープロ)用途以外の、本来の表計算ソフトとして使う場合でも、勝手に0を除外されると都合が悪いケースありますよ。

        あらかじめ、セルかカラムの表示形式を「文字列」に指定すれば良いんでしたっけ。
        あるいは入力時頭にシングルクォーテーションを追加するか。
        #どっちもめんどくさいけど、必要な時はやってた

        メールアドレスがリンクにされていて、頭に "mailto:"入れられてたときは混乱した
        #Outlookだったかもしれない

        親コメント
        • by Anonymous Coward

          そうやって文字列にすると今度は数値が文字列になっています!って警告が出るんですよね。

        • by Anonymous Coward

          元がCSVでファイルを開く場合、そもそも「セルかカラムの表示形式を「文字列」に指定」自体ができない。

          拡張子がテキストのファイルを読み込む場合、ダイアログで区切り文字指定と各カラムの表示形式指定ができるが、
          拡張子がCSVの場合、ダイアログすっ飛ばしてそのまま標準で読み込む。

          しかもコードの先頭0削除だけでなくいらない、余計なやってはいけない変換を山盛りやってくれる。

          #例えば住所で町名と番地が湧かれて 小川町,10-1-1 とかなってたら、10-1-1を勝手に日付として2010/1/1にしてくれる。

      • by Anonymous Coward

        '0123
        みたいに入れてた記憶が

    • by Anonymous Coward on 2023年06月08日 14時44分 (#4474233)

      巨大なデータベースをExcelで作るとかは論外だけど、
      Excelのテーブル機能で済むぐらいのことならExcelでやっちゃった方が効率的でしょ。

      親コメント
    • by Anonymous Coward

      ツールがEXCELしかない職場のことも考えてください!!

      • by Anonymous Coward

        >ツールがEXCELしかない職場のことも考えてください!!

        そういう職場ではExcel職人が育つことがありますよね

        そして神Excelが量産されたり

  • by Anonymous Coward on 2023年06月08日 14時35分 (#4474224)

    ファイルを読み込んだだけで自動的に訂正されちゃうのはやっぱり困るよね。
    元のデータが0始まりのデータなら、Excelに取り込んでも0始まりのデータとして扱って欲しい。
    列を文字列設定してから全体コピー&ペーストとか面倒だし……。

    • by Anonymous Coward on 2023年06月08日 15時03分 (#4474249)

      ファイルを読み込んだだけで自動的に訂正されちゃうのはやっぱり困るよね。

      LibreOfficeのCalcのようにCSVから開くときは列書式聞いてくるのが助かるよねぇ

      # 基本的に自動判別やサジェストは誤爆前提で使い物にならないからねぇ

      親コメント
      • by Anonymous Coward

        基本CSVはテキストエディタで開いてるけどEXCELで開く必要あるときは拡張子をTXTに直してから開いたりしてるな。

    • by Anonymous Coward

      > 元のデータが0始まりのデータなら、Excelに取り込んでも0始まりのデータとして扱って欲しい。

      ちなみに "0" + "0" の結果はどうなってほしいの? "0" それとも "00" ?

      • by Anonymous Coward

        別ACですが
        "0" + "0" = "00"
        0 + 0 = 0

        なのでは?

      • by Anonymous Coward

        >ちなみに "0" + "0" の結果はどうなってほしいの? "0" それとも "00" ?
          "0" + "0" じゃね?

      • by Anonymous Coward

        ちなみに "0" + "0" の結果はどうなってほしいの? "0" それとも "00" ?

        Excelの式なら、"0" + "0"は数値演算となり、結果は0。
        文字列の結合なら"0" & "0"と書かねばならず、結果は"00"。

  • by Anonymous Coward on 2023年06月08日 14時57分 (#4474245)

    0始まりは8進数として扱ってもらわないと困る

    • Re:え? 冗談だろ? (スコア:2, おもしろおかしい)

      by Anonymous Coward on 2023年06月08日 15時05分 (#4474252)

      島村ジョー「…」

      親コメント
    • by Anonymous Coward

      bashで計算が時々エラーになるのなんだろと調べたら、0始まりは8進数解釈されるからだった。年月日とか0始まりの10進数が出てくるのは結構あるのに、いちいち10#とか頭につけてから計算しないといけないらしい。めんどくさいの。誰だよ0始まりは8進数とか言い出した奴は。センスないな。

      • by Anonymous Coward

        誰だよ0始まりは8進数とか言い出した奴は。センスないな。

        C言語まで遡るのかな?
        とすると、Dennis M. RitchieまたはBrian W. KernighanとDennis M. Ritchieになるね

      • by Anonymous Coward

        だって、OctetのOと0似てるし、入力が楽じゃん!

  • by Anonymous Coward on 2023年06月08日 17時06分 (#4474351)

    少し前に仕様変更があって、テキストエディタで開いたらやたらダブルクォーテーションが多い見慣れない形になっていた。
    イメージはこんな感じ。

    『"=""2023/06/08""","=""0123""","=""1-2-3"""』

    これをエクセルで開くと『="2023/6/8"』『="0123"』『="1-2-3"』という式がセルの内容になって、
    エクセルの余計なお世話にも負けず、元通りの内容で表示してくれるイカス仕様。
    タイトル行まで含めてすべてをこの形式で出力する発想力に絶句したぜ。
    (TVCMもバシバシ流してるあのサービスだよ)

    • by Anonymous Coward

      それはそれでエクセルで読み込む分には正しい「表示」にはなるだろうけど、
      「データ」としては正しくないからエクセル以外のシステムでは読み込みエラーにならんか?

      エラーにならなくても、それこそ本来の住所は「1-1-1」なのが
      エクセルでは「1-1-1」と表示されても他のデータベースとかに読み込ませると「=”1-1-1”」って住所になってしまわんか?

  • by take-ash (28862) on 2023年06月08日 18時49分 (#4474435) ホームページ

    K3フォーマットは良かった。
    ””でくくれば文字列、それ以外は生データ、とシンプルだった。

    --
    # SlashDot Light [takeash.net] やってます。
  • by Anonymous Coward on 2023年06月08日 14時24分 (#4474215)

    基本は文字列扱いとしてほしいな
    数値としての判断は関数側で何としてLOOKUPするかを指定する感じで

    /*
    表”計算”とはいったい、、、って話だけれど
    それこそAI判定してくれよとは思わなくもない
    まぁkAIlくん並みに余計なお世話誤判定になるんだろうけど
    */

    • by hiraej (48210) on 2023年06月08日 15時14分 (#4474256)

      そうだよねぇ。
      0から始まる文字列だけとか、あとから書き換えるとき結局困るやん
      今更変えても混乱するだけだから、もう何もしなくていいのに・・・

      社員番号ゼロから始まるので、いろいろ不具合に苦しめられてきたんだよなぁ。
      若い人の番号はゼロから始まらないようになってるし

      親コメント
    • by Anonymous Coward

      excelがシートの記載内容から考えて忖度してくれる
      でないの?

      それがいいようにしてほしいという偉い人の言い分かと思う

    • by Anonymous Coward

      まあ、表計算とはいえ、集計するのに属性とかつかうから、数値だけとは限らない

  • by Anonymous Coward on 2023年06月08日 14時30分 (#4474222)

    ・LOOKUP時に文字列と数値で不一致
    ・RIGHT、LEFTで桁取り違え
    ・文字列セルを数値セルに変えたら先頭にシングルクォーテーション入ってて文字列扱い
    ・左寄せ書式なのに数値、右寄せ書式なのに文字列
    ・CSVレベルでダブルクォーテーション入ってて計算評価できない
    ・CSVレベルでイコール始まりの数式だったと気付くのに小一時間
    ・CSVレベルでくくられておらず郵便番号や電話番号取り込んだらゼロとんだ

    なんか挙げればきりないなぁ
    CSVでのデータ連携が無くならない限りどうにもならんのだろうなぁ

    • by nemui4 (20313) on 2023年06月08日 14時38分 (#4474230) 日記

      >・CSVレベルでダブルクォーテーション入ってて計算評価できない

      セル内改行と、半角カンマを文字列データに入れるのを禁止にしたい。

      親コメント
      • by Anonymous Coward

        セル内改行と、半角カンマを文字列データに入れるのを禁止にしたい。

        カートシステムとかCMSとか商品DBとかが諸悪の根源ですねぇ
        HTMLをセル内に記述しましょうと同義の仕様だものなぁ

        /*
        とはいえCSVがデータやり取りでやりやすってのはあるよなぁ
        API実装は参入障壁になりがちだし
        */

      • by Anonymous Coward

        別枝にデータベースとして使うなというのがあるけど、よくあるのは会社名の英語表記とか。
        インチの省略形でダブルクォーテーションが使われてたりもする。

      • by Anonymous Coward

        ・CSVレベルでくくられておらず郵便番号や電話番号取り込んだらゼロとんだ

        エクセルはダブルクォーテーションで囲ってようが、囲ってなかろうが関係ない。
        ダブルクォーテーションで囲ってようが中身が数字なら0すっ飛ばします。

        実際エクセルで書式文字列の 0000をCSV保存してみると言い。出力したCSVはダブルクォーテーションで囲われるけど、
        今度はそのCSVをエクセルで開いた瞬間にエクセルのセルに出るのは数字の0だから。

        • by nemui4 (20313) on 2023年06月08日 16時34分 (#4474326) 日記

          >実際エクセルで書式文字列の 0000をCSV保存してみると言い。出力したCSVはダブルクォーテーションで囲われるけど、
          >今度はそのCSVをエクセルで開いた瞬間にエクセルのセルに出るのは数字の0だから

          Excelで '0000,'0123 と入力してcsv保存
          text editorで開くと 0000,0123
          Excelで開き直すと 0,123

          あかん

          親コメント
          • by Anonymous Coward

            #4474303 ですが、

            ダブルクォーテーションは?と思ってこっちでも再度ためしたら、以前のバージョンのエクセルではCSV保存時に引用符でくくるオプションが選べてそれがデフォルトだったし、書式で文字列設定してればくくられたんだが、
            今のバージョンオプションもなければ文字列でもくくられなくなってるな。

  • by Anonymous Coward on 2023年06月08日 15時20分 (#4474260)

    郵便番号、電話番号、社員番号、などなど。
    何度顧客に説明に上がったことよ。

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...