Excel関数で3桁の数字を分割して足し合わせる方法について

このQ&Aのポイント
  • Excelの関数を使って、1つのセルに入力されている3桁の数字を分割して足し合わせる方法について質問です。
  • 具体的には、例えば525と入力されている場合に、5 + 2 + 5の計算結果である12を隣のセルに表示させたいです。
  • 現在、『=LEFT(A1,1)+MIDB(A1,2,1.5)+RIGHT(A1,1))』という関数式を使用していますが、009などの数字に対して#VALUEエラーが出てしまいます。MIDB関数の使い方に何か問題があるのでしょうか?
回答を見る
  • ベストアンサー

Excelの関数で困ってます。お願いします!

1つのセルに入力されている3桁の数字(例えば525)を、隣のセルに、それぞれを分割させて足した数字(例で言えば=5+2+5)の合計(=12)を表示させるような構成の物を作りたいんです。 そこで関数として『=LEFT(A1,1)+MIDB(A1,2,1.5)+RIGHT(A1,1))』と言う設定をし、うまくいっているように思えたのですが、『009』と言う数字に対して#VALUEエラーが出てしまいました。検証してみると、どうやら真ん中のMIDB関数に問題があるようなんですが、そのほかの数字に対しては問題なく動いています。 そもそもMIDB関数のこともよくわからない、本に書いてあった指示のままに使ったのですが、これはどこが間違っているのでしょうか?ちなみに、MIDBの最後のバイト数の定義では1.5ではなく1でも他のはちゃんと動いてくれました。 わかる方がいましたら、よろしくお願いします。

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

  • ベストアンサー
  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  3桁の数字が必ず入っているのであれば、エラーは出ないと思います。(試したら、009で出ませんでした。)ただし、9だけだとエラーになります。これは2桁目が無いからです。「'009」(009という文字)のように入れればエラーにはなりません。  対処方法としては、MIDB(A1,2,1.5)をMIDB(TEXT(A1,"000"),2,1.5)とすれば良いと思います。  あと、バイト数の1.5は意味が無いので、1でよいです。 では。

san1126
質問者

お礼

ご回答ありがとうございました。ご指摘のように修正したところ、無事に解決できました!

その他の回答 (1)

noname#123709
noname#123709
回答No.1

A1セルの書式を文字列に変更してもダメですか?

