• ベストアンサー

EXCELの数字入力で…

特定の数字。と言うか自分の場合は 4と9の無い連続した数字を入力したいのですが いい方法はないものでしょうか? 例を書いておくと 1.2.3.5.6.7.8.10.11…38.50.51…88.100…388…500… といった感じで数字入れたいのですが… よろしくお願いします。

  • senzy
  • お礼率50% (6/12)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

#4です。 >40なども避ける 関数で考えたが、複雑になるので、VBA向きの問題だと 考え作ってみました。 Sub test01() i = 1 j = 1 p02: s = Trim(Str(i)) '文字列に変換 p = InStr(s, "4") If p <> 0 Then GoTo p01 p = InStr(s, "9") If p <> 0 Then GoTo p01 Cells(j, "A") = i 'A列にセット j = j + 1 If j > 500 Then Exit Sub '500行まで p01: i = i + 1 GoTo p02 End Sub ツール-マクロ-VBEでVBE画面になる。その画面の メニューの挿入-標準モジュールで出てくる「General」とある部分の下のフレーム(四角スペース部分)へ、上記をコピペする。 F5キーで実行される。アクチブにしているSheetのA列に番号が入る。 (テスト済み)

senzy
質問者

お礼

感動ものでした…どうもありがとうございました 言うまでも無く中身は理解していませんが 言われたとおりにやったら、思ったとおりに出てきて感動!

その他の回答 (8)

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.9

#1&#2です。 エレガントなやり方ではないですが、8進法の考え方を忠実に踏襲したやり方で、5桁まで発生させる方法の例を具体的に示します。 ご質問の数字の表を作ったときに、n番目に来る数を求める方法です。 セルB7 好きな数n(十進法)を入れる セルD7 =INT(B7/8) セルE7 =MOD(B7,8) :一番下の位の数字(暫定) セルF7 =INT(D7/8) セルG7 =MOD(D7,8) :下から2番目の位の数字(暫定) セルH7 =INT(F7/8) セルI7 =MOD(F7,8) :下から3番目の位の数字(暫定) セルJ7 =INT(H7/8) セルK7 =MOD(H7,8) :下から4番目の位の数字(暫定) セルL7 =INT(J7/8) セルM7 =MOD(J7,8) :下から5番目の位の数字(暫定) セルO7 =IF(E7<4,E7,E7+1) :数字が4以上ならば1を足す(9は元々発生しないので考えなくて良い)=一番下の位の数字(決定) セルP7 =IF(G7<4,G7,G7+1) :下から2番目の位の数字(決定) セルQ7 =IF(I7<4,I7,I7+1) :下から3番目の位の数字(決定) セルR7 =IF(K7<4,K7,K7+1) :下から4番目の位の数字(決定) セルS7 =IF(M7<4,M7,M7+1) :下から5番目の位の数字(決定) セルU7 =FIXED(O7,0) :数値を文字の形式に セルV7 =FIXED(P7,0) :〃 セルW7 =FIXED(Q7,0) :〃 セルX7 =FIXED(R7,0) :〃 セルY7 =FIXED(S7,0) :〃 セルAA7 =CONCATENATE(Y7,X7,W7,V7,U7) :5つの数字(文字)を並べて1つのセルに合体にする(文字形式) セルAB7 =VALUE(AA7) :AA7を数値形式に戻すとともに、上の桁の不要なゼロを除去する(=できあがり) この方法では、任意のn番目に来る数を求めることができ、また、7の行を8の行以下に、ずらずらーっとコピーして、Bの列にオートフィルその他で好きな数を入れれば、連続した数列をABの列に表示することができます。 (空白セルが出るやり方で数列を作ると、桁が大きくなるにつれ、無意味な空白セルが延々と続く箇所が出てきてしまいます。) まあ、私の上記手順は、ださいやりかただと思いますが(笑)

senzy
質問者

お礼

どうもありがとうございました がんばってコピペしたらちゃんと出てきてビックリ(笑) なんとなく8進法にそった感じだとは感じ取れるのですが もちろん?仕組みはまったく理解できてません(爆死) 数字が出てくれる事が大事だったので…

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.8

#4、#5です。 例えばA列のA1:A1000のセルに、それぞれ1から1000の番号をオートフィルでいれる。 A1セルに =IF(OR(ISERROR(FIND("4",A1))=FALSE,ISERROR(FIND("9",A1))=FALSE),"",A1) といれて、A1000まで式を複写する。 これで条件に合う番号がB列に残りました。 1000までテストずみ。 B列のセルは空白セルが出来て歯抜け状態ですが、セルの式を消すためB列をB列に値を複写し、B列をソートすれば、上に寄せる(詰める)ことが出来ます。 上記は番号を教えてくれるだけであって、C列以右にデータが既にあるような場合にそれに条件に合った番号を振るのはVBAでないと難しいでしょう。

