電子書籍の厳選無料作品が豊富!

000123456789

という12桁の数字があります。

左から3番目の桁0を一番左の先頭にくっつけて
あとの123456789は、MODで9000で割り
最終的に 03789 という5桁の数を出したいです。

頭の「0」がどうしたらくっついてくれるか悩んでいます。
よろしくお願いいたします。

質問者からの補足コメント

  • せっかくご回答いただきましたが
    MODの計算をした後、3桁目を先頭につけて
    5桁にしたいんです。
    読んでくれてないのがバレバレですね。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/01/26 06:43

A 回答 (6件)

これでできませんかね。

セルA1が計算対象です。セルA1の長さが12桁じゃなかった場合の対策が入っているので、非常に長い式になってますが。

=MID(REPT("0",12-LEN(A1))&A1,3,1)&RIGHT("0000"&MOD(RIGHT(A1,9),9000),4)

12桁対策は、セルA1の長さがいつも12になるようにREPT関数でゼロをくっ付けることでやっています。こうすればMID関数で3桁目を取り出す処理で場合分けが不要になります。で、MODの計算の時はセルA1から機械的に右9桁を取り出し、また機械的に0000をくっ付け、またまた機械的に右から4桁を取り出しています。

RIGHT関数は引数で指定された長さより実際の文字列が短くなってもエラーにならないので、REPT関数で長さを調整しなくてもいけちゃいます。
    • good
    • 0

>12桁の数字の3桁目が0じゃない時もありまして。


>その場合どうしたら良いでしょうか。

要は、3桁目が0でなくて他の数字でも先頭に持ってきて、残りの9桁を9000で割った余りとくっつけるんですか?
こういった質問はパターンの違う例示をいくつか出してほしいですね。

=MID(A1,3,1)&MOD(MID(A1,4,9)*1,9000)

とか?

>頭の「0」がどうしたらくっついてくれるか悩んでいます。

頭0だと数値では無理なので文字列にするか表示形式で何とかするしかないのですが、それが悩みどころなんですか?
どうも何がわからないのかがこちらにはわからなくて。
せめて今やっている方法とかも書いて頂けるといいのですが
    • good
    • 0

図は


A1=数値  000123456789
A2=文字列 000123456789
の場合に
A1の式 =MID(A1,3,1)&MOD(A1,9000) を
A2 にコピペした例です。
質問の12桁の数字は数値、文字列どちらですか?
数値123456789を書式設定で000123456789としていると
MID関数で3文字目から1文字は0ではなく3になります。
文字列の場合はNo3に正解がありましたが
数値の場合はMID関数で0は求められないと思います。
「MID関数を教えてください!」の回答画像4
    • good
    • 0

[No.1補足]へのコメント、


》 読んでくれてないのがバレバレですね
あら、居直られましたか…

[No.2お礼]へのコメント、
添付図参照
「MID関数を教えてください!」の回答画像3
    • good
    • 0

「123456789」をMODで9000で割ると、つまり


=MOD(123456789,9000)
は確かに「3789」です。
そこから、最終的に 03789 という5桁の数を出すには
="0"&MOD(123456789,9000)
でも
=0&MOD(123456789,9000)
でもOKですが・・・
何を難しく考えているの?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
質問の仕方が悪くてすみません。
どうしても苦手意識から難しく考えてしまいます、、。

12桁の数字の3桁目が0じゃない時もありまして。
その場合どうしたら良いでしょうか。
組み合わせ方のコツがあれば教えてください!

お礼日時:2018/01/26 06:59

「000123456789」の左から3番目の桁


=RIGHT(LEFT(A1,3),1)
此れを一番左の先頭にくっつけると
「0000123456789」
になりますが・・・

貴方の日本語大丈夫?
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!