Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ(54):
http://pc11.2ch.net/test/read.cgi/bsoft/1172140808/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.
>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheets
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
・ 罫線幅の自由指定
・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼数式・関数
・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
▼VBA
・ ExecuteExcel4Macroの参照で空セルと0値を区別する
・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
・ VBのコントロール配列と同じような操作をしたい
(イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)
▼ユーザーフォーム
・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)
▼グラフ
・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
(オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
┌┐
〜〜
||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。
また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
>>6 >▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
前スレに下記の質問をしたのですが、995番の為、以降「ume」で終わってしまいました・・・。
もう一度質問させて下さい。お願いします。
995 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2007/03/27(火) 19:58:11
すみません、稚拙な質問ですが宜しくお願いします。
当方エクセル2000を使い始めました。
組織図を作成しようと思い、図→組織図を選ぶのですが、下記の様な表示が出て、
全然うまくいきません=EMBED(” Orgchart”、”)
会社のエクセルXPだとすんなり作れるのですが、どうしてなのでしょうか?
教えて頂けると助かります。
Excel2000だと組織図って追加インストールしないと使えないんじゃなかったかな?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ハイパーリンク 復活
URLの入ったセルがあるのですが、ハイパーリンクとして認識してくれません
セルを選択→F2→Enter でもダメでした
ちなみに、同ファイルの別シートではきちんとハイパーリンクとして認識されています
何がいけないのでしょうか…
13 :
12:2007/03/27(火) 23:07:20
自己解決しました
ツールバーからの「オートコレクトのオプション」→「入力オートフォーマット」タブでの設定ですね
下らない質問でスレ汚し申し訳ありませんでした
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 文字幅、インテンド等でしてみました
質問なのですが、上下のセルで文字数が違ものを
中央揃えで同じ幅にすることは出来るのでしょうか?
例えば上のセルに「あいうえ」と打って
その真下のセルに「あいう」とうったときの
中央揃えでの文字列の幅を同じにしたいのですが
(上の段の「あ」の位置に下の段の「あ」がきて、上の段の「え」と下の段の「う」が同じ位置)
このようなことは出来ますでしょうか?
説明が上手にできていませんが、どうぞよろしくお願いいたします
>>14 全角文字ならセルの書式設定の均等割り付けで近いことできるんじゃないかな
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 近い数字、抽出、条件中最大・最小etc...
質問です
表の1行から特定の数字に近い最大・最小を他のセルに出したいです
表は
|-30|-84|-111|-151|-180|-215|-226|-239|
|-39|-45|-105|-150|-170|-195|-204|-224|のようになっていて
50、100、150...と50毎に抜き出して別々に表示させたいです
(2行目だと50であれば-45と-105、100でも-45と-105、150ならば-150と-170)
一応試したみたのは
=MAX(IF($F$3>=!B4:I4,!B4:I4))こんなのですが
1行目の-30くらいしか上手くいきませんでした
ややこしい説明で申し訳ありませんがよろしくお願いします
>>16 分りにくいな
書き出し条件を、「以上・以下・未満・超える」等の表現で説明しなおして
>>17 書き出しを50の場合にα、βで分けているので
α:50以下で最大
β:51以上で最小
になります
なので、
>>16の表でいくと150の欄は
1行目 α:-111、β:-151
2行目 α:-150、β:-170
となります。列は無視して行の中で抽出して表を作り直す事になります
| 50 | 100 | 150 | 200 |
| α| β | α| β | α | β| α| β|
| -30| -84|-84|-111|-111|-151|-180|-215|
| -45|-105|-45|-105|-150|-170|-195|-204|
こんな感じです
こうかな?
=-MAX((-A1:H1<=50)*-A1:H1+(-A1:H1>50)*MIN(-A1:H1))
=-MIN((-A1:H1>=51)*-A1:H1+(-A1:H1<51)*MAX(-A1:H1))
ctrl+shift+enterで入力
>>18 降順に並んでるみたいだからindex+matchでいけるんでない?
A1:A8が検査したい範囲
A9が検査したい値(50とか100とか)
だとすると、直近の値は「=index(A1:A8,match(A9*-1,A1:A8,-1))」
そのひとつ上の値は隣のセルだから「=index(A1:A8,match(A9*-1,A1:A8,-1)+1)」かな?
>>19 出来ました!ありがとうございます
ただ、50以下がない場合
|-51|-93|-135|-178|-194|-231|-237|-230|
の場合、α・β両方とも51が返されてしまうのですが
何か対処法はありますでしょうか?
ここまで出来たので難しいようであれば手作業で行うつもりです
今までは全て手作業だったので大幅な進歩です
>>20 レスありがとうございます
降順が多いのですが全てではないんですよね
後、場合によっては
|+24|-41|-87|-111|-146|-176|-173|-159|
のように+の数値がある表が出てくるので
これを
| 0 |
| α| β |
| +24| -41|
のようにもしたいです
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 一致、集計、関数
1列に500行くらい、数字が入力してあります。
この数字の数別ランキングみたいな、集計をしたいのです。
例)
0000 |0000|1|
1111 |1111|3|
8888 |2222|1|
1111 |3333|1|
1111 |8888|1|
2222 |↓続く
3333 |
↓500行続く
データの並べ替えとオートフィルタでトップテンはすぐ出るのですが、
全ての数字に対して、これがいくつあるのか、という集計をしたいので
関数でできる方法がないかと思って質問させて頂きました。
よろしくお願いします。
>>24 関数はちょっとすぐに思いつかないけど、それより
ピボットテーブル作るのがてっとりばやいんじゃないかな
>24
A1〜A500がデータとすると
B2に =IF(ISERROR(MATCH(A2,A$1:A1,0)),A2,"")
C2に =IF(B2="","",COUNTIF(A$1:A$500,A2))
B1〜C500にコピペ
式の埋め込みでは上詰めにできないから
値貼り付けしてソート
27 :
名無しさん@そうだ選挙にいこう:2007/03/28(水) 13:48:08
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 代入、参照、クラス
sheet1のIDとnameをsheet2に代入したいのですが、
sheet2のIDには抜けがあるのでそのままコピペできません。
IDとnameをリンクさせて2に代入する方法はありますでしょうか?
sheet1
ID | name
1 | hoge
2 | foo
3 | bar
sheet2
ID | name
1 |
3 |
4 |
代入は無理かなVLOOKUPかMATCH,INDEXなどで我慢してくれ
29 :
27:2007/03/28(水) 14:13:09
ご回答ありがとうございます。
VLOOKUPなどでやってみます。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 隣と同じ、非表示、同値
計算式の関係で隣と同じ数値が出た場合、表示しない方法を探しています。
条件付書式の関係で色がついているので、
白いセルにして文字も白にしたかったのですが条件付書式は使い切ってます。
よろしくおねがいします。
>>31 すでにそのセルには配列数式が入っているのですが、
IFでくくればよろしいのでしょうか?
自分なりに試してみましたが出来ません。
アドバイスお願いします。
エクセルの使い方から誘導されてきました。
行数が4000で・A固有名詞・B〜Fのデータが随時更新しているのですが、Gの列に計算式を入れてます。
G列の数値が3.0以上になったらA固有名詞をJ1〜Q30に抽出させる方法ないでしょうか?
(3.0以上になる確率は3%くらいで、120個程度だと思います)
以上、お願いします。
>>33 補助列を使えば、かなりのことができるが、
それが不可なら、具体的なデータを示してください。
>>34 は >>32でした
>>33 VBAを使えば可能だろう。
Worksheet_Chengeか Application.OnTimeで数値を拾って、
拾ったA固有名詞をJ1〜Q30に書き込んでいく。
テンプレもないから後はほかの人にまかせる
>>34 補助列は空いているセルの事ですよね?
使用可能です。そのやり方でいいので御教示お願いします
>>37 失礼しました。きちんと読んでいませんでした
なので表は
>>18のもの、配列数式は
>>19のもので
表の1行目
|-30|-84|-111|-151|-180|-215|-226|-239|
において
=-MAX((-B4:I4<=250)*-B4:I4+(-B4:I4>250)*MIN(-B4:I4))と
=-MIN((-B4:I4>=251)*-B4:I4+(-B4:I4<251)*MAX(-B4:I4))を使った場合
250の欄で
| 250 |
| α | β |
|-239|-239|
となってしまいます
こちらを何とか非表示にしたいのです
どうかよろしくお願いします
40 :
33:2007/03/28(水) 17:59:53
41 :
24:2007/03/28(水) 18:30:19
>>25 普通にできなかったので関数でやるしかないと思ったのですが
ピボットテーブルという物があるのですね。
試してみたら、理想に近い形で出てきました。
>>26 関数だと2段階になってしまうのでしょうか
すみません。教えて下さった関数がうまく反映できなくて
今もやっているのですが集計できません・・・
例でいくとC行に集計結果が出るんですよね?
もう少し自分で調べて試してみます。
回答下さった皆様、ありがとうございました。
>>39 とりあえず計算シートと表示シートを分けて、
ifつけて引っ張ってくるのが理解しやすいんじゃまいか?
43 :
名無しさん@そうだ選挙にいこう:2007/03/28(水) 23:19:25
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003(Office2003Pro)
【3 VBAが使えるか .】 ほとんど使えません
【4 VBAでの回答の可否】 簡単なものならば可
【5 検索キーワード 】 保存 マクロ アーカイブ etc...
エクセルのファイルを保存しようとしたら「保存できませんでした」ってメッセージが出てしまって
保存できなくて困ってるんですがどうすればよいでしょうか?
マクロとかベーシック言語とか使ってあってC言語をちょっとかじったくらいなので
まったく分かりません。
とにかく作業をしていたので保存だけでもしたいのですが、
何か心当たりは無いでしょうか??
普通のエクセルのファイルは保存できるのですが。。。
>>43 エラーメッセージや画面を隠さず全てここに書き出せば誰かがわかるかも
>>43 取り敢えず保存するファイル名を変えてみたら?
>>43 ありがちなパターンとしては、
開いたExcelファイルは、リムーバブルメディアにあったやつで
そのメディアを取り外してしまったとか、
ネットワーク上ならば、ネットワークが何らかの理由で
切断されてしまったなどが考えられる。
とりあえず「名前をつけて保存」で、確実にあるであろう
デスクトップ等に保存してみる。
47 :
16:2007/03/29(木) 07:55:10
>>42 遅くなりましたがそうしてみます
ありがとうございました
>>47 ついでに、計算シートで
=-MIN((-A1:H1>=51)*-A1:H1+(-A1:H1<51)*MAX(-A1:H1))
のところを=-MIN((-A1:H1>=51)*-A1:H1+(-A1:H1<51)*9999)
にして(9999のところは出てくることのありえない数字)、if式で条件付ければ、
>>22でいってたことも実現可能
49 :
名無しさん@そうだ選挙にいこう:2007/03/29(木) 11:59:34
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003(Office2003Pro)
【3 VBAが使えるか .】すこしなら
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 組み合わせ etc...
16人が4卓でそれぞれ4回麻雀をやる時、4回とも違うメンバーでやる組み合わせを
考えなければならないんですが、excelで簡単にできませんでしょうか。
簡単かどうかは君の能力次第だが、出来るのは間違いないよ。
ただ計算ソフトの話ではなくアルゴリズムの話になるので具体的な話はスレ違い。
「簡単に」というのが、Excelが機能、関数、メソッドなどとしてその機能を備えていて
ボタン1発や命令1文で結果を出せないかということなら「出来ない」と答えよう。
>>49 毎回違うメンバーで、ということなら、下記5通りしかない。
(a,e,i,m) (b,f,j,n) (c,g,k,o) (d,h,l,p)
(a,f,k,p) (b,e,l,o) (c,h,i,n) (d,g,j,m)
(a,g,l,n) (b,h,k,m) (c,e,j,p) (d,f,i,o)
(a,h,j,o) (b,g,i,p) (c,f,l,m) (d,e,k,n)
(a,b,c,d) (e,f,g,h) (i,j,k,l) (m,n,o,p)
わざわざExcelで面倒な関数を使わなくても、例えば1行目に
参加者の名前を入れ、2行目以降に=$A$1、=$E$1・・・といった
フォーマットを作っておけば、簡単でいいのでは?
52 :
名無しさん@そうだ選挙にいこう:2007/03/29(木) 14:41:26
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 プロットエリア 色
折れ線グラフを作成した際に、Y軸の値によってプロットエリアの背景色を
変えたいのですがどのようにしたらいいのかわかりません。
(0<Y<50の領域は赤、50<Y<80は黄色、80<Yは青とプロットエリアを分割して色指定したい)
検索するうちに、プロットエリアの幅指定などがVBAでできるらしいということはわかりましたが、
当方まったくVBAわかりません。
グラフ上で各領域の色が塗り分けられているように見えればよいのですがなにか方法はないでしょうか?
よろしくお願いします。
53 :
名無しさん@そうだ選挙にいこう:2007/03/29(木) 14:49:00
>>50,51
ありがとうございました。
おかげで助かりました。
神様!
棒グラフとの複合グラフにして、1つの棒グラフの幅をすんごい広げてその色で塗り分ける。
Excelのバージョン2003インストールしたんだけどネットつなげてるのに接続してください
ってでてライセンス認証ができないんだけどどうすれば認証できる?
57 :
52:2007/03/29(木) 19:24:15
>54
コペルニクス的なすばらしい回答をありがとうございました。
おかげさまで目的のグラフが作成できました。
ありがとうございます。
55はマルチなので放置の方向で
59 :
名無しさん@そうだ選挙にいこう:2007/03/29(木) 20:32:52
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】勉強中
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 勤務シフト作成
質問です。 一ヶ月ごとの勤務シフトを作成してるのですが、基本のパターンが決まっていて
土曜、日曜祭日と違うシフトになります。
今はベースの流れを作って、毎月コピー、ペーストしてますが、土日の流れを間違えたりミスをしてます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
月 火 水 木 金 土 日 月 火 祭 木 金 土 日
A 01 02 03 04 11 22 03 04 01 02 13 24
B 02 03 04 01 12 23 04 21 02 03 14
C 03 04 01 02 13 24 01 22 03 04 21
D 04 01 02 03 14 01 02 23 04 11 22
E 01 02 03 04 21 02 03 24 01 12 23
こんな感じです。アルファベットが人で数字がシフトです。 空白は休みです。
VBAで出来そうかと勉強してますが、さっぱりわからなくていきずまってしまいました。
どなたかご教授いただけたら幸いです。 よろしくお願いします。
>>59 4勤1休で初日から1,2,3,4、土曜は+10、日曜祭日は+20ってことか?
とりあえず、
>>2・8に従って出来てる部分のコードを貼ろう。
丸投げする気ならブックのうpをよろしく。
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 キーワードが思いつきませんでした
商品の部品展開表の作成について教えてください。
セル 内容
A1 ※
B1 食品
C1 ※
C2 ※
C3 ※
C4 ※
D1 穀物
D2 野菜
D3 果物
D4 飲料
61の続き
A1とC1が同じであれば(※)Cの列と同じ数の※をA2以降に追加して
Bの列はB2以降にCにある(※)と同じ行数分の空白を作りたいのですが可能でしょうか?
最終的には
セル 内容
A1 ※
A2 ※
A3 ※
A4 ※
B1 食料
B2 (空白)
B3 (空白)
B4 (空白)
C1 ※
C2 ※
C3 ※
C4 ※
D1 穀物
D2 野菜
D3 果物
D4 飲料
の形にしたいです。
よろしくお願いします。
63 :
59:2007/03/29(木) 21:27:22
>>60 早速の対応ありがとうございます。
基本は4勤1休でその通りです。 コードはVBAの本を買って勉強してますがどういう風に
入力していいのか、ついていけていません。
ブックのうpとはどうしたらよろしいのでしょうか? 素人ですいません。
>>61-62 IF関数でいいじゃん。それと空白を作るってどういう意味だ?
Excelのセルはデフォルトで空白だが、そのままじゃまずいのか?
>>63 ttp://www.1rk.net/ ここでブックのサイズに合った適当なアップローダを探して。
zip圧縮したブックをアップロードし、ファイルの番号なりURLなりをここに貼れ。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
日付や時刻の表示形式に*がついているものがあり、
下に説明が書いてますが、
Excelの表示形式なのにオペレーテイングシステムの日付の並びが
変わるとか意味がわかりません。
詳しい方教えてください。
申し訳ありません実はもう少し複雑になります
よろしければ私もブックのうPの仕方を教えていただければ幸いです
64>>早速のれすありがとうございました。
いろいろ複雑でして・・
うPさせていただきます。m(__)m
Downloadリンクがない。
DL完了
71 :
名無しさん@そうだ選挙にいこう:2007/03/29(木) 22:23:22
こりゃめんどい
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
鹿児島
福岡
宮崎
熊本
大分
など・・・北から順番に並び替える方法ってないですか?
69>>
Down Keyに「AAA」をいれて、Down Keyの下のDownloadを押すと
Download出来るみたいです
70>>ファイルをうPするのは初めてなので一安心です
よろしくお願いします。
71>>補足ありがとうございます
72>>すみません、不可能ということですか?
すみません2ちゃんもかなり久しぶりで間違えてました
>>69 Down Keyに「AAA」をいれて、Down Keyの下のDownloadを押すと
Download出来るみたいです
>>70 ファイルをうPするのは初めてなので一安心です
よろしくお願いします。
>>71 補足ありがとうございます
>>72 すみません、不可能ということですか?
彼には不可能
79 :
59:2007/03/29(木) 23:33:25
>>61.62
VBAで出来る。適当に書いた
Sub Macro1()
Dim ws_s1 As Worksheet
Dim ws_s2 As Worksheet
Dim i As Long, j As Long, k As Long
Dim my_Row_ws_s2 As Long
Set ws_s1 = Worksheets("Sheet1")
Set ws_s2 = Worksheets("Sheet2")
ws_s2.Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Sheets("Sheet1").Select
Range("A1:C1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
j = 2
my_Row_ws_s2 = ws_s2.Range("d65536").End(xlUp).Row
'ws_s2を基準として考える
For i = 2 To my_Row_ws_s2 '最後までループ
If ws_s1.Cells(j, 1) <> 1 Then '1以外の場合
If ws_s2.Cells(i, 4) = ws_s1.Cells(j, 1) Then
'数値の書き込み
ws_s2.Cells(i, 1) = ws_s1.Cells(j, 1)
ws_s2.Cells(i, 2) = ws_s1.Cells(j, 2)
ws_s2.Cells(i, 3) = ws_s1.Cells(j, 3)
ws_s1.Cells(j, 4) = 1
j = j + 1
End If
End If
'空白の場合、コードを書き込む
If ws_s2.Cells(i, 1) = "" Then
Debug.Print
ws_s2.Cells(i, 1) = ws_s2.Cells(i, 4)
End If
Next i
'1を消す
ws_s1.Select
Columns("D:D").Select
Selection.ClearContents
ws_s2.Select
End Sub
改行うざいってJaneに怒られた
> 改行うざいってJaneに怒られた
この板は32行までしか書き込めないからな。
そもそも無駄な処理ばかりやってるから行数増えるんだよ。
ws_s2.Select
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
↓
ws_s2.Columns("A:C").Insert
Sheets("Sheet1").Select
Range("A1:C1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
↓
ws_s2.Range("A1:C1").Value = ws_s1.Range("A1:C1").Value
ws_s2.Cells(i, 1) = ws_s1.Cells(j, 1)
ws_s2.Cells(i, 2) = ws_s1.Cells(j, 2)
ws_s2.Cells(i, 3) = ws_s1.Cells(j, 3)
↓
ws_s2.Cells(i, 1).Resize(, 3).Value = ws_s1.Cells(j, 1).Resize(, 3).Value
ws_s1.Select
Columns("D:D").Select
Selection.ClearContents
↓
ws_s1.Columns("D:D").ClearContents
へぇ、32行までなんだ。
面倒だったからマクロ記録のコード貼り付けたからなー。
ギアス見るまでの時間つぶしだし。
>ws_s2.Cells(i, 1).Resize(, 3).Value = ws_s1.Cells(j, 1).Resize(, 3).Value
なるほど、こういう使い方もあるのか。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 表示形式 ユーザー定義
質問をさせて頂きます。
以下の様な文字と数字が混ざった入力(MACアドレス)をした際に、
間に「-」が入った状態で、表示される様にしたく、
表示形式を色々いじっていたのですが、上手くいきませんでした。
【入力】0a0a0a0a0a0a
【表示】0a-0a-0a-0a-0a-0a
上記の様に表示させるには、どの様にすれば良いのか、
ご教授頂けませんでしょうか。
宜しくお願い致します。
> 上記の様に表示させるには、どの様にすれば良いのか、
> ご教授頂けませんでしょうか。
表示形式では不可能
12345を1-2-3-4-5にするなら0-0-0-0-0でいいが
文字列(16進も文字列扱い)はこういった桁単位での指定は出来ないので
関数で別セルにというなら、
=MID(A1,1,2)&"-"&MID(A1,3,2)&"-"
って感じでいける
エクセル勉強したいのですが、入門〜中級くらいまで網羅している本で、
お勧めの書籍があったら教えてください。
osはxp、Excel2002。プログラムは素人です。
>>86 人それぞれだから、本屋で流し読みして探せ
大体どれも似たようなもんだy
時折探すけど「合計するときはSUM関数を使おう!」っていうのから
「VBAでゴリゴリ」っていうのの間が無いんだよなぁ、結構。(苦笑)
中間が無いってあたりまえじゃない?
辞書的な分厚い書籍を買えば一通りの使い方は乗ってるわけだし、
基本を理解したらあとはその人の応用力というか、組み合わせの問題だし。
その組み合わせを考えるもの面倒なら、小学生からやりな(ry
VBAで「ゴリゴリ」って表現は似合わないなぁ
アセンブラとかだったら「ゴリゴリ」って感じがするけど
>>86 初心者なら流し読みしても何がいいのかわからんだろう
ひとつだけアドバイスするなら「やりたいこと、できること」ごとに
例題が載ってて詳しく解説してあるものを薦める
のちの応用力にも影響するよ
92 :
86:2007/03/30(金) 15:32:38
定番的なのがあればと思ったのですが、ないようですね。
アドバイス、ありがとうございます。参考にして選んでみます。
同じ出版社、同じシリーズ名で2000→2002→2003→2007と
バージョンアップのたびに新刊が出ているものは、
ある意味定番と呼んでいいかもしれない。
ただエクセルの場合は、そういうシリーズだけでも複数あるし
読む側の理解度やPCの習熟度で、「よい本」というのはまるで異なるから、
おすすめしようがないんだわな。自分にとっての「よい本」が、
他人にもよい本である保証はどこにもないからね。
以上、チラシの裏。
94 :
名無しさん@そうだ選挙にいこう:2007/03/30(金) 16:15:11
>>86 とりあえず5月号の「日経PC」でエクセルの特集をやってるから参考にすれば!
(付録で事典も付いてるよ)
>>94 読んでないけど、それって2007でないかい?
質問者は2002
ただ図書館行って、雑誌のバックナンバーをあさるってのは
ひとつの手かもしれないな。
96 :
名無しさん@そうだ選挙にいこう:2007/03/30(金) 17:13:03
>>96 了解。
そうなると逆に、あれだけ操作系の違う2003までと2007とを
どうやって分けて説明しているのか興味があるな。
数式とかはほとんど変わりないからいいとしても。
ほんと馬鹿だなあ
違うのは操作系ではなくインターフェイスね。
それに、同ソフトのバージョンアップと見れば大きな違いだが
完全別ソフトを併説するわけではないので、解説観点からはこの程度の違いは
さしたる問題にはならない。ちょこちょこっと注釈入れておけば良い程度。