回答No.7

#6です。単純ミス。 式中の A2 は A1 の間違いです。

回答No.6

ツール→アドインで、分析ツールにチェックを入れます。 A列に普通に連番1,2,3,4,…を必要なだけ振ります。 B1に =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(DEC2OCT(A2),7,8),6,7),5,6),4,5)+0 と入力。 B1を選択してセルの右下のカーソルが + になるところでダブルクリック。 B列を選択してコピー、値だけ貼り付け(右クリックして形式を選択して貼り付け等、方法はおまかせ)。 A列を削除。 必要な連番が文字列の方が良ければ B1 に入れる式の最後の +0 はいりません。

senzy
質問者

お礼

ありがとうございました。 なんか、excel自体がインストールしきっていないものがあったみたいで?インストーラーが起動したので試しきれなかったのですが…すみません

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

思いつくままに式にしたら出来ました。 直上のセルに1を足して、下1桁が4か9なら、飛び越しするため2を加える。 C列でやったので、C1セルだけは1を入れる。 C2セルに =IF(OR(RIGHT(C1+1,1)="4",RIGHT(C1+1,1)="9"),C1+2,C1+1) を入れ、C3以下に複写する。 ふと見ると#1の補足の「40なども避ける」とあり、それを満たしてないですが、取りあえず上げて、Find関数でなんとかならないか考えてみます。

noname#29107
noname#29107
回答No.3

#2の回答者さんとは別の視点でやってみます。 本来の入力したいシートとは別の作業用のシートのA列で作業することとします。(A1にはタイトルとしてデータなどと入力します。)例えば、A2に1を入力してから、A2:A2000までを選択し、編集=>フィル=>連続データの作成でまず、通常の連続値(4,9含む)を作成します。 B1にはタイトルとしてフラグと入力します。 B2に =AND(ISERROR(FIND("4",A2)),ISERROR(FIND("9",A2))) と入力します。下にコピーします。 A1セルにカーソルがある状態で、データ=>フィルタ=>オートフィルタを選びます。B列のフィルタで"TRUE"を選ぶます。 A列を選んで、編集=>ジャンプ=>セル選択で可視セルにチェックを付けてOKを押します。編集=>コピー(またはCtrl+C)します。 データを入力したいシートに移動して、編集=>貼り付け(またはCtrl+V) こんな感じでどうでしょう?

senzy
質問者

お礼

ありがとうございました。 でも、自分がちゃんと理解してないせいか?上手くいきませんでした…(遠い目)

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.2

あー、なるほど。 どの位にも4と9があってはいけないわけですね。 すなわち、数字の種類を8個だけにするということですね。 それは、8進法と全く同じことですね。 まず、8進法の数を発生させます。 1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22・・・ ・・・66,67,70,71,72,73,74,75,76,77,100,101,102・・・ そうした後、各桁の数字を 0→0 1→1 2→2 3→3 4→5 5→6 6→7 7→8 という風に変換すればいいですね。 これもExcelで比較的簡単にできそうな気がしますね。 どうやりましょうか・・・。 もう、さすがに寝る時間なので(笑)また明日。

  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.1

セルA1,A2,A3,A4,A5,A6・・・・・に 1,2,3,4,5,6・・・・・を入れといて セルB1に =INT(A1/4*5) と入れたのち、 B1をB2,B3,B4・・・・にずらーっとコピーしたら 出来ましたけど・・・。 A列が表示不要であれば、列を隠せばいいです。

senzy
質問者

補足

ここに続けて書いていいのかな? あの、教わった通りにやってみたのですが 40とかでちゃうんですけど…ずっと4と9の無いままの連続した数字を入れたいのですが…不可能ですかね? 聞きっぱなしですみません

