• ベストアンサー

EXELについての質問です。

EXELについての質問です。 「ブック内のシート1に日付がばらばらの状態で打ち込まれた元データがあり、  シート2に、このデータから月別のデータを日付順に並び替えた状態にして反映させたい。」 (例を画像添付で表示しています。) オートフィルターやピポットテーブルを使ってみましたが上手くいきません。 また、VBAについての知識はほとんど持ち合わせて無いのですが、 今回の場合はどうも必要なのでは、と考えたりもします。 いずれにしても、自分の力ではどうしようも出来ない状態ですので、 どうか教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

画像の添付が見られないのでわかりませんが、例えばシート1のA列には日付が2行目から下方にあり、関連のデータがD列までにあるとします。 E列を作業列としてE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",RANK(A2,A:A,1)) 次にシート2のA2セルには次の式を入力してD2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$E:$E,ROW(A1))=0,"",INDEX(Sheet1!$A:$D,MATCH(ROW(A1),Sheet1!$E:$E,0),COLUMN(A1))) 最後にA列は日付ですのでセルの表示形式を日付にします。

freeway1118
質問者

お礼

有り難うございます。 RANK関数で、昇順にするという発想がなかったのですが、 これを使って作り上げることができました! どうもです。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。 ある月だけをシート2に順序よく取り出すのでしたら シート2のA1セルに2010/5/1のように入力してセルの表示形式のユーザー定義で m"月" として例えば5月と表示させます。 その上でシート2のA2セルには次の式を入力してD2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$E:$E,INDEX(Sheet1!$E:$E,MATCH($A$1,Sheet1!$A:$A,1))+ROW(A1))=0,"",IF(MONTH(INDEX(Sheet1!$A:$A,MATCH(INDEX(Sheet1!$E:$E,MATCH($A$1,Sheet1!$A:$A,1))+ROW(A1),Sheet1!$E:$E,0)))<>MONTH($A$1),"",INDEX(Sheet1!$A:$D,MATCH(INDEX(Sheet1!$E:$E,MATCH($A$1,Sheet1!$A:$A,1))+ROW(A1),Sheet1!$E:$E,0),COLUMN(A1))))

freeway1118
質問者

お礼

有り難うございます。 かなりレベルの高い数式なので、ちょっと使うのは困難でしたが、 解読して行く中でかなり色々勉強になりました。 色々参考にさせていただきます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

安直ですがデータを日付で並び替え(昇順)では駄目でしょうか。

