• 締切済み

エクセル 数値を決まった文字で表示したい

よろしくおねがいします。 excel2003 または excel2007 です。 数値を決まった文字列であらわしたいのです。できれば VBA を使わずに。 たとえば 1・・・あ 2・・・い 3・・・う などとして  123(数値)を あいう(文字列)で表示したいのです。 数値の桁数は最高で7桁です。 よろしくおねがいします。  

みんなの回答

  • a987654
  • ベストアンサー率26% (112/415)
回答No.9

NO6,7です。 どの様なエラーが出るのでしょうか。ぜひ教えてください。 この式は2003、2007で1桁から7桁まで確認済です。 >123(数値)を あいう(文字列)で表示したい と書いてありましたのでC2への設定値は数値で間違い ありませんよね。文字列は約束違反ですよ。 文字列でも全桁数字の”1234”とかなら問題ありません。 2003はためしていませんが、2007では仮に全角および 全角/半角混在でもエラーはでていません。 空白を含む”1  23”とか”  12”とかだと当然で #VALUEが帰ります(MOD関数がエラーになる)。 ご確認ください。

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.8

VBA使わずとなると、 どうしても「エレファント」な手法になってしまいますね^^;; A1セルに元の値があるとして、 =RIGHT( MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),1,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),2,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),3,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),4,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),5,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),6,1)+1,1) &MID("こあいうえおかきくけ",MID(TEXT(A1,"0000000"),7,1)+1,1), LEN(A1)) ※作業表(対応表)は使いません。 ※"こあいうえおかきくけ"の部分は、  0~9の数字に対応する部分を順に並べてください。 ※#1さん、#3-5さんの形式にあわせて  0と"こ"を対応させたので、"こ"が前にきています。 Excel2003,2007で動作確認。以上ご参考まで。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.7

NO6です。 質問に7桁とありましたね。見落としていました。 =(VLOOKUP(INT(MOD(C2,10000000)/1000000),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,1000000)/100000),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,100000)/10000),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,10000)/1000),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,1000)/100),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,100)/10),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,10)),A2:B11,2,)) となります。 2007では数式が入りきりましたが、2003では入りきるか どうかわかりません。 入りきらない場合は2つのセルで上3桁、下3桁を作り再度 2つのセルを別のセルで&結合してください。 又、ゼロの"X"が気になるようでしたらブランクでも何でも B1セルの内容を変えてください。 当たり前ですが左側のゼロをサプレスしたければB2に半角ブランクを 設定したうえでtrim関数をお使い下さい。

konan0_0
質問者

お礼

ありがとうございました。何度も回答していただきすみません。 7桁の場合はうまくいきました。 が、最高7桁で、3桁の時やら、5桁の時などもあります。 単純にその式で、もとの値を5桁などにしてしまうとエラー値が帰ります。 IF文を付けるとやたら長くなりそうですし、少し考えます。 とてもありがとうございました。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.6

邪道のようなやり方ですが、3桁と仮定して A2~A11に数値で0~9、B2~B11にX、あ、い・・・けと設定します C2に変換したい1~3桁の数値を入れます。 仮にD2に =(VLOOKUP(INT(MOD(C2,1000)/100),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,100)/10),A2:B11,2,)) &(VLOOKUP(INT(MOD(C2,10)),A2:B11,2,)) (0のところはXが入ります)これでどうでしょうか?

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! No.3.4です。 前回、大外れの回答を書き込んでしまったお詫びに! と言っては失礼なのですが・・・ 無理矢理の方法を持ってきました。 SUBSUTITUTE関数を使った方法です。 当方使用のExcel2003では ネストは最大7個みたいなので 作業列として一旦B列に 1~5までの5文字分を置き換え表示させたものを もう一度、C列に 6~0までの5文字分を置き換えています。 (Excel2007ではかなりの数のネストが出来るかもしれません) ↓の表のB2セルに =IF(A2="","",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,1,"あ"),2,"い"),3,"う"),4,"え"),5,"お")) C2セルに =IF(B2="","",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,6,"か"),7,"き"),8,"く"),9,"け"),0,"こ")) という数式を入れて、B2・C2セルを範囲指定し、 オートフィルで下へコピーしています。 これでなんとか希望に近い形にならないでしょうか? 尚、1=あ 2=い 3=う・・・・9=け 0=こ という文字に置き換えるようにしています。 この程度のかなり強引な方法しか思い浮かびませんでした。 どうも何度も失礼しました。m(__)m

konan0_0
質問者

お礼