関連するQ&A

  • エクセルで数字の入力範囲で文字入力したい

    すいません 質問させて下さい 特定の数字・番号で特定の文字に変換するのではなく たとえば1~100の数字を入力した場合はA 100<150の数字を入力した場合B このような感じでやりたいのですが VLOOKUPなどなのでしょうか? すいません よろしくお願いします

  • エクセルで入力した数字を倍にするには?

    エクセルでセルに数字を入力したら自動的に倍にするには どうすればいいでしょうか? (例)5倍にしたい時 セルに200を入力すると自動的に1000になる様にすることは出来るでしょうか? また、現状、数字を入力してしまっています。 その数字を全て5倍にしたい場合どうすればいいでしょうか? 今の自分では一つ一つ計算して入力し直すぐらいしか出来ません。 かなりの量なので何かいい方法があれば教えて下さい。 よろしくお願いします。

  • エクセル パーセントの数字入力について

    パーセント表示に設定してあるセルに数字を入力する際に 下記のとおりとなってしまい、大変不便しております。 ダイレクトに数字を反映させるにはどうしたらよろしいでしょうか? (例)5%と入力したい場合に5と入力すると500%と表示されて しまうため、正確に5%と表示させるには0.05と入力しなければ ならなくてならない。

  • EXCEL 数字の規則的に簡単入力する方法

    エクセルのVBのことで質問です。 カテゴリーが質問内容と違っていれば申し訳ございません。 エクセルの機能を用いると、 「1 → 2 → 3 → 4 → 5」 と簡単にフィルボタンで増やしていくことが可能です。 私が今回皆様にお聞きしたいのは 1 → 1 → 1 → 2 → 2 → 2 → 3 → 3 → 3 … など、数字を一定の回数連続させて 順に入力する方法です。 例)数字を3回連続させて、次の数字(1を足す)に移り、また3回繰り返すという作業を続ける 関数でもVBでも構いません。 教えていただければ幸いです。 よろしくお願いいたします。

  • エクセル2010の数字入力について

    電話番号入力についての質問です。 例) 01234567788 03467892233 05645672112 07865439764 ・・・ 上のように電話番号を次々と入力していくとします。 そこで、例えば、一番上の「01234567788」がまたでてきて入力する時に、下4桁の7788と入力すると、すでに入力した同じ数字が表示される、というようにしたいのですができる方法ありますでしょうか。 例えばオートコンプリート機能のように、入力した文字列を選択するといったようにできればよいのですが、数字列には使えないとの事なので、何か良い方法がありましたら、ぜひアドバイスの方よろしくお願い致しますm(_ _)m

  • 数字が入力できなくなり・・・???

    エクセルで売り上げ入力をしています。 キーボードは いつも英数字の上の数字を利用していました。 今回、パソコンをディスクトップのものに変えました。 キーボード上に 上と右横に 数字が入力できるようになっていて 特に数字入力には 右側のものをつかうと連続で早くうて重宝していました。 ところが エクセルで使用中 突然 入力ができなくなってしまいました。 どこかを触ってしまったようですが 原因は???わかりません。 カーソルでセルは選択できるのですが・・・まったく 表示できません。 ”NUMLOOK”というところのせいでしょうか??? 数字が打てるように 解除の方法をおしえていただけませんか? おねがいします。

  • 【エクセル】 数字を5行間隔で入力

    よろしくお願い致します。 初歩的なことかもしれませんが、色々試しても分からなかったので 最終的にここでお力を貸していただこうと思い書き込みました。 ---------------------------------------------------------------- エクセルの列に、下記のように数字を5行間隔で 連続して入力していきたいのですが、 どのように設定をしたらいいのでしょうか? 例)   列   1   1   1   1   1   2   2   2   2   2   3   3   3   3   3   4   4   4   4   4 説明が分かりにいかもしれません… 恐れ入りますが、どうぞよろしくお願い致します。

  • エクセルで数字を速く入力

    多くの数をすぐに入力する方法はありますか? 例えば1~100までの数字を1つ1つ入力していくのってとても時間がかかりますよね?その1~100までの数字を1瞬で入力できるような機能なんてありますか?

  • Excelでセル内の数字だけ取り出したい。

    1セル内に最大40文字程度の半角英数カナが混在しています。 例:1234abcdアイウ3456efghijk これが数千行あるのですが、集計のため数字にしたく、 しかも数字連続と次の数字連続の間にスペースを入れたいです。 例:1234 3456 かなり調べましたが、関数では数字を取り出すだけでも40文字は不可能のように思います。 マクロで置き換えを連続させて文字を消すのは思いつくのですが、 今少しスマートな方法はありますでしょうか?

  • エクセルで同じ数字を入力・・教えてください

    売り上げの表などを作成・・ 表の中に数字を入力するとき 同じ数字を入力することが多いとき 1度に入力できる方法はありませんか? 入力したい枠を選択して できないものなのでしょうか?

専門家に質問してみよう