- ベストアンサー
エクセルで、特定の数字を抜いた文字のカウント
当方は原付のナンバープレートの作成に携わる者です。 ナンバープレートは数字の「4」を除いた番号のみで作成します。 0~1000までのプレートを作ろうと思ったら 40番台400番台、下一桁が4も当然ダメです。 これを今まで頭で計算していました。 エクセルで簡単に計算できる方法はありませんでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
次のようにしてはどうでしょう。 A2セルに0をA3セルに1を入力してからA2セルとA3セルを選択して下方にドラッグコピーし、1000までの数値を並べます。 その後に4を含む数値を上から順に並べるとしたら作業列としてB列を使用し、B2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(ISERROR(FIND("4",A2)),MAX(B$1:B1)+1,"")) その後にお求めの数値をC列に表示させるとしてC2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>COUNT(B:B),"",INDEX(A:A,MATCH(SMALL(B:B,ROW(A1)),B:B,0))) これでC列には4を含まない数値が昇順で並ぶことになります。 なお、4を含まない数値をランダムにC列に並べるのでしたら作業列のB2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(ISERROR(FIND("4",A2)),RAND(),"")) C列の式はそのままでC列には4を含まない数値がランダムに並ぶことになります。 ランダムに並べた場合にはシートに他の操作などが有りますと数値が変化することが有りますので、C列を選択してコピーし、「形式を選択して貼り付け」で「値」にチェックをして別の場所に貼り付けるなどすればよいでしょう。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! VBAになってしまいますが・・・ とりあえず4桁数値(最大9999)で4が含まれていない数値をSheetのA列に表示するようにしてみました。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, k As Long, L As Long, cnt As Long For i = 0 To 9 For j = 0 To 9 For k = 0 To 9 For L = 0 To 9 If i <> 4 And j <> 4 And k <> 4 And L <> 4 Then cnt = cnt + 1 Cells(cnt, 1) = i & j & k & L End If Next L Next k Next j Next i End Sub 'この行まで ※ 1行目に「0」が表示されますが、それは削除してください。 0~9の「4」が含まれない4桁数値のすべての組み合わせが表示されるはずです。m(_ _)m
- tsubuyuki
- ベストアンサー率45% (699/1545)
> 0~1000までのプレートを作ろうと思ったら ですから、9^3=729通りですね。 これが10000までなら、9^4=6561通りでしょう。 (「0」は含みません。含むなら、コレに「1加算」ですね。) さてさて、これを踏まえて > エクセルで簡単に計算できる方法はありませんでしょうか。 何をどのように「計算」したら良いのでしょうか? 「A1セルに入力されている任意の数字に“4”が含まれているかどうか?」なら =IF(ISERR(FIND("4",D1)),"4含まない","4含む") で確認できます(全バージョン共通)。 ですが、コレならわざわざエクセルで確認するまでもないでしょう。 なので、お望みの「計算内容と結果」を詳細に補足くださいませ。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>これを今まで頭で計算していました。 >エクセルで簡単に計算できる方法はありませんでしょうか。 数学の問題だと思うのですが? 4以外の数字を使ってつくるのですから 9*9*9*9通りのものが作成可能です。