• ベストアンサー

EXCEL2007のオートフィル機能でABC利用したい

お世話になります。困っています。 連続データもしくは簡単であれば関数を使用して次のことをしたいです。 0-9までの数字とA-Zまでを使用した4列を作りたいのです。 単純にオートフィルを行うと、どうしても英数字での羅列が おかしくなってしまい、一度にオートフィルすることができません。 どのようにしたら連続データを一度に作成することができるでしょうか? 困っているので皆様の知恵を拝借させてください>< ↓こんな感じに作りたいです。単純に100万通り以上ある(?)ので、 シートを2枚に渡って作成しようかと思っています。 0000から 0001 ∫ 0009 000A 000B ∫ 000X 0010 ∫ ZZZZまで

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

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

数値とアルファベットで36進表示をするということになりますね。 計算上は 一の位=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(数値,36)+1,1) 十の位=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT(数値/36),36)+1,1) 百の位=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT(数値/36^2),36)+1,1) 千の位=MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT(数値/36^3),36)+1,1) で求めるのが可能ですが大変です。 ユーザー定義関数を使うのなら 「ツール」「マクロ」「VisualBasicEditor」で「挿入」「標準モジュール」した場所に下記を貼り付けて Function CHG36(NUM) CHG36 = Null CXX = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" If IsNumeric(NUM) Then N1 = NUM Mod 36 + 1 N2 = Int(NUM / 36) Mod 36 + 1 N3 = Int(NUM / 36 ^ 2) Mod 36 + 1 N4 = Int(NUM / 36 ^ 3) Mod 36 + 1 CHG36 = Mid(CXX, N4, 1) & Mid(CXX, N3, 1) & Mid(CXX, N2, 1) & Mid(CXX, N1, 1) End If End Function としてセル上に =CHG36(ROW()-1) とすれば行数-1の数値を4桁の36進数値(文字形式)に変換します。

yoroshikumail
質問者

お礼

mshr1962さま早速のお返事ありがとうございます。 具体的に関数まで教えて頂いて大変恐縮です。 mshr1962さまの云われたように実行しようとしたのですが、 2007では「ツール」ってどこにあったっけな?とふと思ってしまいました。 これからチャレンジしてみます! 本当にご丁寧にありがとうございます^^重ねて感謝致します。

yoroshikumail
質問者

補足

mshr1962さま大変申し訳ございません。 数時間格闘していましたが解決しませんでした。。。 教えていただいたとおりに「Function CHG36(NUM)~End Function」 までペーストしてVisualBasicEditorで標準モジュールを 作成したのですが、セルに=CHG36(ROW()-1)とすると、 #REF!となってしまいました><。 私の手順が間違っているのかと存じますが、原因がわかりません。 ペーストまでしたら、「終了してMicrosoft Excelに戻る」 だけでよろしいのでしょうか? ヘルプを参考にする限り、インポートやエクスポートは 必要ないように思って手はつけていないのですが。。。 お手すきの時にでもお返事頂ければ幸いです。 出来の悪い質問者で申し訳ありません><

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#52504
noname#52504
回答No.3

横から失礼します。 私の環境では#2さんのプログラムでうまく行きますが、 お急ぎであれば、数式で処理されてはいかが? これも#2さんがご提示されたものとほぼ同じですが…。 4行で一つの数式ですので、セルではなく数式バーにまとめて貼り付けてください。 ●1枚目のシート:"0000"からスタート 第1行目の任意のセルを =MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1)/36^3),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1)/36^2),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1)/36^1),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1)/36^0),36)+1,1) として、"GZZZ"が返るまでフィル。 ●2枚目のシート:"H000"からスタート 第1行目の任意のセルを =MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1+839808)/36^3),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1+839808)/36^2),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1+839808)/36^1),36)+1,1) &MID("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",MOD(INT((ROW()-1+839808)/36^0),36)+1,1) として、"ZZZZ"が返るまでフィル。 ※839808の部分を適当にいじれば、スタートの値を指定できます。  ちなみに、839808=18*36*36*36なので、"H000"になります。 Excel2003で動作確認済 (この回答には新規情報はほとんどないので、ポイント配分等ご留意ください)

yoroshikumail
質問者

お礼

