• ベストアンサー

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

「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個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。    

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

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

関数で対処するとして10桁の数値は数値としてではなく文字列となっている場合には次の式をB1セルに入力し、下方にオートフィルドラッグします。 数万行とのことであすからB1セルに式を入力した後でコピーし、その後に名前ボックスで10000行までならB1:B10000と入力します。これで10000行までが選択状態になりますので「貼り付け」をすればよいでしょう。 =IF(A1="","",IF(ISERROR(FIND(1,A1)),0,(IF(MID(A1,1,1)="1",1&"|","")&IF(MID(A1,2,1)="1",2&"|","")&IF(MID(A1,3,1)="1",3&"|","")&IF(MID(A1,4,1)="1",4&"|","")&IF(MID(A1,5,1)="1",5&"|","")&IF(MID(A1,6,1)="1",6&"|","")&IF(MID(A1,7,1)="1",7&"|","")&IF(MID(A1,8,1)="1",8&"|","")&IF(MID(A1,9,1)="1",9&"|","")&IF(MID(A1,10,1)="1",10,""))))

KTN1123
質問者

お礼

早速、上記関数をセルに貼り付けてみましたら思っていた通りの結果が得られました。 この度は、大変ありがとうございました。 また今後とも よろしくお願い致します。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

関数を作るしかないでしょ。 Function Henkan(ByVal S As String) As String Dim P As String Dim i As Integer P = "" For i = 1 To 10 If Mid(S, i, 1) = "1" Then If P = "" Then P = i Else P = P & "|" & i End If End If Next Henkan = P End Function

KTN1123
質問者

お礼

早々のご回答をありがとうございます。 上記関数を参考にさせて頂きます。 この度は、大変お手数お掛けいたしました。 また今後とも よろしくお願い致します。

関連するQ&A

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

    「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個以上ある場合は、「|」の記号で区切る。 上記のような数値データが数万個あり、それらを一括で変換できる方法があれば教えて頂けると助かります。 お忙しい所 大変恐縮ではございますが、何卒宜しくお願い致します。

  • 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ではどうすればよいのか分からないため質問させていただきました。 よろしくお願い致します。

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

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

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

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

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

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

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

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

  • アクセスでデータ型を一括変換したいのですが。

    アクセスで質問です。勤務表から給料計算を自動でしたいのですが、勤務内容を言葉で記載しているので(テキスト型なので)計算することが出来ません。更新クエリなどを利用して特定の言葉を数字に変換することは出来るのでしょうか?また手動で数字に変更してみたりしたのですが、結局データ型がテキストのままなので毎回データ型を指定しなおさないといけませんでした。もとのテーブルはテキスト型から変更する訳にはいかないので、給与計算用に再度テーブルを複製して、この新しいテーブルのデータ型のみ一括で数値に変換したいのですがどうしたらいいでしょうか。

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

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

  • ""を“”に一括変換

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

  • Excelで数字データ以外を取り除く方法

    Excelを使って、何千件もある数値コードのデータの修正をする必要があります。 ただ、このデータは、7桁の数値コードのはずなのに、実際には、5桁から8桁まで桁数が異なるデータもあれば、数字以外の文字や記号も入っています。 そのため、まずは、数値コードに混じる数値以外の文字や記号を取り除こうとしています。0-9の数字以外の文字が記号を削除したいのですが、なんだかうまくいきません。データを数値と認識させると、一桁目の0(ゼロ)が消えてしまったりして。。 Excelに詳しい方、どういう方法があるか教えていただけませんか。 よろしくお願いします。

専門家に質問してみよう