Excelで予定表を月単位で並べ替える方法
- Excelで作成した予定表を検索し、月ごとに並べ替える方法について教えてください。
- 予定表をセル結合した状態で、特定のキーワードを検索すると、月ごとに並べ替えられますか?
- Excelの予定表で、特定のキーワードを検索して月ごとに並べ替える方法を教えてください。
- ベストアンサー
予定表を行事で検索、月ごとに並べ替える
いつもお世話話になっています。 Excelで作った予定表があるのですが、語句を検索、「月単位」で並べ替えをしたいのです。 A B C D E F セミナー 1月 3日 元旦 初日の出 11日 成人の日 休日 2月 3日 節分 豆まき 11日 建国記念 デパート 20日 旅行 北海道 21日 旅行 札幌 3月 10日 美容院 9時 20日 セミナー 会館 25日 給料日 外食 4月 4日 お花見 外食 6日 入学式 13時 5月 1日 メーデー 集会 2日 セミナー 会館 A列に月、B列に日、C列に予定、D列に内容です。 A列は「月ごとにセル結合」がされています。 1月なら2行、2月なら4行、3月なら3行といった具合です。 F1に単語を入れて検索、仮にF1に「セミナー」と入力したときに(検索ボタンは作るか未定)、セミナーのある「3月・5月」を上位に、含まれていない1月・2月・4月を下位に「月単位を崩さずに」に並べ替えたいのです。 この場合だと、3・5・1・2・4月の順になります。 部分的にはできるのですが、「その語がどの月にあって、月ごとに並び替え」というのができなくて・・・。 よろしければ何かよいお知恵をお貸しください.よろしくお願いします。
- quincy
- お礼率90% (121/133)
- その他(プログラミング・開発)
- 回答数4
- ありがとう数5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 > C・D・Eのどこにあろうとも「A列に移動」なんて方法 こんな感じ? Sub bbb() Dim s As String, fAddress As String, fs s = ActiveSheet.Range("F1").Value If s = "" Then Exit Sub With ActiveSheet.Columns("C:E") Set fs = .Find(what:=s, LookIn:=xlValues) If Not fs Is Nothing Then fAddress = fs.Address Do fs.EntireRow.Resize(1, 5).Select 'Selection.Copy MsgBox Selection.Address Set fs = .FindNext(fs) Loop While Not fs Is Nothing And _ fAddress <> fs.Address End If End With End Sub
その他の回答 (3)
- papayuka
- ベストアンサー率45% (1388/3066)
またまた、#2です。 ちょっと補足。 同じ月に何度も同じ単語が出た場合はコピーしない等の対応が必要ですね。 やはり元シートから見直した方が良いように思うけど、、、 あと、「マクロやVBA」の質問だとことわったうえでなら、コンピューター [家庭向け] > ソフトウェア > Microsoftアプリケーションのカテゴリーの方が見てる人も多いと思うのでレスがつきやすいと思います。 http://okweb.jp/oshiete.php3?c=232
お礼
本当にいつもためになるアドバイスをありがとうございます。今後また質問があるときはそっちのカテゴリに行きたいと思います。ありがとうございました。
- papayuka
- ベストアンサー率45% (1388/3066)
ご質問のカテゴリーからVBAに関する事として、サワリだけ。 Sub aaa() Dim s As String, fAddress As String, fs s = ActiveSheet.Range("F1").Value If s = "" Then Exit Sub With ActiveSheet.Columns(3) Set fs = .Find(what:=s, LookIn:=xlValues) If Not fs Is Nothing Then fAddress = fs.Address Do fs.Offset(0, -2).Resize(1, 4).Select 'Selection.Copy MsgBox Selection.Address Set fs = .FindNext(fs) Loop While Not fs Is Nothing And _ fAddress <> fs.Address End If End With End Sub サンプルで例にある表から検索した文字を含む月が選択出来ると思います。 あとは作業用シートを作成するなりしてカット&ペーストで並び替えて(結合したセルはソート出来ない)から、全体を元のシートに戻して、作業用シートを削除するような感じで書いていけば良いかと思います。ただ、並び替えを戻す処理とかを考えると非常に厄介です。 そもそも月と日を別に持つことも、セルを結合する事も含めてデータの持ち方に疑問を感じます。 普通に下記のようなデータにしてオートフィルタで「備考1」から「セミナー」で抽出すれば良いだけのような気がしますが、、、 年月日 備考1 備考2 2005/01/01 元旦 初日の出 2005/01/11 成人の日 休日 2005/02/03 節分 豆まき ・ ・
お礼
昨日に引き続き回答をくださってありがとうございます。 わかりにくい例で申し訳ありません。 >そもそも月と日を別に持つことも、セルを結合する事も含めてデータの持ち方に疑問を感じます。 仰る通りなんです。実は他の方が作ったのですが、私も何で結合したんだろう、こんな風に作ったんだろうって思います。 Offsetだと、左に戻ってコピペですよね。 万が一「セミナー」がDもしくはEにあるかもしれないんです。そういう場合の時は、「自分の位置を割り出して、やっぱりA列に戻って、それからコピー」って方法を取るのがよいのでしょうか? C・D・Eのどこにあろうとも「A列に移動」なんて方法・・・・ありませんか?すみません、何度もお伺いして。よろしければお願いします。
- nawano
- ベストアンサー率27% (8/29)
Aの列に月/日と入力されれば 問題なくソート出来ると思いますが それがイヤならば一旦、A列の前に 一列挿入して、同様に月/日を入力し ソートします。 不要になったら月/日の列を削除します。 ソートはそろえたい列から表の範囲を 覆うようにドラッグします。
お礼
回答ありがとうございます。実はExcelVBAについてなのです。文字数制限にひっかって、大切なことを書き忘れてしまいました。本当にすみません。アドバイスありがとうございます。また何かありましたらよろしくお願いします。
関連するQ&A
- エクセルで表の検索方法を教えてください。
エクセルで表の検索方法を教えてください。 添付画像のように A1:D16 に表があります。 A18:D18 に1行のデータがあります。 このデータが、表の何番目にあたるのか検索する方法を知りたいです。 すぐに思いつくのは、作業列を1列用意し、そこにA列からD列の各行の値を結合して表示させ、作業列の値で検索することですが、それ以外の関数での方法を知りたいです。
- ベストアンサー
- Excel(エクセル)
- 複数表から検索値を検索し、検索値の存在した表から結果を求める方法
ソフトはエクセルの2000です。 やりたいことは、 「複数表から検索値を検索し、検索値の存在した表から値を抽出する方法」もしくは 「A2:H11から検索値を検索し、検索値から○行下の値を抽出する方法」 になると思います。 以下に例を記入します。 下記のように「項目」と「名称」2列で構成された表を下に作成しているとします。 A列 B列 C列 D列 E列 F列 G列 H列 1行 2行 3行 社名 ○○○社 社名 □□□社 社名 ◆◆◆社 4行 場所 ○○○県 場所 □□□県 場所 ◆◆◆県 5行 件名 ○○作業 件名 □□作業 件名 ◆◆作業 6行 担当 ○○○殿 担当 □□□殿 担当 ◆◆◆殿 7行 8行 社名 ×××社 社名 △△△社 9行 場所 ×××県 場所 △△△県 10行 件名 ××作業 件名 △△作業 11行 担当 ×××殿 担当 △△△殿 A1のセルに「△△△社」と社名を入力すると、B1セルに場所の「△△△県」が表示するようにしたいのです。 複数のIF関数で括れば可能だとは思いますが、表の数が制限され、関数式も長くなるためIF関数の使用は控えたいと思っています。 また、マクロを使わない方法でお願いします。 可能なら関数で、関数で不可能なら名前の定義を使用した方法を教えてください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで行から数値を検索し、検索した数値のある列
エクセルで行から数値を検索し、検索した数値のある列から左側の全ての合計を求めたいです。 A B C D E F 1 3 4 8 9 11 22 ←数字は隙間なくあるが、値がバラバラ(ただし昇順) 2 3 2~6行には色々な数字がまばらにある 4 5 6 1行目から検索したい数→10(別のセルで数式結果として出た数) ズレてるかもしれませんが・・・ E1セルに書かれている「11」の数字より前のD列、 A~D列の2行目~6行目の合計を各行ごとに別々に出していきたいです、どうしたらいいでしょうか また、表は行も列もデータを追加していく予定です
- ベストアンサー
- オフィス系ソフト
- エクセルにおいて、検索した個数表示について
表を作るのに困っていますので、よろしくお願いします。 例えば、 A列A1~A20までのセルに、1~3までの数字がランダムに入っています。 BとDとF列のセルに、あ~おまでの文字が、ランダムに入っています。 A列の数字が1のとき、その行のB、D、Fに、「あ」が何個、「い」が何個、「う」が何個・・・・。 A列の数字が2のとき、その行のB、D、Fに、「あ」が何個、「い」が何個、「う」が何個・・・・。 A列の数字が3のとき、その行のB、D、Fに、「あ」が何個、「い」が何個、「う」が何個・・・・。 という表を作りたいのですが、どうしたら良いでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルの表計算で、検索値が含まれる列を検索後、同じ列の違う行にある数
エクセルの表計算で、検索値が含まれる列を検索後、同じ列の違う行にある数値を返す場合はどのようにすればいいのでしょうか? ※下表を例としますと、検索値 150 が含まれる1行目のC列を検出後、同じ列の2行目に入力されている 4300 を返す場合の関数式を教えてください。 A B C D 1 1~50 51~100 101~250 251~500 2 5000 4500 4300 4000
- ベストアンサー
- その他MS Office製品
- セルの結合がされた表をHLOOKUPで検索する場合について
Excel初心者です。質問があります。 下記のような表があります A列 B列 C列 D列 行番号1 12/1 1/1 行番号2 件数 金額 件数 金額 行番号3 2 100 3 200 行番号5 1/1 ここでHlookupを使って下記のように検索します A5に1/1と入力して 件数を検索するには =HLOOKUP(A5,A1:D3,3) → 3 ここまではいいのですが 金額の「200」を検索するにはどのような関数を使えばよいのでしょうか? ※行番号1の「12/1」と「1/1」はセルの結合をしており 「12/1」のセルはA1、「1/1」のセルはC1になっています。 HLOOKUP関数とVLOOKUP関数又はCOLUMN関数を組み合わせれば出来るのでしょうか よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel関数 表の中のデータを検索して表示したい
検索範囲が列や行の一方向でないため行き詰まってしまいました。 いい式の組み立てがありましたら、教えていただけますようお願いいたします。 クラスのリスト A B C D 1 1組 田中 吉田 織田 伊藤 2 2組 坂本 神奈 千葉 小笠原 3 3組 浜田 金沢 岡本 多田 A列の氏名を元にB列にクラスを表示したい A B 多田 3組 伊藤 1組 ・ ・ ・ 検索のキーとなる氏名に重複はありません。 =INDEX($B$1:F3,IF(COUNTIF($B$1:$F$3,A6),ROUND(MOD(SUMPRODUCT(($B$1:$F$3=A6)*(ROW($B$1:$F$3)+ROW($B$1:$F$3)/1000)),1)*1000,),""),1) 該当の文字が入力されている行番号を検索してINDEXをつかって表示する式をつくりました。 しかし、リストの表が1行目から作成されていないとエラーになってしまいます。 なにかいい式はないでしょうか?
- 締切済み
- その他MS Office製品
- エクセルでどう作ったらよいのでしょうか?(表です)
<表1> <表2> A B C D E F・・・ 1 月日 金額 4月 5月 6月・・・・ 2 2007.4.5 100,000 3 2007.6.28 250,000 4 : : : : : --------------------------------- 上記のような表があるとします。 A2の場合は4月分と考え、A3の場合は6月分と考えます。 A列の月が4月分なら(表2の)同じ行の4月のところに、 6月分なら6月のところにB列の金額が入るようにしたいのです。 つまりA2の場合は、D2に100,000と入るようにするにはどのようにしたらよいのでしょうか? 教えて下さい。よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 品名が変わる所で空白行がある表で在庫数を品名単位で計算したい
品名が変わる所で空白行がある表で在庫数を品名単位で計算したい 1.CSVファイルがあります。 (データはでたらめに入っています。)画像(1) A列→半角の1か2 B列→日付 C列→品名 D列→数量 2.これをエクセルで開いて C列、B列の優先順位で昇順で並べ替えます。画像(2) 3.C列の値が変わった所で空白行を入れます。画像(2) (品名単位で区分けされました。) 4.A列の値が2の場合D列の値を切取りE列に貼付けます。 画像(3) D列が(入) E列が(出) になります ここまでのマクロは完成しています。 5.F列の全ての行にD列、E列の結果から計算結果で出た残数を 入れたい。(D,E列が空白の行は不要)画像(4) D列は上の行のF列の値に加算しその値をFへ E列は上の行のF列の値から減算しその値をFへ 例:F3=F2+D3-E3 みかんはみかんだけで入出後の残数を、 りんごはりんごだけで入出後の残数を行ごとに入れたい。 かつ計算式は残したくない。 さらに、 CSVファイルは毎日行数が増え1週間で約50,000行になるので このマクロを使い画像3の状態にして毎週金曜日に保存してます。 元のCSVファイルは削除します。 翌週にはまた新たなCSVファイルに翌週のデータがたまります。 先週の分の品名単位の最終行だけをコピーして 翌週のCSVファイルを編集するさいに合流させ、 NO.2の並べ変えの時に品名単位で一番上の行に挿入したいです。 で同じようにNO.5を行いたいです。 画像(4)の場合6,9,14行目を翌週のCSVファイルに合流させる。 (合流だけできればNO.2の作業で品名単位で 必ず一番上になりますので抜取りと合流だけしたい) 品名は1週のファイル内で約5,000種類です。 よって50,0000行が編集で55,000行に増加し その中の5,000行は空白行(品名が変わるたびに挿入されている。) (1)NO.5の画像(3)から画像(4)にするマクロ(計算式の入れ方?) (空白行には入れない) (2)完成したファイルの品名単位の最終行を抜き出し 次のファイルを作成する時に合流させるマクロ(画像(6)) を教えてください。
- ベストアンサー
- オフィス系ソフト
- 1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成
1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成したい。 2.別シートの月間予定表(1年分を横に並べている)では、月毎に (1)当月分の左端に年間予定表の当月分、 (2)その右に、年間予定表の予定項目ごとに[列を与えて]整理して予定を書いている。 3.月間予定表の(1)を年間予定表と連動させたい。 即ち、年間予定表の予定項目を追加、書き換え、削除したとき、月間予定表の(1)が自動的に訂正されるようにしたい。 4.年間予定表は6月分をA4横1ページに、月間予定表は一月分をA4縦1ページにプリントアウトしている。画面で見るだけではなく、プリントも利用している。 年間予定が時々変更になり、それに合わせて月間予定を書き変えねばならないので、連動すれば大変助かります。よろしくお願いします。 以下は多くの人にとって読む必要はないと思います。 ご助言の参考になればと思い、今使っている年間予定表・月間予定表の実態を示したものです。 ☆ 年間予定表は1行目に月(1月から12月) 2行目以下は月ごとに、最左端(1月の場合A列)に日付、その次の列(1月の場合B列)に曜日 その次の列(1月の場合C列)に年間予定項目(例:箱根ドライブ、九州ドライブ、自治会総会…)を記入する。 ☆ 別シートの月間予定表: ア:各月ごと(例えば1月)の最初の3列は年間予定表(例えば1月)の月名、日付、曜日、年間予定項目をカット&コピーで張り付ける。 又は、=関数を使う。即ち月間予定表のa列1行目に=を使って、年間予定表のa列1行目をもってくる。月間予定表のa列1行目を31日までドラッグして年間予定表に同期させる。同様のことを、残りの2列についても実行する。(この方法は1月分に3回、1年分で36回繰り返さなければならない。もっと楽な方法、ありません?) イ:各月ごとの4列目から概ね10列目に年間予定項目ごとの詳細計画を記入する。 例えば、 4列目の1行目(タイトル行)箱根ドライブ 4列目の2行目以下の該当する日ごとに、(例えば4日)箱根の情報収集、(6日)旅館決定、(15日)ドライブ実施 5列目の1行目(タイトル行)九州ドライブ 5列目の2行目以下の該当する日ごとに、(例えば8日)九州の情報収集、(10日)旅館決定、(11日)友人に連絡 (25日)ドライブ実施 以上です。
- ベストアンサー
- その他MS Office製品
お礼
大変ありがとうございます。何とかうまくいきました。本当におかげさまです。また何かありましたらよろしくお願いします。それにしても・・・・すぐに作ってしまって知識が深い方ですね。