- ベストアンサー
エクセルのオートフィルで数字の4と9を除く連番を作りたいのですが・・・。
エクセルのオートフィルで数字の4と9を除く連番を作りたいのですが・・・。どのようにしたらできますか?教えていただけますか?困ってます。Y(>_<、)Y
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
不吉な番号の4と9を排除したいと? チョー簡単です。 1.例えばセル A1 に文字列で 1 と入力 2.[オートフィル]機能で下方にズズーッと好きなだ け(最大65536行目まで)連番を作成 3.データ範囲の任意の単一セルを選択 4.[データ]→[フィルタ]→[オートフィルタ]を実行 5.セル A1 の[オートフィルタ]矢印(▼)をクリック 6.“(オプション)”を選択 7.上段左窓内に 4 を入力 8.その右窓内で“を含む”を選択 9.“OR”に目玉入れ 10.下段左窓内に 9 を入力 11.ステップ8に同じ 12.[OK]をクリック 13.抽出された最上行のレコードの行番号(5 のはず ですね)をクリック(→当該行全体が選択され る) 14.マウスの右クリックから[行の削除]を選択 15.[オートフィルタ]を解除
その他の回答 (9)
- imogasi
- ベストアンサー率27% (4737/17069)
下1桁ではなくどの桁も4と9は除くのですか。 (1)下1桁なら A1=1、A2に=IF(OR(MOD(A1,10)=3,MOD(A1,10)=8),A1+2,A1+1) といれて下方向に式を複写。 (2)4桁までで、4,9数字を除く場合。 VBAですが Sub test01() n = Array(0, 1, 2, 3, 5, 6, 7, 8) x = 1 For i = 0 To 7 For j = 0 To 7 For k = 0 To 7 For l = 0 To 7 m = n(i) * 1000 + n(j) * 100 + n(k) * 10 + n(l) Cells(x, "A") = m x = x + 1 Next l Next k Next j Next i End Sub 5桁までであれForループを外に1つ増やしてください。 0001のようにしたい場合はCells(x,"A")=TEXT(m,"0000") でできるでしょう。
[No.5回答に対するお礼]に対するコメント、 》 1.例えばセル A1 に文字列で 1 と入力 》 2.[オートフィル]機能で下方にズズーッと… つまり、列Aは全て文字列にしましたか?数値ではありませぬ。
お礼
☆⌒(*^∇゜)v ありがとうございます!初心者なもんで(^^ゞ1時間ぐらい悩みました。おかげで疑問がが解決できました。
- mshr1962
- ベストアンサー率39% (7417/18945)
#4のmshr1962です。 一応マクロ(ユーザー関数)を使った場合 Function REN49(SUUTI) Dim RC As String, RI As Integer If IsNumeric(SUUTI) Then REN49 = SUUTI + 1 Else REN49 = 1 For RI = 1 To Len(REN49) RC = StrReverse(REN49) If CInt(Mid(RC, RI, 1)) Mod 5 <> 4 Then Exit For REN49 = REN49 + 10 ^ (RI - 1) Next RI End Function 上記をマクロとして登録後に 開始セルに開始値をセット(例 A1=1)して A2=REN49(A1) として連番作成
- sige1701
- ベストアンサー率28% (74/260)
参考までに、 A2=A1+1+OR(RIGHT(A1)={"3","8"})+OR(RIGHT(A1,2)={"38","88"})*10 桁数によって +OR(RIGHT(A1,3)={"388","888"})*100 の様に加えてください
[No.5回答]の補遺、 次のステップを 13 と 14 の間に追加してください。 13.5.Ctrlキーと Shiftキーを抑えたままで、下矢印 (↓)をキーを一発叩く
- mshr1962
- ベストアンサー率39% (7417/18945)
下一桁だけ対象なら単純ですが =A1+IF(OR(MOD(A1,10)=3,MOD(A1,10)=8),2,1) 全桁だと、38→50,88→100といった変換が出るので関数だと難しいです。 マクロになるかな?
- redowl
- ベストアンサー率43% (2140/4926)
連番のケタ、 最大値は幾つまで かを示してくれると考えがまとまるのですが・・・
- chie65536
- ベストアンサー率41% (2512/6032)
A1セルに「1」と入れて、 A2セルに「=ROUND((MOD(A1,5)+3)*1.25,0)+INT(A1/5)*5-3」と言う式を入れ、A2セルを下方向にオートフィルでコピーして下さい。
- merlionXX
- ベストアンサー率48% (1930/4007)
通常のオートフィルでそのような連番は無理ですので、こうしませんか? A1セルに1としたら A2セルに =IF(OR(RIGHT(A1,1)="3",RIGHT(A1,1)="8"),2,1)+A1 と入れて、あとは下までずーっとドラッグしてみてください。 式ではなく数値としてほしいのであれば、その範囲をいったんコピーして値で貼り付けてください。
お礼
ありがとうございます(^▽^喜)でも何故か、6~12のステップをやってもレコードが0個見つかりました。とばかりなります何度も試みてますが・・・、私も疑問です。ちなみにエクセル2002です。4以上とかやるとちゃんと命令どおり表示されるのに・・・。