san1126
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • エクセルで数字を抜き取りかつ振り分けたいです。

         A1セル書き込まれた、X-54760Y-84360 という文字列からX後の-54760とY後の-84360を抜き取って、B1、C1セル等横方向に振り分けたいのですがどうするといいでしょうか? FIND MIDB LEFT RIGHT 等をうまく活用できれば いいのかもしれませんが、できません。 なおXY後の半角数字は2~8桁です。(X-1276585Y80等)よろしくお願いいたします。

  • エクセル文字列の関数について

    エクセルで、例えば、¥15,214みたいな一つのセルに入っている数字があるとします。その数字を一つ一つのセルに A1 1 A2 5 A3 2 A4 1 A5 4 と5桁の分ける場合、どうすればよいのでしょう? MID、RIGHT関数、と試してみましたが、どうも桁がずれたり、分かりません。 ちなみに数字の桁は変更がありますので、5桁の場合もあるし、3桁の場合もあります。あと、¥マークも付けたいと思っています。教えてください。

  • エクセル関数 LEFTの使い方

    使い方が良く分からないので教えてください エクセルで伝票作成を行う準備をしています 数字をLEFT変換させて使おうと思いますが 桁数の定まらない数字を正しく表示させるようにする方法を教えてください A1に 134 と打った場合 N1=LEFT(RIGHT(A1,1))=4                    LEFT(RIGHT(A1,2))=3                    LEFT(RIGHT(A1,3))=1 となりますが  4桁目が存在しない場合3桁目が表示されてしまいます                    LEFT(RIGHT(A1,4))=1 これを   非表示にさせる方法はありますでしょうか?

  • 123,156,789.012345を3けたずつにわけて、違うセルに飛ばす関数を教えてください。

    A1のセルに123,456,789.012345という数字があります。 これをB1のセルに123、C1には456。D1には789、E1には少数点以下の012。さらにF1には345を表示する関数を教えてください。 6桁までならRIGHT・LEFTの関数でなんとかなったんですが、手に負えなくなってしまいました。(笑 関数がまだよく分かりません。説明がまずいかもしれませんが宜しくお願いします。

  • EXCEL 2010 VBAまたは関数について

    こんにちは 初投稿です。 早速ですが、VBAまたは関数について質問させて頂きたいのですが・・・ 一つのセルに複数の数字と文字列がセルのE1混ざっている場合, (12345abc678cdef9ghijk)と入っている場合 にこの例で行くとセルのA1に12345セルB1に678セルC1に9というように数字で表示させたいのです が、最初関数で A1=VALUE(MID(E1,1,5)) B1=VALUE(MID(E1,9,3)) C1=VALUE(MID(E1,16,1)) と言う形で数字だけ抜き出していたのですが これだと数字の桁数が違ってくる(※正し文字列の長さは一緒 数字だけが桁が違ってきます) と表示されなくなってしまうため、 出来れば関数をいじらなくても表示されるようにしたいのです。 VBAもしくは関数でこの問題を解決出来る方がいらっしゃるなら どうぞよろしくお願い致します。 長文失礼致しました。 | A | B | C | D | E | ------------------------------------------------ 1 | 12345 | 678 | 9 | | 12345abc678cdef9ghijk | 2 | | | | | |

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

    考えてもなかなか思いつかないので、、 教えてください。 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に変換するには どのようなやり方がよいでしょうか・・? よろしくお願いします。

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

    以前こちらで回答を頂き、活用させていただいてます。 今回の質問についてもおねがいします。  ※今回の質問 セル内の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})

  • エクセルの数式について

    A1のセル:214547-855-49 A2のセル:21459-2-58 A3のセル:2145778-37-1 というように、数字が入っており、桁数も違うのですが、左から-が二つ目以降の数字だけを取り出したいのですが、一桁のときは、RIGHT関数だと‐が入ってしまったりします。 いい関数などを教えていただけるとうれしいです。

  • エクセルの関数を教えて下さい

    エクセルの関数が思いつかないのでどなたか教えて頂けませんでしょうか 書きたい関数は一つなんですけど、いくつかの条件があるんです。 1つめの条件 指示数がα セルA1からセルA5までの中に数字があればその合計数からαを引く 但し、表示させたい数字はα 数字を入れるとこんな感じになります 【指示数は20 セルA1からセルA5までの合計数は30 その場合表示させたいのは20】 2つめの条件 指示数は20 セルA1からセルA5までに数字がなければA6の数字からαを引く ただし表示させるのはα 【指示数は20 セルA1からセルA5までの合計数は0 セル6には30ある その場合表示させたいのは20】 3つめの条件 指示数はα セルA1からセルA5までの合計数がαより小さい場合にはセルA6の数字から残りの数を引く その場合表示させたいのは セル1からセル5の合計数からαを引いた数とその残りの数 【指示数は20 セルA1からセルA5の合計数は12 セルA6は20 その場合表示させたいのは 12と8】 4つめの条件 指示数はα セルA1からセルA5の合計数を足した数よりも、A6の数字よりもαが大きい その場合表示させたいのは セルA1からセルA5の合計数とA6の数からαを引いた数 【指示数は20 セルA1からセルA5までの合計が3 A6の数は6 その場合表示させたいのは11】 こんな4つの条件を兼ね揃えた関数なんてありますでしょうか? 1つの関数ではなく 条件1がダメなら条件2 条件2がダメなら条件3 という様に次々と計算していく様な連続した関数でも構いません。 分かりにくい表現だとは思いますが どなたか知恵を貸して頂けませんでしょうか 宜しくお願い致します。

  • Excel2000使用・関数式を教えてください

    A列~AV列まで6桁の数字が入力されています。 行によって、入っている件数(F列までデータが入っているとか、 AC列まで入っているとか)はマチマチです。 入っている数字もマチマチです。 数字の中には、000001、001000など、0から始まる数字もあり、 セルの書式設定はユーザー定義で種類を000000にしています。 別sheetに6桁の数字の一覧があるのですが、 (1)一覧にない数字が入力されているとエラーが表示されるようにしたい また、 (2)6桁の数字は前半3桁と後半3桁が隣の列のセルと一致しないといけないのですが、 不一致の場合は、エラーが表示されるようにしたい 例) A2 000001 B2 001000 C2 000120 D2 120346 E2 346508 F2 508346 G2 346508・・・    A3 123456 B3 456280 C3280002 D3 002428 E3 428508 F3 508346 G3 346213・・・ E2 346508 F2 508346 G2 346508 のように数字が繰り返すこともあります。 Light関数を使うと(2)は解決できたのですが(1)が解決しません =IF(RIGHT(TEXT(入力Sheet1!A2,"000000"),3)=LEFT(TEXT(入力Sheet1!B2,"000000"),3),"","ERR") MATCH関数を使うと =MATCH(入力Sheet1!A2,一覧sheet!$A$2:$A$500,0) (1)は解決したのですが、(2)が解決しません。 (1)(2)とも解決する式、或いは方法を教えて頂けたら助かります。 上記の関数式は、以前、この場で教えていただいたものです。 入力用のシートと別に、検証用のシートを作成しています。 又、もし、もし可能でしたら、別シートにある数字が4桁と5桁と6桁が混在している場合でも流用できるものであるとなお有り難いです。 その場合は前後の3桁が一致するときと、前後の2桁が一致するときがあるという イレギュラーなケースになります。入力した数字は以下のようになります 12345 4512 12650 65034 3458 58260 260013 013134 ・・・ よろしくお願い致しますm(__)m