deus_ex_machinaさまご回答ありがとうございます。 お返事遅くなり申し訳ありません。 言われたとおりにしてみたら解決しました! 本当にありがとうございます。 数式まで作って頂いて感激です。 本当に助かりました、ありがとうございました^^ ※この場を借りて投稿していただいた皆様に感謝致します。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#42041
noname#42041
回答No.1

具体的な説明ではなく申し訳ないのですが、オートフィルでやるのであれば、 ヘルプで「オートフィル」と入力し検索→「ワークシートのセルにデータを自動的に入力する」をクリック→「ユーザー設定の連続データを使用してデータを入力する」をクリック ここで表示される内容を参考に頑張ってみてください。 オートフィルの連続データの規則性を登録できる機能です。

yoroshikumail
質問者

お礼

saborimaさま早速のご回答ありがとうございます。 誠に残念ながら、ユーザー設定リストは既に行ってみたのですが、 うまくいきませんでした^^;どうしてでしょう? しかしながら、EXCEL2007自身のヘルプ機能は利用したことがなく、 2007では大変わかりやすくなっているんだと認識でき、 参考になりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2010オートフィル機能

    文字列で10桁まではオートフィルで連続データを選択できますが 11桁以上は連続データが選択肢にありません。 11桁以上でも使えるようにならないのでしょうか?

  • Excel2010 数式のオートフィルに関して

    現在Excel2010を使っています。 関数を入力し、それを2000行までフィルしたい場合、やはり2000行ドラッグするしか方法はないのでしょうか? 隣接するセルにデータがある場合はダブルクリックでオートフィルできますが、他には何もデータがない場合、2000行までドラッグするのは面倒だと思い、何か方法がないかと探しています。 数値であれば、ホームタブ「フィル」→「連続データの作成」で停止値の設定ができますが、 文字列や数式の場合は設定できないようで…。 そして、その「連続データの作成」の設定の中に、「オートフィル」とあるのに停止値の設定はできず、 そのままOKをしても何の変更も起こりません。 この機能はどんなに使うのでしょうか? もしご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。

  • EXCELのオートフィル機能について

    仕事でオートフィル機能を使うことが多いのですが、 通常、 1 2 3 とあるデータを下方向にオートフィルすると 1 2 3 4 5 6 といった形で連続DATAをひっぱりだせますが、 例えば 1 2 3 というDATAがあって 1 1 1 1 1 2 2 2 2 2 3 とDATAのコピーをオートフィルでしたいときに、 一度連続DATAを作った後に、 都度右クリックなどでDATAのコピーを選択しなければならないのですが、 初期設定で連続DATAではなくDATAのコピーを設定することは出来ませんか? もちろんコピー&ペーストという方法もありますが、 作業効率をあげるために、 カチカチっとオートフィルを動作させるだけでコピーをしていきたいのですが。。。

  • EXCELのオートフィル機能について

    お世話になります。 EXCELのオートフィル機能でセルに1を入れフィルハンドルで下にドラッグすると ずっと1のデータがコピーされますね。連続データを入れたいならば、最初のセルに1、 次のセルに2を入れて二つのセルを選択してフィルハンドルでドラッグすると 1,2,3,3,4,5・・・と数字が入ります。セルデータのコピーと連続データのコピーは 操作上に上記のような規則がありますよね。(アルファベットのオートフィルも 同様の規則性あり) ここからが本題なのですが、数字だけ、またはアルファベットだけの場合、上記のような 規則性がありながら混在文字列(A1やB1874等)の入ったセルをオートフィルすると データのコピーではなく連続データのコピーになってしまいます。(A1,A2,A3,A4,A5・・・) オートフィルで"A1"の文字列をコピーをしたい場合、ドラッグした後に表示される オートフィルオプションでセルのコピーを都度選ぶしかないのでしょうか。 混在の文字列には最初に記述した規則性が当てはまりませんがこれはこういうものですか? Microsoftオンラインヘルプにはオートフィルについてこのような説明書きはありません。 またアルファベットと数字混在の文字列の場合だと例外があります。 Q1という文字列をドラッグコピーするとQ1,Q2,Q3,Q4,Q1,Q2,Q3,Q4・・・となります。 尚、ユーザ設定リストには初期登録されたものしかなく、個人的に追加した設定リストは ありません。Q2,Q3,Q4で始まる場合も同様にQ1,Q2,Q3,Q4,Q1,Q2,Q3,Q4・・・の繰り返し となります。但しQ5をドラッグコピーするとQ5,Q6,Q7,Q8,・・・・という法則性に変わります。 これはどういうことでしょうか。なんだかバグのようにしか思えないのですが・・・ 何かご存知の方いらっしゃったら教えて下さい。宜しくお願い致します。

  • EXCEL2007マクロ/オートフィルについて

    VBA初心者です。 EXCEL2007でオートフィルのマクロを作ったのですが、下記のケースで困っています。 A列のデータが入っている行までB列のデータをオートフィルで入力したく、 A列の最終行からデータが入っている行までを求めてB列のデータをオートフィルで入れるため、下記のマクロを設定しました。 Sub test()   Range("B1").AutoFill Destination:=Range("B1", Range("A1048576").End(xlUp).Offset(, 1)) End Sub ところが、A列のデータが2行以上ある場合はうまくいくのですが、一行のみだった場合オートフィルができなくてマクロがとまってしまいます。 一行なので当然なのですが、このような処理をしたい場合、他に方法はないものでしょうか? お知恵を拝借できますと大変助かります。 どうぞよろしくお願いいたします。

  • オートフィルがうまくいかない。

    7000000000001100 この数字をオートフィルで連続したデータにしたいのですが、 右クリック→ドラッグとしても、メニューの「連続データ」が 選択できません。 桁が大きいと無理なのでしょうか? これを連続したデータにする方法がありましたら、ご教授ください。

  • Excelオートフィルとコピーについて

    Excel2007を使っています。 まず、オートフィルについてなのですが、表の途中で数字を入力し、オートフィルでコピーをしようとすると連続データになってしまいます。 試しに他の場所で同じことをしたら連続データではなく同じ数字が出ました。 これはExcelの方の認識の違いかなんかですか?? そしてこれを解消するのにCtrlを押しながらオートフィルを使います。 しかし、この時数字だけをコピーしたいのでオートフィルのオプションを使って書式なしコピーをすると数字は連続データになってしまいます。 オートフィルを使わずにコピー、貼り付けで貼り付け先の書式に合わせるという方法しかないのでしょうか? よろしくお願いします。

  • オートフィルで質問

    オートフィルを使うと、数字の連続データが出来るというのはわかったのですが、 例えばセルの位置によって123という連続データになるときと、111のようにコピーになってしまう場合があります。 ある程度詳しい方に、ctrlキーを押しながらオートフィルするとコピーと連続の切り替えが出来るというのは教わったのですが、 なぜ場所によって違う状態になってしまうのかと尋ねてもうまく答えてもらえませんでした。 どなたか詳しい方、教えていただけませんでしょうか?

  • マクロとオートフィル

    オートフィルを使った「マクロの記録」の部分でつまずいてしまいました。 A列に名前、B列に数字が入っていて、2列にオートフィルタをかけている場合 B列の0の数字のみを非表示にしたかったので オートフィルのタブを使って「0」のチェックマークを外すという動作を「マクロの記録」で記録しました。 そこまではいいのですが、データの追加があったのでオートフィルタの範囲内に数字と名前をそれぞれの列に追加したあと上記のマクロを使ってみると、どうしても追加したデータと0が非表示になってしまいます。 これを避けるにはVBAで指示しないと行けないのでしょうか?

  • マクロでのオートフィルについて

    ここの掲示板でオートフィルのことが記載されておりましたが、 それについて、質問です。 オートフィルは、範囲が明確でないと実行することができないと思っております。 データを何行か挿入して、挿入する上の行からフィル処理を行いたい 場合って可能なのでしょうか。 例 A列 B列 C列(識別するための関数処理をがはいっている) 1 アメリカ 1 2 イタリア 3 3 フランス 4 4 メキシコ 2 5行目以降に何行か似たようなデータを挿入し、C列はオートフィルで 自動で処理を行いたい。 上記で問題になるのが、データを挿入した場合、C列には関数が 入ってない状態になると思います。 フィルの最終地点が不明確な場合、どのようにやればいいかが わかりません。

専門家に質問してみよう