• ベストアンサー

エクセルの関数について

考えてもなかなか思いつかないので、、 教えてください。 ABC△△00012(もしくはABCD△00011) のような形のデータを ABC00+000+00012(プラスは入りません。わかりやすいように 追記しているだけです) つまりスペースを0に変換して真ん中に3桁の000を入れて 合計13桁に変換したいと思います。 関数として、 SUBSTITUTE(A1," ","0") #データがA1にあるものとして・・・ これでABC0000012に変換し、 CONCATENATE(LEFT(R[-6]C,5),"000",RIGHT(R[-6]C,5)) これでABC0000000012の13桁に変換できますが、 この2つの関数をつなげて一つにしたいのですが、 うまくいきません・・・。 どのようにしたらよいのでしょうか? また、逆に、 ABC0000000012の13桁をABC△△00012に変換するには どのようなやり方がよいでしょうか・・? よろしくお願いします。

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

  • ベストアンサー
  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

chelnyさん、こんにちは A1にデータがあるものとして.. CONCATENATE(LEFT(SUBSTITUTE(A1," ","0"),5),"000",RIGHT(SUBSTITUTE(A1," ","0"),5)) でよいでしょ? 逆(13桁→10桁)は、B1にデータがあるとして.. LEFT(B1,3)&"△△"&RIGHT(B1,5) ですかね。

chelny
質問者

お礼

失礼しました 少しアレンジして、 SUBSTITUTE(LEFT(A2,5),"0"," ")&RIGHT(A2,5) これでいけました。 わかりやすくありがとうございました!

chelny
質問者

補足

ありがとうございます! CONCATENATE(LEFT(SUBSTITUTE(A1," ","0"),5),"000",RIGHT(SUBSTITUTE(A1," ","0"),5)) こちらはばっちりです! 逆の場合ですが、 LEFT(B1,3)&"△△"&RIGHT(B1,5) これだと、ABCD000000123 のときに、ABC△△000123になってしまいます。 ABC部分が3桁のときや4桁のときがあるんですよ(涙) 何か他に案はありますでしょうか?

その他の回答 (3)

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.4

No2です。 補足説明 "0000000000"は書式の設定ですから、例えば、0の替わりに記号や文字を入れればその通り出てきます。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

う~ん A1に ABC△△00012 B1に =LEFT(SUBSTITUTE(A1," ","0"),5)&"000"&RIGHT(SUBSTITUTE(A1," ","0"),5) C1に =SUBSTITUTE(LEFT(B1,5),"0"," ")&RIGHT(B1,5) は違いますか?

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.2

以下の方法では、 A2へデータが入っているとして、データは10桁で固定されている条件です。 =LEFT(A2,3)&TEXT((RIGHT(A2,7)*1),"0000000000") 桁数はゼロの数を調整してください。