お礼が遅くなり申し訳ありません。 何度も貴重なお時間を割いて回答いただきありがとうございます。 すみません、とても時間がなくて、まだエクセル2007で試していません。 2桁で試してみましてエクセル2002(xp)ではできました。 夜になりますが、もう少し工夫してがんばってみようと思います。 また、いい手があれば教えてください。よろしくおねがいします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.3です! どうもごめんなさい。 前回の回答は大きく外しておりました。 無視してやってください。m(__)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のA列のデータを元に、B列に表示させる場合です。 B1セルに =IF(A1="","",CHOOSE(A1,"あ","い","う","え","お","か","き")) としてオートフィルで下にコピーしています。 尚、Excel2003の場合 DHOOSE関数は29の連続データを参照できると思います(←自信はありません) 以上、参考になれば幸いです。m(__)m

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

「入力した文字に応じて【そのセルを書き換える】」のは、VBAが必要です。 すでに入力されているものなら、置換すればいいので Ctrl+Hで置換ダイアログを出して10回(0~9)置換するだけです。 関数で【別のセルに】文字列を作るのなら、#1のやり方でいいとおもいます

konan0_0
質問者

お礼

回答ありがとうございます。 まず 置換をためしてみましたが 数字(数値)を置換する段階で一致するデータがみつかりません となり 数値をTEXT関数で文字列に置き換えて見ましたが同じエラーがかえりました。 一つのセルのみでなく範囲指定でいくつもの連続したセルにしてみましたがおなじでした。 最初 演算子が足らないなどというエラーもでたので 文字列に置き換えてみたのですが同じでした。 その後数値にもどしてみましたが だめでした。 何がいけないのかもわからない状態です。 10回置換する操作をマクロボタンで覚えさせようと思いましたが その前の段階で無理でした。 やはり VBA ですかね。勉強します。 お手数をおかけしました。

回答No.1

とりあえずどこかに数字と文字の対応表を作りましょうか。 1 あ 2 い 3 う 4 え 5 お 6 か 7 き 8 く 9 け 0 こ 1行目は書式標準で「=""」と入力、2行目以降は書式文字列にしてか ら数字を入力です。これがエラー処理を極端に簡単にします。 あとは力技。最大7文字ですから、 =vlookup(mid(A1,1,1),対応表,2,0)& vlookup(mid(A1,2,1),対応表,2,0)& vlookup(mid(A1,3,1),対応表,2,0)& vlookup(mid(A1,4,1),対応表,2,0)& vlookup(mid(A1,5,1),対応表,2,0)& vlookup(mid(A1,6,1),対応表,2,0)& vlookup(mid(A1,7,1),対応表,2,0) となりますね。

konan0_0
質問者

お礼

お礼が遅くなり申し訳ありません。丁寧なご指導ありがとうございます。 教えて頂いたとおりやってみたのですが エラーが返りできません。 mid関数で取り出すところは大丈夫で、vlookupの書き方についても 間違っていないと思うのですができません。 1桁、2桁でやってみましたが無理でした。 もとの値が数値であるためか、セルの書式設定で標準に直してみましたが結果は同じでした。 とても時間がなく今日の夜にまたやってみようと思いますが 注意点等あればまた教えてください。すみません。

