• ベストアンサー

数値データの最後尾の値から判定し一括変換する

「EXCEL」または「ACCESS」でのデータ変換について質問です。 下記のような「0」と「1」からなる10桁の数値があり、 値の末尾からみて数値を以下のように括変換する方法があれば教えて下さい。 (本来は10桁の数値なのですが、EXCELの仕様で先頭の「0」は非表示) 例(1)0      →0 例(2)1111111111 →1|2|3|4|5|6|7|8|9|10 例(3)1010110000 →1|3|5|6 例(4)110010   →5|6|9 例(5)1000000010 →1|9 例(6)1      →10 10桁の数値の左側から順に「1」になっていれば、その桁の数値に置き換える。(末尾1桁目は「10」、末尾3桁目は「7」、末尾10桁目は「1」) また置き換えた数値が2個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No1です。 作業列を作らなくとも解決はできるのですが、式がかなり複雑になりますので示さなかったのです。 作業列で使ったREPT("0",10-LEN(A1))&A1の部分はC列で使うB1セルに対応しています。C列での式のうちで最初のB1はA1に変えればよいのですが、次からのB1はすべてREPT("0",10-LEN(A1))&A1で置き換えることにします。

KTN1123
質問者

お礼

KURUMITO様、ご回答ありがとうございます。 B1を「REPT("0",10-LEN(A1))&A1」に置き換えることで、希望通りの結果を1回で得られ、お蔭様で、作業効率がぐんとUPすることが出来ました。 本当に重ね重ね、お世話になりありがとうございます。

その他の回答 (2)

回答No.2

「1|9」のように最後に「|」を表示しないようにするには、たとえ作業列を使っても関数で対応すると非常に冗長になってしまいます。間違いが入り込み易いですし、間違があってもとても探しにくいです。 前回の回答で示されたユーザ定義関数に「TEXT(A1,"0000000000")」を渡すのが簡明だと思います。

KTN1123
質問者

お礼

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

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

前回のご質問では10桁の文字列の場合でしたね。 今回のご質問もA列にデータがあるとしたらB列を作業列としてB1セルには次の式を入力します。 =IF(A1="","",REPT("0",10-LEN(A1))&A1) このようにしてからB1セルをアクティブセルにしてコピーします。次に名前ボックスにB1:B30000のように入力しEnterします。範囲として選択されますのでCtrl+Vの操作をして、その後にEscキーを押すことで、B1セルの式がB30000まで貼り付けられます。 C列には求める答えを表示することにします。 C1セルには次の式を入力します。 =IF(B1="","",IF(ISERROR(FIND(1,B1)),0,(IF(MID(B1,1,1)="1",1&"|","")&IF(MID(B1,2,1)="1",2&"|","")&IF(MID(B1,3,1)="1",3&"|","")&IF(MID(B1,4,1)="1",4&"|","")&IF(MID(B1,5,1)="1",5&"|","")&IF(MID(B1,6,1)="1",6&"|","")&IF(MID(B1,7,1)="1",7&"|","")&IF(MID(B1,8,1)="1",8&"|","")&IF(MID(B1,9,1)="1",9&"|","")&IF(MID(B1,10,1)="1",10,"")))) C1セルからC30000までコピーして貼り付けの操作はB列の場合と同様にすればよいでしょう。

KTN1123
質問者

お礼

KURUMITO様、前回に引き続き ご回答頂きましてありがとうございます。 早速試したところ、理想的な結果を得ることが出来ました。 【=IF(A1="","",REPT("0",10-LEN(A1))&A1)】で、数値を逆に並べ替えてから、次に一括変換を行っているのですね!(^^)! ちなみに、この式を1つにまとめることは可能でしょうか? 1つの数式にすると、かなり複雑なことになりそうでしたら可否だけでもお答えいただけると幸いでございます。 お忙しい所 大変恐縮ではございますが、宜しくお願い致します。

KTN1123
質問者

補足

ご回答いただいた数式から得られる結果が下記のようになりました。 例(1)0      →0| 例(2)1111111111 →1|2|3|4|5|6|7|8|9|10| 例(3)1010110000 →1|3|5|6| 例(4)110010   →5|6|9| 例(5)1000000010 →1|9| 例(6)1      →10| この右端に表示される「|」を削除したいのですが、どうすればよろしいでしょうか?

