• ベストアンサー

同一セル内の3桁の数字を任意の数字に変換し表示

excelの関数を教えて下さい。 同一セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 各セルに1数字の場合はVLOOKUP関数を使用し変換できたのですが、同一セル内に複数数字がある場合の考え方がわかりません。 よろしくお願いします。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆mshr1962 さんの回答を参考にして、こんな方法はいかがでしょう =SUM(MID("24587613",MID(A1,{1,2,3},1)*1,1)*10^{2,1,0})

その他の回答 (6)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

 回答番号ANo.2,5です。  更に別の関数を思いつきました。 =IF(AND(SUMPRODUCT(ISNUMBER(FIND(MID(A1,ROW(INDIRECT("Z1:Z3")),1),"12345678"))*1)=3,LEN(A1)=3),SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("Z1:Z3")),1),"71823654")*10^(3-ROW(INDIRECT("Z1:Z3")))),"")

papapy
質問者

お礼

複数回答ありがとうございます。 今後関数を使用する際の参考にさせていただきます。 ありがとうございました。

回答No.6

=SUM(FIND(MID(A1,{1,2,3},1),71823654)*10^{2,1,0}) それぞれの桁に分け、71823654の何番目にあるかを探し、くっつける

papapy
質問者

お礼

迅速な回答ありがとうございます。 参考にさせていただきます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 回答番号ANo.2です。  すいません、先程の関数において、一部「$」を外し忘れていた箇所が御座いましたので、ANo.2の関数は、正しくは次の様なものとなります。 =IF(AND(ISNUMBER(A1),ISERROR(FIND("0",A1)),ISERROR(FIND("9",A1))),IF(AND(INT(A1)=A1,A1>99,A1<999),(LOOKUP(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3}))+0,""),"")  それから、次の様な関数でも、同じ事が出来ます。 =IF(AND(ISNUMBER(A1+MATCH(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8},0)+MATCH(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8},0)+MATCH(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8},0)),LEN(A1)=3),(MATCH(MID(A1,1,1)+0,{7,1,8,2,3,6,5,4},0)&MATCH(MID(A1,2,1)+0,{7,1,8,2,3,6,5,4},0)&MATCH(MID(A1,3,1)+0,{7,1,8,2,3,6,5,4},0))+0,"")

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

これでは駄目ですかね。 A1=124として B1=(MID("24587613",MID(A1,1,1)*1,1)&MID("24587613",MID(A1,2,1)*1,1)&MID("24587613",MID(A1,3,1)*1,1))*1

papapy
質問者

お礼

迅速な回答ありがとうございます。 大変参考になりました!!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元の3桁の数字がA1セルに入力されているものとします。  その場合、変換後の数字を表示させるセルには、次の様な関数を入力されると良いと思います。 =IF(AND(ISNUMBER(A1),ISERROR(FIND("0",$A$1)),ISERROR(FIND("9",$A$1))),IF(AND(INT(A1)=A1,A1>99,A1<999),(LOOKUP(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3}))+0,""),"")

  • misawajp
  • ベストアンサー率24% (918/3743)
回答No.1

どのように変換したいのか判りませんが *変換に規則性があれば、その規則を関数で処理 *1000通りのテーブル作成 *1桁の数字→変換した数字がどの桁でも同じであれば、10通りの変換テーブルを作り3桁の数字を桁ごとに分解して変換し合成する *桁ごとに変換テーブルが異なるなら桁ごとの変換テーブルを作り、以下前項

papapy
質問者

お礼

迅速な回答ありがとうございます。 参考にさせていただきます!!