関連するQ&A

  • ACCESSクエリーでの記述方について

    以前、エクセルのマクロとして、下記のような記述を教えていただきました。 CONCATENATE(LEFT(SUBSTITUTE(A1," ","0"),5),"000",RIGHT(SUBSTITUTE (A2," ","0"),5)) これは、ABC△△00012(もしくはABCD△00011) のような形のデータをABC00+000+00012(プラスは入りません。わかりやすいように追記しているだけです) つまりスペースを0に変換して真ん中に3桁の000を入れて 合計13桁に変換する方法としてご教示いただきました。 エクセルではこれで問題は解決したのですが、同じことをアクセスのクエリでやる必要が出てきました。 エクセルでA1と指定した内容がテーブル1に、A2がテーブル2に入っているとして、concatenateは  テーブル1 & テーブル2 As Alias Combine FROM Table; でいけそうなのですが、SUBSTRING等はどのように書けばよいのでしょうか? 教えていただけると助かります。どうぞよろしくお願いします。

  • エクセル関数 CONCATENATEについて

    ご存知の方教えてください。 エクセルの関数のCONCATENATEについてなのですが、 よく例としてあがっているのは 「=CONCATENATE(A1,B1,C1,D1)」 みたいなものでひとつの行の結果(A1,B1,C1,D1)を あわせた結果しかでてきません。 1つの行ではなく、他の行にもABCDにまとめたい ものが入っていてそれをひとつひとつまたCONCATENATE で指定するのではなく、2行目は(A2,B2,C2,D2)をまとめたもの、 3行目は(A3,B3,C3,D3)をまとめたいです。 一度の関数の指定でできたと思うのですが、 どうやればできるのでしょうか。 たしか\とか使っていた気がするんですが。 よろしくお願いいたします。

  • EXCELで 一桁の数値を二桁に

    教えてください。 エクセルで、入っているデータを編集しているのですが A列には、一桁の数値が B列には、1桁から2桁の数値が C列には、1桁から2桁の数値が D列には、文字データが入っています。 D列のデータに対する対応表を作るために このA~C列のデータを CONCATENATE関数を使って合体させたいのですが、 (合体させると、数値がダブらない為) B列とC列に入っている1桁の数値を 2桁に変換したいのですが、 何かよい方法はありませんでしょうか? 手打ちで変換するには、かなり多いデータなのです。 どなたか、助けてください。

  • エクセル CONCATENATE関数

    エクセル2003のCONCATENATE関数で作ったテキストを関数化(数式化)できないでしょうか。 たとえば、C3のセルに下のCONCATENATE関数を入れ =CONCATENATE(D3,E3,F3) 文字列"=sum(A1:A10)" を表示させ、 その後CONCATENATE関数をのぞき、=sum(A1:A10)を計算させたいのです。 CONCATENATE関数で合成されたセルをコピーし、形式を選択して貼り付けから値だけを貼り付けても、なぜかうまくいきません。 =sum(A1:A10)とC3に表示され、計算は実行されません。

  • SUBSTITUTE関数とREPLACE関数に関して

    こんにちは。 文字列と数字の間にハイフンを入れ、不要なゼロを消すことが できる関数を探しています。 例えば・・・ A1のセルに 【ABCD012345】 というデータが入っているとして、 最終的には 【ABCD-12345】 と表示させるようにしたいと考えています。 ABCDと数値の間にハイフンを入れ、数値の頭がゼロの場合は ゼロを削除して表示させるようにしたいのです。 今私がやっている方法は B1のセルに =REPLACE(A1,5,0,"-") と入れ、 ABCD-012345 と表示させ C1のセルに =SUBSTITUTE(B1,"-0","-") と入れ、不要なゼロをハイフンに置き換えて、 ABCD-12345 と2段階を経て表示させています。 これをもっと簡単にできる方法はありますでしょうか。 よろしくお願いいたします。

  • 数値を分割する関数教えて下さい。

    CONCATENATE関数を使ってsheet1のデータをsheet2のように結合しました。   Sheet1         sheet2    A    B          A 1  1    1    →  1  11 2  20   1       2  201 3  100   1       3 1001 これをまた別のシートでsheet2のA列に入っている数値が一桁目以外(1 or 20 or 100)が入っていたならば○という、逆に分割して検索するものを作りたかったのですが、RIGHTやLEFT関数などをつかってみましたが上手くいきません。良い方法はないでしょうか?(最初のシートは上書きして別のデータを入力しているので使用できないためです。)宜しくお願いします。

  • アルファベット 26進数データをエクセルで作成

    エクセルでデータを作成したいと思っています。 C列にある10進数のデータを参照して、3桁のアルファベットを表示させたいのですが、 関数で出来ますでしょうか? 0=AAA、1=AAB、・・・25=AAZ、26=ABA、・・・17575=ZZZ、17576=AAA (A=0、B=1・・・Z=25の26進数で3桁のアルファベット) 自分なりにやってみたこと C2セルに変換させたい10進数が入っているとして、 3桁アルファベットの上位桁関数=QUOTIENT(MOD(C2,26^3),26^2) 3桁アルファベットの中位桁関数=QUOTIENT(MOD(C2,26^2),26^1) 3桁アルファベットの下位桁関数=QUOTIENT(MOD(C2,26^1),26^0) として、Vlookup関数で上記関数で求まった数に対応するアルファベットを求めて、 CONCATENATE関数で結合しようと思ったのですが、 そもそも、アルファベットの各桁を求める関数がこれであっているのかわかりません。 以上、宜しく御願い致します。

  • このエクセルの複雑な関数を訳してください!

    こんにちは。 これから年賀状の季節ということで、エクセルでリストを作成し、印刷にまでこぎつけたいと思うのですが、「(株)や(有)を除いた会社名順に並び替えたい」と考えております。 そこで、こちらのOkwebで検索したところ、下記のような式がアドバイスされていました。とてもありがたいです。 ただ、こちらをそのまま使わせていただいてもかまわないのですが、式に興味を持ち、自分で辞書をひいて調べたところ、構造が理解できませんでした。 そこで、どなたかこちらのエクセルの式を訳していただけないでしょうか。 =CONCATENATE(LEFT(PHONETIC(A2),FIND("(",PHONETIC(A2),1)-1),MID(PHONETIC(A2),FIND(")",PHONETIC(A2),1)+1,LEN(PHONETIC(A2)))) CONCATENATE関数で、LEFT関数・MID関数・LEN関数で出したものを結合する? ・LEFT(PHONETIC(A2),FIND("(",PHONETIC(A2),1)-1) ・MID(PHONETIC(A2),FIND(")",PHONETIC(A2),1)+1 ・LEN(PHONETIC(A2) このようにわけられるものでしょうか。 アドバイス、よろしくお願いします!

  • エクセルで、異なる列のデータを、ひとつの列に、ある一定の規則でまとめる方法、を、教えて下さい。

    質問させて頂きます。 A1      A2      A3      ~      A30      B1 B2 B3 ~ B30 C1 C2 C3 ~ C30 A、B、C列に、異なるデータ(関数)が30行まで入っています。 これらのデータをひとつの列にまとめたいのですが、 A1 B1 C1 A2 B2 C2 A3 B3 C3 ~ A30 B30 C30 上記のように、ABCの1行目、ABCの2行目、といった感じに 並び替える方法をご存知でしょうか? ちなみに、それぞれの列に入っているデータは「CONCATENATE関数」です。 「値」ではなく、あくまでも「関数」のまま並び替えたいと思います。 宜しくお願い致します。

  • エクセル関数を教えてください

    以前こちらで回答を頂き、活用させていただいてます。 今回の質問についてもおねがいします。  ※今回の質問 セル内の4桁の数字(1から0までの数字を使用した4桁;例えば1249)を、別のセル内に、関数(1234567890をそれぞれ2458761390へ変換する関数)で変換された4桁(例えば2489)で表示したいのですがその際に使用する関数を教えてください。参考に前回の質問と回答を参照します。 よろしくお願いします。 ※前回の質問 セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 ※回答 =SUM(FIND(MID(A1,{1,2,3},1),71823654)*10^{2,1,0}) =SUM(MID("24587613",MID(A1,{1,2,3},1)*1,1)*10^{2,1,0})

専門家に質問してみよう