関連するQ&A

  • 数値データの一括変換方法について

    「EXCEL」または「ACCESS」でのデータ変換について質問です。 下記のような「0」と「1」からなる10桁の数値があり、 それを特定のルールに従い一括変換する方法があれば教えて下さい。 例(1))0000000000 →0 例(2))1111111111 →1|2|3|4|5|6|7|8|9|10 例(3))1010110000 →1|3|5|6 例(4))0000110010 →5|6|9 例(5))0000000001 →10 10桁の数値の左側から順に「1」になっていれば、その桁の数値に置き換える。(1桁目は「1」、3桁目は「3」、10桁目は「10」) また置き換えた数値が2個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。    

  • ACCESSでの桁数を指定して数値を抜き出し、カンマ区切り表示にする方法

    ACCESSでのデータ変換について質問です。 下記のような半角20桁の数値が入力されているフィールドが1~10まであり、 これらの値の左側から7桁目までの数値を抜き出し、それら抜き出した 数値の1桁ごとに「,」で区切って表示したいと思っているのですが、 一括括変換する方法があれば教えて下さい。 例(1)12345678910000000000 →1,2,3,4,5,6,7 例(2)00000000001234567890 →0,0,0,0,0,0,0 例(3)00112233445566778899 →0,0,1,1,2,2,3 私は、アクセスに不慣れなので、数式を入力する方法も合わせて教えて いただけると大変助かります。 MID関数を使えばいいらしいのですが、ACCESSではどうすればよいのか分からないため質問させていただきました。 よろしくお願い致します。

  • エクセル 数値データを桁をそろえて文字列データに変換するには

    よろしくお願いします。 エクセル2002を使用しています。 数値データとして整数1桁、2桁、3桁のデータが混在してあります。 これを1桁、2桁のものは前にゼロを付けて全て3桁の文字列に変換する方法はありますか? できれば関数を使って 例  数値 文字列   8⇒008  12⇒012 235⇒235  11⇒011 できた文字列で品番コードとして使用します。 どなたかご存知の方、ご教授お願いします。

  • エクセルの数値を自動的に変換したい。

    エクセルの数値を自動的に変換したい。 例えば、 01001と表記されている数値を1-1に 02009と表記されている数値を2-9に 自動的に変換して表上に抽出する方法はないでしょうか。 つまり、 頭2桁がハイホンの左側の数値、 下3桁がハイホンの右側の数値、 みたいな形にしたいのですが、何か良い方法はないでしょうか。 よろしくお願いします。

  • エクセルで数値を一括変換する方法

    エクセルに入力した1から10までの数値を、0から9までの数値に一括変換する方法を忘れてしまいました。どうやってやるか教えて頂けますでしょうか?

  • エクセルでの日付の数値変換

    エクセルで8ケタ構成の日付(例20140101)を入力しているのですが#########という表示になってしまいます。他シートの日付データとVLOOKUPをしたいので数値に変換したいのですが方法をご教示頂けませんでしょうか。講師の方に教わっていただいているときに「▽マークが出てくるのでそこから数値に変換を選んでください」というようなことを言われたのですがどうすれば▽マークが出てくるのか分からずにいます。お手数ですが宜しくお願い致します。

  • ""を“”に一括変換

    xpでwordですが "あいうえ"→“あいうえ” 前の方の"記号を “の記号に変換したい 複数ページ(50p程)の全てを一括変換したいのですが 良い方法ありますでしょうか? 宜しくお願い致します。

  • Excel2010VBAの数値判定、桁数

    Excel2010VBAの数値判定で、例えば「TextBox1」で、西暦の年数が入ります。 「TextBox1」の桁数が4桁をチェックしたい場合(4桁しか入力してはいけない場合)どうすればよいでしょうか?ただし、1桁目の数値は0ではいけません。 例: 0123・・・× 2014・・・○ 回答よろしくお願いします。

  • Excel2010:数値を自動的に変換したいです

    お手数おかけいたしますがどなたか教えてくださいませんか。 <数値を自動的に変換したい> セルAにある「001」~「100」までの数字を、2ケタの特定の番号に変換して並び替えたいのです。 (例) 001→18、002→03、003→15、004→12、005→18、006→15、007→20など・・・です。 001~100までのものを2ケタの番号にグループわけしたいです。 何か良い方法がございましたら、よろしくお願い致します。

  • PDF からの 数値データ抽出

    PDFファイルに数値データが表として載っています。 どうにかデータ(EXCEL,CSV など)で抽出したいのですが。 そもそもPDFなので無理は承知なのですが 画像データから数字をデータとして 変換できるソフトor方法 何かありませんでしょうか?

専門家に質問してみよう