関連するQ&A

  • 複数桁の数字を1セルずつ表示したい

    エクセル2010を使っています。 1つのセルに入っている複数桁の数字を、1セルずつ分けて表示させたいと思っています。 しかも、数字を置き換えて桁数が減った場合には、右に詰めたいです。 (例) AIに12345 と入力したら、B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。 A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。 ただ単に数字を1セルずつ分けるだけでしたら、mid関数を使ってできるのですが、 桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。 更に、数字の左側に円マークも表示させたいです。 よろしくお願いします。

  • 様々な桁の数字を、一様の桁になおす関数

    エクセル2010を使用しているものです。 現在各セルに様々な桁の数字が入力されています。 例    2012   354861   811021354   80011687   5447845   741741 これらの数字を、頭に0をつけて全て12桁に直したいです。 例だと、2012    →000000002012      354864   →000000354864      811021354 →000811021354 どのような関数を作ればこのような処理が一括でできるでしょうか?教えてください。よろしくお願いします。

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

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

  • セル内の数字の表示形式を変えたい。

    エクセル2002を使用しています。 8桁の数字が入力されている列があります。 セルの書式設定の表示形式で確認すると標準になっています。でもおそらく標準ではないようです。セルの左上角にグリーンの三角マークが付いています。標準なら何もつかないはずです。手で再入力すればOKなんですが行数が多いのです。 この数字を標準にする方法はないでしょうか。これをVLOOKUP関数の範囲の左端列にしたいのですが、検索値が標準のためエラーになってしまいます。 良い知恵をお貸しください。 質問がわかりにくいかもしれません。補足要求をお願いします。

  • 1つのセルの中にある2桁数字を入れ替える。

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】  下記の【例】の様にエクセルの1つのセルのに2桁の数字が入っているとします。  2桁目と1桁目の数字を入れ替える方法が知りたいです。 【例】  (1)  3 → 30 :”03”を入れ替えて”30”となる。  (2) 10 → 01:”10”を入れ替えて”01”となる。  (3) 33 → 33:”33”を入れ替えて”33”となる。  (4) 43 → 34:”43”を入れ替えて”34”となる。 【注意事項】   ・2桁の数字は、1~43迄です。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • EXCELで下一桁の数字のみを表示するには?

    いくつかのセルの数値を合計した数の、下一桁の数字のみを別のセルに表示させたいのですが、そのような関数はありませんか。

  • エクセルで複数のセルにセルにある数字を1つのセルに

    こんばんは、エクセルに関してあまり詳しくないので教えて頂けませんか? A1のセルに1 B1のセルに3 C1のセルに5と、数字が1~8まで並んでいます。 その数字を、ほかの一つのセルに、135~と8桁表示するにはどうしたらよいでしょうか? その数字はrank関数で入力されたものです。 詳しい方よろしくお願いいたいます!

  • excelで数字列から4桁ずつ分けて表示させたい

    excelを使って次のようなことをしたいのですが、うまくいきません。 あるセルに 0123456789123456 と16桁の数字列を入力すると 別の表の4つのセルにそれぞれ 0123 4567 8912 3456 と表示される。 字数が15桁を超えるとexcelが認識してくれないのでそれにも困っています。 どうすればよいのかご教授よろしくお願いします。。

  • エクセル関数/任意の桁数の数字1個1個を別々のセルに読み込む関数

    こんにちは 例えば、あるセルに123456という6桁の数字が入っていたとして、1、2、3、4、5、6の6個の数字をそれぞれ別々の(6個の)セルにコピーしてくれるようなエクセル関数はあるでしょうか?

  • Excelの数字変換について教えてください

    Excel2003、IME2000を使用してます。OSはWin2000です。 Excelで数字を入れて変換をした時に常に3桁ごとにカンマが入った変換が出てくるようにしたいのです。 例えば 「1167833」→「1,167,833」 にしたいのですが実際は 「1167833」「壱百壱拾六萬七千八百参拾参」などの変換結果が上位に表示され「1,167,833」は結果の一番最後に表示されてしまいます。 全角半角がごちゃ混ぜになった変換結果にいつもイライラしています。 どのようにすれば常に3桁ごとの変換結果が出るようになるのでしょうか。 セルの書式設定で3桁ごとの表示に設定すれば数字だけ直接入力した場合は3桁になります。 ですが○○円などの単位を入れて入力した場合はそのまま入力されてしまうので困ってます。

専門家に質問してみよう