エクセル2010でデータシート(注文発注台帳)の情報を添付画像の様に、発注日と希望納期を基本にしたカレンダーシートへ自動で転記する方法を教えて頂けませんでしょうか。
エクセル2003の人も追加で書き込みができるようにしたいです。
別の方が同じ質問をされていました。
http://oshiete.goo.ne.jp/qa/6500332.html
私は簡単なエクセル操作しかできませんので、見よう見まねで同じようにやってみたところうまくいきました。しかしこのやり方では数式が長すぎるため、データがとても重くなってしまいました。終了した部分は数式から普通の文字データへ保存し直すなど工夫をしましたが、やはり動きが遅くてとても運用できる状態ではありません。
※添付画像はサンプルの為、項目を減らしてあります。
もっと軽いデータに出来る良い方法がありましたら、教えて下さい。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
まず、質問文に掲載されているリンク先ページのベストアンサーのような、万里の長城みたいな数式は、とてもじゃないですが、お勧めできません。
長大・難解な数式が好きなんだとしてもアレではあんまりなので、申し訳ないけどああいう回答は見ていて腹立たしいです。あの状態ではメンテナンスもへったくれもなく、適切な Excel の使い方とは言えません。質問者さんのオリジナルデザインの表を Excel の数式 1 本のみで実現するのは、結構厳しいです。数式を使うにしても、なるべく作業列をたくさん使うようにしましょう。表計算ソフトは、それでこそ威力を発揮します。作業列を印刷したくない場合は、印刷範囲を設定して印刷されないようにしたり、列を非表示にしたり、様々な手段があります。
さて、数式よりも、もっとラクに質問者さんが作りたい表に近いものを作るには、ピボットテーブルがベストだと考えられます。質問文添付図の上側の表に対して、ピボットテーブルウィザードを開始します。始めはとっつきにくいかもしれませんが、良かったら挑戦してみてください。マウス操作のみですが、結構、自在なデザインでクロス集計ができます。
データが重くなる心配は、ピボットテーブルの場合、全くありません。スイスイ操作できます。数式では、量が増えるとどんどん重くなりますね。
見づらいのですが、下側の表中には、「発注日」、「希望納期」という文字列を表示するのですか?この部分は、ピボットテーブルでできた表にごく簡単な数式を加えるくらいで実現できそうですね。あるいは元データの表の内容をちょっと工夫すれば、ピボットテーブルだけで一発で完成させることも可能かもしれません。
ピボットテーブルまでは、まだちょっと難しいという場合は、上側の表にフィルターを取り付けるだけでも、日付ほかの項目で抽出できますよ。日付で絞り込んだ状態で表をコピーすれば、他のシート上にそれを貼り付けて保存しておくなどできます。
ピボットテーブルにせよフィルタにせよ、マクロで作業を自動化することもできますが、まずは Excel の基本的な使い方で迷わなくなってからにしたほうがいいでしょうね。また、Excel が上手になってくると、作ろうと考える表のデザイン自体が変化してくると思います。
ご回答ありがとうございました。
ピボットテーブル、勇気を出して挑戦してみました!
「発注日」「希望納期」という文字列の表示はやりかたがわからずできませんでしたが、考え方を変えてピボットテーブルで満足のいくデザインにはできたので、これで良しとしようと思います。
けれど、2010で作ったものを2003で同等に使えるようにするのは至難の業のようです。チェックの手間がかかって大変なので、結局2003で作り直しています(笑)
No.2
- 回答日時:
カレンダーシートに自動で貼り付けることはマクロを組まない限りできないでしょう。
入力された日付の順でお望みのように表を表示させるのでしたら関数を使って対応することができます。
それにしても式をパソコンに負担を掛けない方法は作業列を使って対応することです。
お示しの表がシート1に有るとしてI2セルには次の式を入力してJ2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(G2="","",G2*100+COUNTIF($G$2:$G2,G2)+COUNTIF($H$2:$H2,G2)+IF(COLUMN(A1)=1,0,0.1))
シート2にお望みの表を作るとして1行目にはお示しのような項目名を入力します。
A2セルには次の式を入力してI2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>COUNT(Sheet1!$I:$J),"",IF(COLUMN(A1)=1,IF(ISERROR(INDEX($A:$A,MATCH(10^10,A$1:A1))),INT(SMALL(Sheet1!$I:$J,ROW(A1))/100),IF(INT(SMALL(Sheet1!$I:$J,ROW(A1))/100)=INDEX(A:A,MATCH(10^10,A$1:A1)),"",INT(SMALL(Sheet1!$I:$J,ROW(A1))/100))),IF(COLUMN(A1)=2,TEXT(OFFSET(A2,0,-1),"aaa"),IF(COLUMN(A1)=3,IF(MOD(SMALL(Sheet1!$I:$J,ROW(A1)),1)=0,"発注日","希望納期"), IF(COLUMN(A1)>=4,IF(MOD(SMALL(Sheet1!$I:$J,ROW(A1)),1)=0,INDEX(Sheet1!$A:$F,MATCH(SMALL(Sheet1!$I:$J,ROW(A1)),Sheet1!$I:$I,0),COLUMN(A1)-3),INDEX(Sheet1!$A:$F,MATCH(SMALL(Sheet1!$I:$J,ROW(A1)),Sheet1!$J:$J,0),COLUMN(A1)-3)))))))
A列の表示形式は日付にし、C列からI列の表示形式は標準にします。
日にちによっては行の数が多かったり少なかったりしますのでカレンダーにそのままで表示させることには無理が有ります。
ご回答ありがとうございました。
やってみましたが「入れ子のレベル数が上限を超えているため、数式を入力できません」と表示されてしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) Excelにて 別シートからのデータ参照方法 2 2022/12/07 13:00
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
ウィンドウィズ メモ帳で日付だ...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
Microsoft Formsの「個人情報や...
-
microsoft office
-
MicrosoftOfficeについて質問で...
-
マイクロソフト 一時使用コード...
-
outlookで宛先が異なるメールを...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
自分の専門分野の仕事。初見で...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報