関連するQ&A

  • Excelで数値枠からハミダシ表示するには?

    Excel2010で、セルの表示形式-分類が「数値」のとき、セルの値を (文字列のように)はみ出し表示できるようにするには、 どうしたらよいのでしょうか?? 5文字分の幅をもつ「文字列」のセルに「1234567」を セットすると、はみ出して「1234567」を、全部表示表示できます。 これに対して、同様の幅の「数値」のセルに、1234567を セットすると、桁数オーバーで、「#####」が表示されます。 「数値」のセルでも、「文字列」のように、はみ出し可能にすることは できるでしょうか?? できるのでしたら、どのようにしたらできるでしょうか?? ご教示のほど、よろしくお願いいたします。

  • Excel 数値の表示

    初歩的な質問ですが、Excelで数値を入力する際 16桁目から「0」で表示されます。 文字列として扱いたくない場合はどうしたらよいでしょうか? よろしくお願いします

  • EXCEL セル内の数値から、5桁目だけを抽出する方法について

    EXCELシートのセル内に、以下のような30桁からなる数値が入力されている 列が複数あります。 この列内の数値の右端から「5桁目」だけ、または左端から「10桁目」だけを 抽出したいと思っているのですが、EXCELの仕様で数値の先頭にある「0」は 表示されないため、各セルごとに表示されている数値の桁数はバラバラです。 数値の先頭に「0」が付いているセルが多数あり桁数が不揃いなことと、 数値が30桁もあるため、セルの数値表示が「1E+29」のように「E+29」で表示 されてしまっており、うまく数値を抽出することが出来ません。 ◆元データ   「列1」     (1) 1234567890  →(本当は30桁:000000000000000000001234567890)    (2) 111111111100000000001111111111   (3) 1      →(本当は30桁:000000000000000000000000000001)  (4) 123456789012345678909999999999  ◆右端から5桁目だけを抽出する   「列1」      (1)  6      (2)  1      (3)  0      (4)  9   お手数お掛けいたしますが、ご指導下さいますよう宜しくお願い致します。

  • エクセル 数値だけ抽出するには?

    エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか? 文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。 A列からb列のように変換したいのです。 A列          B列 PMID:_12345678    12345678 PMID:_123456     123456 宜しくお願いいたします。

  • エクセル2003で数値を文字列に

    Windowsのエクセル2003です。 すでに入力されている文字列13桁以上を 文字列に変換できないでしょうか? 入力していくうちに先頭に0が必要な場合も出てきて 困っています。桁数はまちまちなので書式設定でも出来そうにありません。VALUEやTEXTもうまくいきません。 書式で文字列にしても文字化けしてしまいます。 何かいい方法はございませんか?

  • 数値の表示方法について

    Office2003,2007,2010いずれでも良いです、Excelです 1234567 という数値があります 1) 1234 と表示するには #,##0, が使えます 2) 1   と表示するには #,##0,,でよいようです       つまり3桁区切りに関連しているような気がします 3) 123 あるいは 12345 と自由に表示したいのですが  表示桁数をずらすのがどうも出来ません  よろしくお願いいたします。

  • エクセルで桁数の分からない数値を右から1数値ずつ抜き出したい

    エクセルで教えて下さい!! 桁数の分からない数値があります。 12345を他のセルに1数値づつ抜き出したい。 桁数が分かっていれば簡単なのですが… 桁数が分からない為その12345が入っていたセルには123456と6桁入る場合もあります。 RIGHTなら右から2文字とか3文字とか抜き出しますが…1つのセルに1つの数字を抜き出したいのです。 RIGHTなら1番右1文字は抜き出せても12345が入っている場合、2番目の4の数値を1文字だけ抜き出す事って不可能ですよね。(45を1つのセルに抜き出す事になります) 説明下手で申し訳ないですが(~_~;)分かれば教えて下さい宜しくお願いします!!ヽ(^o^)丿

  • Excelでの少数表示

    いつもお世話になってます。 Excelで表示形式は数値のまま少数を表示させたいのですが 小数桁が2にしてしてあるのに、少数部が1桁しか表示 されないことがあります。 どうやら整数部の桁数が多くなるときに、その現象が 起こるようなのですが、解決策はありますか? セルに式を埋め込んでいる場所があるので、表示形式を 文字列にしたくはありません。 表示形式を文字列にしても、セルに埋め込んだ式が正しく 計算される方法があるのならそれでも構いません。 よろしくお願いします。

  • エクセルで数値と文字が入ったセルからの数値の抽出

    皆さんこんにちは。 エクセルの使い方についての質問です。 添付画像の例のようにA列に 「XXYYYZZ(XとZは文字、Yは数値で3桁または4桁)」というフォーマットで 数値と文字が入っているセルがあります。 同様にB列には「WWZ(Wは数値)」というフォーマットで、 同様に数値と文字が入っているセルが並んでいます。 これらからDやE列にあるように数値のみを取り出すためには DやE列にどのような関数を入れてやればよいのでしょうか。 どなたか教えていただければ幸いです。 よろしくお願いします。

  • セル内の数値を少数以下の桁数指定を生かしたまま文字列として取り出したい

    VBA にて、セル内の数値の後に単位としての文字を付加して文字列として再度同じセルに入れたいのですが、うまく行きません。 例えば、少数以下3桁の数値の後に単位を付加して、1.234Vのように表示したいのですが、1.000など少数以下の数値がゼロの場合は1Vとなってしまいます。 同様に1.100は1.1Vとなります。 少数以下の桁数を数値によらず所定の桁数にする方法はありませんか。 因みに使用した式は  Moji = Range("C3").Value & "V" Range("C3").Value = Moji です。 "C3" の書式は数値の少数以下桁数を3桁としています。

専門家に質問してみよう