関連するQ&A

  • 【Exel】シートの参照(?)

    教えて下さい! Exelで顧客データを管理しているのですが、色々なBookに同じ顧客データがあり、 新しく顧客が増えた場合に全てを更新しなければならず手間もかかる上、漏れが発生しやすい現状です。 基本の顧客データのシートを作成しておいて、そこを更新すれば他のBookにもそれが反映するようには出来ないでしょうか? 説明が解りづらいかもしれませんが、何かいい案があったらお願いします。

  • EXELの質問です。例えば、EXELのシートABCDの列にAの列は、番

    EXELの質問です。例えば、EXELのシートABCDの列にAの列は、番号が順不同で縦列に数字のデータが入っているとします。Bのシートには、タイトルデータが縦に入っているとします。Cの列には、Aの列と違ったデータが縦列に数字のデータが入っているとします。Dには、項目のデータが縦に入っているとします。以上のデータをCのデータを順に並び変えたとします。ここで初歩的なご質問ですが、Cだけでなく他のA B D のデータも一緒にCとの結びつけたデータを並び変える方法は、どのようにすればいいのでしょうか? 教えてください。

  • logファイルをexel オートフィルタで並べ替え

    exel97でサイトアクセスデータのlog形式ファイルをオートフィルタで並べ替えする方法を教えてください。 logファイルをexelで「csvカンマ区切り」で保存しても各行のデータが区切りなしの1行になってしまい使えません。 頻繁に作業を行うため、簡単な方法があればうれしいのですが。 よろしくお願いいたします。 WindowsXP

  • 【VBA】複数シートから抜き出したデータを集約

    【Excel2010】の  ●同一ブック内で、  ●sheet1~9の同一列から、  ●sheet10の任意列へ、  ●データを抜き出して、続けて表示させたい と思っています。 手動オートフィルタや、関数で試しましたが、 作業のたびにかなりの手間になります。 願わくばVBAマクロで対応できればと思っているのですが、 知識不足のため、うまくできませんでした。 具体的な画面も添付させていただきます。 ご教示いただきたく、よろしくお願いいたします。 <補足> sheet1~9のデータ行範囲は作業ごと・シートごとに変わります。 (データ列は固定です)

  • ピポットテーブルのデーターを別のブックで参照する

    ピポットテーブルのデーターを別のブックで参照する エクセルの質問です。 例えばAというブックがあり、シート名が「本部入金まとめ」とします。 このシートにはピポットテーブルのデータが貼り付けられております。 シート名「本部入金まとめ」のセルB5の値を別のブック「入金一覧表」のシート名「本部」のセルU4に反映させるにどうしたらよいのでしょうか? 「=」にてリンクしてみましが、エクセルを閉じて再度開くとエラーになってしまいます。 どのようにすればピポットのデーターを他のブックに反映させることができるのでしょうか? ご教授をお願い致します。 ちなみにエクセルは2016、OSはWin7 32bitとなります。

  • EXCEL 貼り付け先にオートフィルタがかかっている場合の貼り付け

    excel2003 winxp 2つのファイル(ブック)があり、ファイルAにてオートフィルタを使って抽出したデータをコピーして、ブックBに貼り付ける。 ということをやりたいのですが、ブックBでもオートフィルタを使っています。オートフィルタを使っている状態のブックBにうまく貼り付ける方法はあるのでしょうか? (オートフィルタ使用後の可視セルにブックAで抽出したデータを貼り付ける感じです) わかりづらくてすみません。 よろしくお願いします。

  • Excel VBA 全てのsheetを対象にオートフィルターを一気に解除したい

    1つのbook.xlsに対して複数のsheetがあり、 仮)1 2 3 … 40個ぐらいのsheetがあるとします。 ▲条件 1sheetはオートフィルター機能を使用しているが…、2sheetは使用していない、規則性や順番などはなくオートフィルターを使用しているsheet、使用していないsheetがランダムに並んで混在しています。 ▲処理したい内容 で、行いたい処理は全てのsheetを対象にオートフィルターを一気にVBAで解除したい。可能でしょうか? アドバイスよろしくお願い致します。

  • Exel VBAで1つずつ代入するには?

    VBA初心者です。 日報を入力する作業を、Exel VBAを使って省力化したいと考えています。 1日が1シート、1か月分で1ブックになっています。 いったん別シートにべた打ちしたデータを、VBAで1つずつ各日のシートに貼り付けたいのです。 1枚目のシートのB列のセルB2~B32(1日~31日分に相当)に数値が入っているとして、 これを格納し、 シート「1日」セルF2、シート「2日」セルF2...シート「31日」セルF2 という具合に各シートの同じセル番地のセルに1つずつ貼り付けていくイメージです。 こんなふうに書いてみました。 ---------------------------------------- Sub test() Dim myNum(30) As Integer Dim i As Integer Dim j As Integer For i = 1 To 30 myNum(i) = Worksheets(1).Cells(i + 1, 2) For j = 1 To 30 Worksheets(i + 1).Cells(2, 6) = myNum(i) Next j Next i End Sub ---------------------------------------- でも、これでは1か月の日数の違いに対応できません。 これ以上はお手上げなので、お知恵を貸してください。 よろしくお願いします。

  • ピポットテーブルでデータの更新ができません。

     一つのBOOK内で sheet1・・リスト形式の表 sheet2・・sheet1のピポットテーブル sheet3・・sheet1のピポットテーブル(sheet2とはアイテムを切り替えています) sheet4・・リスト形式の表(sheet1とはまったく違う内容です) sheet5・・sheet4のピポットテーブル (リスト形式の表のデータは、毎日増えていきます) といった表を作り、作業をしています。  ピポットテーブルでデータの更新ができないのは、sheet2とsheet3です。  データの更新ボタンを押すと、”excelが原因で終了します”と表示され終了してしまいます。sheet2とsheet3を削除し、新たにピポットテーブルを作り直すと、とりあえずはまたデータの更新ができるようになるのですが、しばらくするとすとまたデータの更新ができなくなってしまいます。  一つのBOOK内で、ピポットテーブルを作りすぎたせいでしょうか?  Excel2000で、WindowsMEのパソコンとWindowsXPのパソコンで作業するときがあります。どちらのパソコンで作業してもだめです。  本やインターネットで調べたりしましたが、原因はわかりませんでした。  どうか、ご存知の方お教えください。お願いします。    

  • エクセル VBA

    先日初めてVBAに触れた者です 知恵をお貸しください エクセルのバージョンは2000です ブックのデータを誰も編集できないようにして、 尚且つオートフィルタだけを有効にする方法を探しています。 この条件だけならば、 Sub Auto_Open() Worksheets("Sheet1").EnableAutoFilter = True Worksheets("Sheet1").Protect UserInterfaceOnly:=True End Sub で、可能になったのですが あとこのシートに「パスワード保護」をかけることは 出来るでしょうか? 私には「出来る」か「出来ないか」すらわからないです。 お手数をおかけして申し訳ないですが どうぞお助けくださいませ。 よろしくお願いします

専門家に質問してみよう