• ベストアンサー

LEFT関数を使って、ハイフンをとりたい

xlsやaccessで、410-0017といった数字の並びを、別のセル、レコードで 4100017と表示させたいのですが、これLEFT関数でできますか? 常に4番目にハイフンがくる数字の並びです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 ANo.2です。  又、 >常に4番目にハイフンがくる という場合には、次の様な方法もあります。 =REPLACE(A1,4,1,)  後それから、ANo.2と上記の私の方法や、ANo.1様の方法では、得られるデータは数値データではなく、文字列データとなりますが、もし、得られるデータを数値に変換したい場合には、VALUE関数を使うか、或いは、1を掛けるか、0を足す事で、数値に変換可能です。 =SUBSTITUTE(A1,"-",)*1 =SUBSTITUTE(A1,"-",)+1 =VALUE(SUBSTITUTE(A1,"-",)) =REPLACE(A1,4,1,)*1 =(LEFT(A1,3)&RIGHT(A1,4))*1

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

LEFT関数だけでは出来ないというのが正解ですね。 最低限RIGHT関数かMID関数を一緒に使わないと出来ません。 EXCELの方は出てるのでACCESSの方だと テキスト形式なら 新フィールド名:Replace([フィールド名],"-","") 数値形式(長整数)なら 新フィールド名:CLng(Replace([フィールド名],"-",""))

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 LEFT関数ではなく、SUBSTITUTE関数を使います。  例えば、元となる数字の並びがA1セルに入力されている場合、次の様な関数になります。 =SUBSTITUTE(A1,"-",)

回答No.1

A1セルに410-0017があったとして =LEFT(A1,3)&RIGHT(A1,4) でハイフンはとれると思います。 または  1列目(B列)に =LEFT(A1,3) 2列目(C列)に =RIGHT(A1,4) 3列目(D列)に =CONCATENATE(b1,c1) で繋げると 後でオートフィルタ使ったりするときに便利なのかも と思います。

関連するQ&A