エクセル関数LEFTの使い方

このQ&Aのポイント
  • エクセル関数LEFTの使い方を教えてください。
  • 伝票作成の準備をしている際に、桁数の定まらない数字を正しく表示させる方法を知りたいです。
  • 特定の桁が存在しない場合、非表示にする方法はありますか?
回答を見る
  • ベストアンサー

エクセル関数 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 これを   非表示にさせる方法はありますでしょうか?

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

  • ベストアンサー
回答No.2

セルA1の値の前にスペースをくっつけてから処理すれば、数字の代わりにスペースが残ります。 =LEFT(RIGHT(" " & A1,4))

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

提示の数式はLEFT関数の文字数を省略していますが省略したときに1文字が返ることを承知していると考えて良いでしょうか? 数式で値を処理するときの考え方に誤りがあります。 処理の途中経過を見ると次のようになります。 =LEFT(RIGHT("134",1),1)→LEFT("4",1)→"4" =LEFT(RIGHT("134",2),1)→LEFT("34",1)→"3" =LEFT(RIGHT("134",3),1)→LEFT("134",1)→"1" =LEFT(RIGHT("134",4),1)→LEFT("134",1)→"1" RIGHT関数で元の文字列が指定桁数に満たないときはそのまま返されますので思惑通りになりません。 対処方法としては先頭に空白文字を連結して指定桁数が不足しているときは先頭の空白が返るようにしてください。 =LEFT(RIGHT(" "&A1,4),1)→LEFT(" 134",1)→" "

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

No1の回答の補足です。 たとえば、A1セルの最大5ケタの数字(桁数に合わせて?の数を調整)をN1セルから右に1桁ずつ分割して表示したいということなら(桁数が足りないときは空白表示)、以下のような関数を入力して右方向にオートフィルコピーするのが簡単です。 =MID(TEXT($A1,"?????"),COLUMN(A1),1) また現在の数式を利用するなら、以下のような関数にするほうが簡単かも知れません。 =LEFT(RIGHT(" "&A1,4))

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

数式をわざわざ下の桁から表示させている意味がよくわかりませんが、今の数式をそのまま使うなら以下のようにします。 =IF(LEN(A1)<4,"",LEFT(RIGHT(A1,4))) #どのような目的で数字を分解しているのかわからないのですが、桁数の決まらない数字を表示したいなら、もっと簡潔な数式で表示できます。

関連するQ&A

  • EXCELでの有効数字について

    Excelで有効数字桁数を指定して表示させています =FIXED(A1,A2-1-INT(LOG(A1)),TRUE) A1に数値、A2に有効数字桁数 0.09991 を有効数字桁数3で表示させた場合は 0.0999 となり正常ですが 0.09999 を有効数字桁数3で表示させた場合は 0.1000 となり有効数字4桁になってしまします 丸めて繰り上がる場合も3桁(0.100)にするにはどうしたらよいでしょうか よろしくお願いします

  • エクセルで数字を希望する有効数字にまるめる方法(関数など)を教えてください。

    たとえば有効数字を2桁で表現しなければならない場合、実際のセル内の数値が「0.123なら0.12に、4.56なら4.6に、678なら680に、12345なら12000に変換する。」といったぐわいです。何かよい方法はありませんか。今のところ、かなり面倒なことをやっています(笑)。それは桁数を求める関数によって実際の数値の桁数をよみ取ります。(たとえば5桁)、有効数字の桁数を引き(有効数字2桁表示ならさっきの5から2を引いて3)、最後にその数字の位で四捨五入する(3桁目を四捨五入の関数を使用)という方法です(恥)。

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

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

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

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

  • エクセルの関数

    こんにちは。 どなたか教えて下さい。 例えばA列に123456というような数字の右から3桁目に「.(ピリオド)」を挿入したいのですが、中々うまくいきません。A列には6桁、8桁、5桁など、色々な桁数の数字が入っています。このA列の数字に一律右から3桁目にピリオドを入れるにはどうすればよいのでしょうか? A1 123456 4567899 12525 122222

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

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

  • エクセルでの桁数の違う小数の表示方法?

    エクセルでの小数点以下の桁数が異なる数字で四捨五入して連続する0以外の数字が2桁までに表示する方法を教えてほしいのですが・・・ 説明の仕方がわかりずらいので例をあげると、 1.25なら1.3 0.2274なら0.23 0.000304なら0.0003 となるようにしたいのですが、それぞれ桁数が違うので一度にできません。A4サイズで100以上あるので最初に設定するか、範囲指定をすべての数字にして一度で変換するする方法がよいのですが・・・ よろしくおねがいします。

  • エクセルで桁合わせ!

    エクセルでA列に文字形式の数字があります. 例 0123 12345 234567 この文字形式の数字を仮に7桁で統一したいとします. 先頭に足りない桁は0を付加します. 変換後 0000123 0012345 0234567 このようにしたいのです. 列にあるデータごとに0を桁数分だけ付加していけばいいのですが このようなデータがたくさんあるので なにかいい方法がありましたら教えてください. お願いします.

  • セル内の文字列の分割はsearch関数やleft関数を使わずにできないのでしょうか?

    エクセルのA列に桁数が不規則な任意の数字が並んでいて、それぞれの数字には単位を表す"g"か"g/k"がついています。 B列にA列の数字を移し変えたいのですが、その際に、"g"がついているものはそのまま、"g/k"がついているものには70を掛けた後に"g"をくっつけて表記したいです。そこでB1セルに下記のような関数を使いました。 =IF(RIGHT(A1,1)="g",A1,LEFT(A1,SEARCH("g",A1,1)-1)*70&"g") のですが、すごくダラダラしてて長いように感じます。もっと簡単に同様の操作をできないのでしょうか?例えば、文字列と文字列をくっつけるのに&を使うだけですんでしまうように、-を使ったら文字が引き離せるとか、そんな便利な機能はないでしょうか? 過去の質問を検索したところ、search関数とleft関数を用いた回答が一件ヒットしただけで他に見当たらなかったので質問しました。よろしくお願いします。

  • スプレッドシート或いはエクセルでの関数について

    現在スプレッドシートでC欄に書いてある文字を何バイトか調べて、それを16進法に変換して表示するようにしたのですが(入力する文字は全て1バイト文字なので文字数から計算) その数値の後ろに0を6桁挿入する方法が分かりません。後ろに桁数を足す方法を教えてください。 例 C列50行にstartと言う単語があったらその文字数を数えて、その値に1を加算し有効桁数4桁で16進法変換しました。 =DEC2HEX(LEN(C50)+1,4) すると0006と表示されました。しかし本来は0006000000と表示したいのです。 スプレッドシートで使える関数もエクセルよりある程度減ってると思いますので難しいかもしれませんが、どうにかなりませんでしょうか?

専門家に質問してみよう