- ベストアンサー
組合せVBA
環境はExcel2002です A列に連番数字1から100が入力されていて B列の100行には数字のデータがあるとします ある目的の数値Xに一番近くなるB列の組合せをC列に表示したいのです…VBAで B列に表示するのはA列の連番です 『一番近くなる』の意味は2通りあって、両方の算出方法をご教示願います (1)目的の数値Xを絶対超えないで目的の数値Xに一番近くなる組合せ (2)目的の数値Xを必ず超えて目的の数値Xに一番近くなる組合せ
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- エクセルVBA
A1からE20までの範囲に数字が表示されています。 そしてその表の行ごとの数値の合計をG列に算出して表示させたいのですが どのようにすれば良いのでしょうか。 VBA初心者なので、分かりやすく教えていただけると助かります。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- オートフィルをVBAで実行したいのです。
オートフィルをVBAで実行したいのです。 表(例:B2:E○)があります。○は毎回数字が変化します。 (商品仕入があれば”行”が増え、売上れば減るため) その表のA列に、A2から列方向に1から連番の数値をオートフィルで最終行まで数値を入れたいのですが、コードを教えていただけませんでしょうか? 宜しくお願いします。
- ベストアンサー
- Windows Me
- Excel 複雑なセル埋めのVBA
エクセルで入力済みのデータをテーブル形式にするためにVBAを組んでいますが突き当たりました、お知恵を拝借させてください。現在成形出来ているのは以下の状態です。 A列 B列 C列 1行 AA 2 1 2行 3行 BB 3 2 4行 5行 6行 7行 8行 9行 CC 2 3 10行 11行 12行 13行 14行 これを以下のようにB列を埋めたいと考えています。A列を埋めるVBAは当方で分かります。 A列 B列 C列 1行 AA 1 1 2行 AA 2 3行 BB 1 2 4行 BB 2 5行 BB 3 6行 BB 1 7行 BB 2 8行 BB 3 9行 CC 1 3 10行 CC 2 11行 CC 1 12行 CC 2 13行 CC 1 14行 CC 2 B1に2が入っていてC1に1が入っているときはB1から下へ1,2の連番を1回入れます、B3に3と入っていてC3に2と入っているときはB3から下へ1,2,3の連番を2回繰り返します、同じようにB9以降も処理しています。連番のスタートは必ず1で、現在B列に入っている数字が連番の最後に当たる数値でC列が繰り返し回数という事です。上の例ではB列を書き直していますが、新たにD列にB列に入れたい連番の列を作る方法でもいいと思っています。 もし表が崩れていたら済みませんでした。恐れ入りますがポインタでも結構ですのでご教授下さい、よろしくお願いします。
- 締切済み
- その他(業務ソフトウェア)
- エクセル 関数・VBA 行位置・行数・行挿入
下のようなシートがあり、自動で、発生月ごとのXとYの数値帯の個数を揃えるように(行挿入) 修正したいのですが、どのような方法が考えられますでしょうか?同様のシートが多数あり、 それぞれ数値帯は異なり、それらへも対応させたいのです。 発生月ごとに、XとYの数値帯を比較して、少ない方へ行を追加すれば良いかと思い、関数とVBA の組合せで何とかならないかと考えたのですが、進みません。 例えば、関数で、発生月ごとのXとYについて、最小値と最大値をそれぞれ比較して、500で割っ て、足りない行数を算出し、また、それぞれの最小値と最大値のある行位置を特定して、それら を変数として、VBAで実行させる・・・ 最小値と最大値はDMAX(DMIN)で算出できたのですが、数値帯が小さい方へ不足することもあれ ば、大きい方へ不足することもありますし、差が無い場合もありますし、さらには、行位置の特 定もどうすれば良いか思いつきません。 そもそも、この考え方が不適切なのでしょうか? お手数ですが、教えてください。 A列に発生月を示す6桁半角数字(例/200512) B列に種を示す1半角英字(XまたはY) C列に数値帯を示す500刻みの4または5桁半角数字(例/8000、32500) ※発生月と数値帯は昇順に並んでいます。 A B C 発生月 種 数値帯 200512 X 9500 200512 X 10000 200512 X 10500 ・ ・ 200512 Y 8000 200512 Y 8500 200512 Y 9000 ・ ・ 200601 X 10500 200601 X 11000 ・ ・ 200601 Y 10500 200601 Y 11000 ・ ・
- ベストアンサー
- オフィス系ソフト
- VBAか関数 「 2と3の組合せ 」 の行が、いくつあるか?
VBAか関数 「 2と3の組合せ 」 の行が、いくつあるか? Windows XP Home Edition SP3 Office XP Personal 2002 Excel 2002 画像の 「 C列 D列 E列 」 の 「 3列 」 だけを使った質問でございます。 数値は 2桁の整数 までしかありません。 6行目の「 C列 D列 E列 」以外で、オートフィルタをかけた後ですが、空白行もたまにございます。 オートフィルタをかけた後ですので、データのある最後行以下は全部空白です。 実際には、セルには色分けはされておりません。 ---質問のまとめ-------------------------------------- ● 「 2 と 3 の組合せ 」(画像の黄色セル) の行が、いくつあるか? を算出できる、関数 か マクロは、ありますでしょうか? 質問の例では、答えは 「 3行 」 となります。 存在しない場合には、「 0行 」 となります。 ----------------------------------------------------- また、 「 1 と 3 の組合せ 」 の行が、いくつあるか? 「 * と * の組合せ 」 の行が、いくつあるか? などのように、いろいろと算出できればと思っております。 非常にややこしい質問で、恐れ入ります。 今までは、手作業で、6行目にオートフィルタをかけて行っておりました。 何卒、ご教示のほどをお願い致します。
- ベストアンサー
- オフィス系ソフト
- ExcelのVBAで連番を振る。
A列が空白で、B列に1行目から***行目(毎回変わる)までデータが入力されている時、 A列に、1から***まで(B列のデータが終わるまで、連番を振るにはどんなVBAを かいたらいいのでしょうか? お願いします。
- 締切済み
- オフィス系ソフト
- エクセルVBA 全ての組み合わせを作る
エクセルVBAで、全ての組み合わせを表現する方法を教えてください 既にA列に色、B列に数字、C列にサイズが入力済みだとします A B C 1 色 数字 サイズ ←タイトルの行 2 赤 1 S 3 青 2 M 4 緑 3 L (完成例) D E F 1 色 数字 サイズ ←タイトルの行 2 赤 1 S 3 赤 1 M 4 赤 1 L 5 赤 2 S 6 赤 2 M 7 赤 2 L 8 赤 3 S 9 赤 3 M 10 赤 3 L 11 青 1 S 12 青 1 M 13 青 1 L 14 青 2 S 15 青 2 M 16 青 2 L 17 青 3 S 18 青 3 M 19 青 3 L 20 緑 1 S 21 緑 1 M 22 緑 1 L 23 緑 2 S 24 緑 2 M 25 緑 2 L 26 緑 3 S 27 緑 3 M 28 緑 3 L ・全ての組み合わせが表現できていれば、2~28行目は上の完成例の順番でなくてもいいです ・完成はD~F列の上から(2行目から)結果を反映させ、空白行を作らないようにする ・今回はA~C列の4行まで入力されている例をあげましたが、実際はA~C列の何行まで入力されているか随時変更します ・A~C列のデータ入力は、必ず上から(2行目から)されています ・A~C列のデータ入力は、5行目以降に続くこともあります ・A~C列のデータ入力は、データがない場合もあります (データ入力がない場合) A B C 1 色 数字 サイズ ←タイトルの行 2 1 S 3 2 M 4 L (この場合の完成例) D E F 1 色 数字 サイズ ←タイトルの行 2 1 S 3 1 M 4 1 L 5 2 S 6 2 M 7 2 L 空白行が出来てしまってはいけないので、『まずデータ入力されている列を認識し、認識した列の情報で全ての組み合わせを作成する』という考え方なのかな?と思ったのですが、そのようなことをエクセルVBAでできるのでしょうか もし分かる方がいたら教えてください よろしくお願いします
- 締切済み
- Excel(エクセル)
- EXCEL2010 VBA 繰り返し処理
EXCEL2010でVBAを使用してシートを作成しています。 シート1のA1にヘッダ数・A2に項目数を入力します。 VBAのコードを実行するとA1のヘッダ数が1ならシート2のA列には何も表示せず A2の項目数の分だけB列の14行目から数字を入力していきます。 (例)シート1 A1:1 A2:20 の場合はシート2のB14から20行下まで1~20の値を自動入力させる。 シート2 B14:1 B15:2 ↓ B33:20 シート1のA1が2以上の場合はシート2のA14から、シート1のA2の数値分アルファベットを表示させていきます。 (例)シート1 A1:2 A2:10 の場合シート2のA14:A23に「A」を表示させます。(シート1のA2の数分この場合は10行ずつ) A24:A33に「B」を表示させます。 B列にはアルファベットごとに数字を1~表示させます。 B14:B23 1~10 B24:B33 1~10 シート1のA1が2なのでA・Bを表示 A1が3だとA・B・C A1が10だとA・B・C・D・E・F・G・H・I・JがA2の数字で区切りながら表示される。 このようなコードを書きたいのですが、どなたかご教示お願いします。
- ベストアンサー
- その他MS Office製品
- Excelの組み合わせをカウントしたいです。
こんにちは。 Excelの組み合わせをカウントしようと試行錯誤したのですが 未だに完成出来ないので質問させて頂きます。 A列に1から10までの数字がランダムで500行ほどあり、 A列の中で1と言う数字があった場合、 その下のセルに2があればその組み合わせを1とカウントし、 B列に合計を表示したいのですが、これは可能でしょうか? どうかご教授下さいますよう、宜しくお願い致します。
- ベストアンサー
- 財務・会計・経理
- vba 組み合わせ表示
EXCEL A列のA1からA10に数値がある。 B列のB1からB10に数値がある。 なお各jについてAjとBjは値が異なります。Aj<Bj(j=1~10) Cjに、AjまたはBjからどちらかをもってきます。 こうしたときC1からC10を1組としてできる組みとしては、1024通りの組ができますが、 そのできた組をCell(21,1)からCell(30,1)を(1組)、として、Cell(21,1024)からCell(30,1024)まで表示したい。VBAにてどのように記述すればよいかお教え願いたい。 自分で考えたたけど、複雑になって手におえません。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
何度も丁寧に教えていただきありがとうございます 組み合わせの個数を絞らないと無理なのはよくわかりました でも、残念ながら組み合わせの個数を絞っては今回の問題を解消できません せっかく教えていただいて申し訳ありませんでした でも今回教えていただいたプロシージャから学ぶべきことが多々ありますので 無駄にはしません