• ベストアンサー

日付のないところは空欄にしたい。

EXCELで日付とデーターが並んでいるのですが、 日付が所々間が抜けている日がある場合があります。 抜けている日のところは空欄にして、日付順に並べることは できますか? 例) 10/1  aaa 10/2 bbb 10/4 ccc 10/5 ddd を 10/1  aaa 10/2 bbb 10/4 ccc 10/5 ddd (10/3のところは間をあけたい)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

関数式を使ってやります。 A、B列にデータがあって、C、D列に望のように並べるとして、 C1に =OFFSET($A$1,MATCH(ROW()+DATE(2003,10,1)-1,$A$1:$A$30,0)-1,0) と入れて、下方向に複写します。 現われない日付は#N/Aになりますが、自分の列に「形式を選択して貼りつけ」の「値」を行い、式を消し、その後#N/Aはスペースで置換してください。 ISERRORで#N/Aを出さない式にも出来ますが 式が長くなるので上記のようにしました。 D1は =OFFSET($A$1,MATCH(ROW()+DATE(2003,10,1)-1,$A$1:$A$30,0)-1,1) です。 DATE(2003,10,1)はデータとして出てくるもっとも過去の 日を指定してください。 これらは、詰まるところ日付は、正整数値であることを 使っています。

その他の回答 (4)

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.4

最終的に印刷結果がそうなる方法でよければ・・・ 隣のワークシートを使う方法です。 sheet1に例)のデータ、sheet2に結果を出します。 sheet1のA列に日付、B列にデータがあるとして・・・ sheet2のA列に10/1~の日付データを並べます。 sheet2のB1には =IF(ISERROR(VLOOKUP(A1,Sheet1!$A$1:$B$7,2,FALSE)),"",VLOOKUP(A1,Sheet1!$A$1:$B$7,2,FALSE)) でこれを下方向にコピーします。 sheet2のA1に条件付書式で 「数式が」「=B1=""」のときに文字色を背景色と同じにして下方向にコピーします。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

マクロで一発で並べ替える方法です。 次のマクロを実行すると、瞬時に、ご希望通りの並べ替えが出来ると思います。 一応、VBAコードの設定方法を書いておきますので、ご存知の場合は、 読み飛ばしてください。 1.Alt + F11 で VBE(Visual Basic Editor)を開きます。 2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。 3.モジュールウィンドウに下記コードをコピーして貼り付けます。   必要により、コードの2~3行目を実情に合わせ指定します。 4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を  「中」にして[OK]します。 6.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で  「空行付き日付整列」を指定し、[実行]ボタンを押します。 ※ 「日付」は、「表示形式」が「日付」と認識できる形式であることが条件です。 Sub 空行付き日付整列() Const Col = "A" '<----- 並べ替えのキーになる列を指定 Const TopRw = 2 '<----- データの先頭行番号を指定(見出しを省く) Dim Rw As Long Dim EndRw As Long Dim N As Long Dim S As Long EndRw = Range(Col & 65536).End(xlUp).Row Rows(TopRw & ":" & EndRw).Sort Key1:=Range(Col & TopRw), Order1:=xlAscending, _   Header:=xlNo, OrderCustom:=1, MatchCase:=False, _   Orientation:=xlTopToBottom, SortMethod:=xlPinYin For Rw = EndRw To TopRw + 1 Step -1   N = Range(Col & Rw).Value - Range(Col & Rw - 1).Value   For S = 1 To N - 1     Rows(Rw).Insert   Next S Next Rw End Sub

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 少し手順がかかります。 元の抜けがあるデータがA1~B7にあるとします。 適当な2列を作業列として使用します。 ここではCD列を作業列とします。 ・C1~CXに、元のデータの最小日付~最大日付を連続した日にちで入力します。 (オートフィルコピーですぐに作成出来ますね) (最終的に表示したい日付範囲ということです。) ・D1に、 =IF(ISERROR(MATCH(C1,$A$1:$A$7,0)),C1,"") と入力して、下の行へコピーします。 (元のデータ範囲は適宜変更して下さい。) ・D1~DXまでを選択してコピーします。 ・A列の一番下のデータのすぐ下(今回の例だとA8)を選択します。 ・メニューの[編集]→[形式を選択して貼り付け]で、[値]にチェックをして、[OK]します。 (抜けている日付データが貼り付きます) (ただし、「37898」のような数値になっているかも知れません。) ・AB列あわせて、A列をキーにして並べ替えます。 ・A列のセルの表示形式を日付にします。 ・終わったら、CD列は削除します。 これで、A列に抜けていた日付が入ります。 なお、あくまで、「10/3」など、B列が空白のところの日付は非表示にしたいということなら、さらに下の手順を行って下さい。(すでにCD列はいったん削除済みとします。) ・C1に、 =IF(LEN(B1),A1,"") と入力して、下の行へコピーします。 ・C1~CXを選択してコピー。 ・A1を選択して、[形式を選択して貼り付け]の[値]をチェックして[OK] ・あとは、必要に応じて、A列のセルの表示形式を日付に直す。 ・終わったら、C列は削除してもいい。 です。 抜けの数が少なければ、1つずつ行を挿入した方が速いかも・・・

回答No.1

 Excelではたぶん無理だと思います。もしできたとしても、その設定はとても複雑だと思います。  データベースソフト、「桐」「Access」だと可能です。比較的簡単です。その方法をお知りになりたければ、再度「お礼」欄で請求ください。

関連するQ&A

  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • excel ピボットテーブルについて

    お世話になります。 Excelのピボットテーブルについてですが、例えば下記のような感じのデータを 集計したいときに、行ラベルに「名前」を持って行き、列ラベルには「日付」を持って いったとしたときに、行ラベルはAAA、BBB、CCC、DDDではなく、AAAとBBB以外は その他でまとめたいとき(AAA、BBB、その他)、どう設定すればいいか悩んでいます。 ご存知の方がいらっしゃれば教えてください。ちなみにExcel2010を使用しています。 日付 名前 個数 4/1  AAA 1 4/1  BBB 1 4/2  CCC 1 4/2  DDD 2 4/2  AAA  3 4/3  CCC 1

  • エクセルで列にあるユニークなデータの個数が知りたい

    おはようございます。 エクセルでA列に以下のようなデータがあるとします。 この中で何種類のデータがあるのかを知りたいのです。 この場合は、AAA,BBB,CCC,DDD,EEEの5種類なので5という答えが欲しいのです。 ただし、A列に入るデータは非常に多岐(800種類以上)に渡ります。 また、印刷を前提としてるためソートなどはできません。 さらに1枚のシートにこのようなデータがいくつかあるので、その決まった範囲内で個数を抽出する必要があります。 なにとぞ皆様のお知恵をお貸しくださいませ。 よろしくお願いします。 AAA AAA BBB CCC AAA DDD DDD BBB DDD DDD EEE EEE

  • TwitterAPIで取得したデータ内のハッシュタグをタグクラウド化し

    TwitterAPIで取得したデータ内のハッシュタグをタグクラウド化したい と考えておりまして、質問いたします。 現在、TwitterAPIを利用して条件にあったフィードを取得し、MySQLに格納しています。 例のように、テキストには一部、「#」の文字列がついたハッシュタグがついてます。 ━━━━━━━ ▼例 id| text 1 | こんにちは はじめまして #aaa 2 | こんにちは さようなら #bbb 3 | ありがとう さようなら #aaa 4 | どうもどうも #aaa #bbb #ddd 5 | ありがとう 6 | おはようございます #ccc ━━━━━━━ 例を見れば、 #aaa は3つ #bbb は2つ #ccc は1つ #ddd は1つ であることが分かりますが、 これをタグクラウド化するために、 MySQLで「ハッシュタグごとにその数を多い順に抽出する」事は可能でしょうか? つまり、SQLを投げる事で、下記のようなデータが帰ってくる方法を知りたく思います。 ━━━━━━━ TAG | COUNT #aaa | 3 #bbb | 2 #ccc | 1 #ddd | 1 ━━━━━━━ ハッシュタグが複数同じデータの中にある場合が悩ましい所です。 良い方法をご存知の方がいらっしゃいましたらご教示の程お願い致します。 よろしくおねがいします。

  • Access2007抽出のことで

    Access2007のクエリ、デザインビューのことです。 データが例えば aaa bbb ccc ddd とあるとして、このうちaaaとcccの2つを抽出しようと 思って「"aaa"and"ccc"」とか書いても データシートビューでは空欄になってしまいます。 条件の書き方がおかしいのでしょうか?

  • xmlからphpでうまくデータを出力できない

    WEBサービスでリクエストに対して取得したxmlの中で、下記のようなデータがあるのですが、それがうまくphpで出力できなくて困っています。 [xmlのデータ(一部)] <aaa>  <bbb>   <ccc>    <ddd>あいうえお</ddd>    <Date date="05" month="09" year="2009"> [phpのソース] echo $aaa->bbb->ccc->ddd ; echo $aaa->bbb->ccc->year ; ・・・(※) (※)の行は思いつきで書いてしまっているのですが、この状態で実行すると、「あいうえお」は取得できますが、日付が当然取得できません。質問は以下です。 (※)の部分は、どう書けばいいのでしょうか?

    • 締切済み
    • PHP
  • 抽出して並べ替えたい

    初めまして 非常に悩んでいます。 エクセルシートの列に下記のようにデータが並んでいます。(文字列) AAA bbb ccc (空白) BBB ddd eee (空白) AAA bbb ccc (空白) AAA eee ggg 並べ替え後 AAA AAA BBB bbb eee ddd ccc ggg eee 尚、列上でセル位置は任意で、空白行も任意です。(1つ以上です) できれば関数でお願いします。 VBAの場合、使用したことがないので詳しくお願いします。

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • Excel:既入力項目をドロップダウンリストに(入力規則?)

    Excelで、 ある列に簡単な文字列を入力していっているのですが、 それまでに同じ列で入力したのと同じ内容を入力する際に、 ドロップダウンリストを使いたいと思っております。 入力リストとも思うのですが、内容が固定でなく、 新たな内容を入力したら、それもリストで 使えるようにしたいです。 (例) AAA (空白) (空白) BBB (空白) CCC (空白)     ←ここを入力するときに、      AAA・BBB・CCCから選択またはDDDを手入力     ←上でDDDを入力していたらAAA・BBB・CCC・DDDから選択      そうでなければAAA・BBB・CCCから選択 以下ずっとこんな感じ(新項目を入力したら以後それもリストに入ってほしい) このような場合、どのように設定したらよいのか、 お分かりの方がいらっしゃいましたらご回答ください。

  • SpreadのデータをCSVに出力する際。。。

    いつもお世話になっております。 現在SpreadのデータをCSVに出力するプログラムを作成しています。 例えば、Spreadのデータに… ------------------- AAA BBB CCC DDD BBB DDD ------------------- というデータが入っている場合、 CSVには… ------------------- AAA BBB CCC DDD ------------------- という風に出力したい(重複した場合は一方だけ出力)のですが、 なかなかうまくいきません(汗) どのようなプログラムを組めばうまくいくか、 ご教授して頂ければ幸いです。 宜しくお願いします。 ※そのままCSVに出力するやり方はわかります。

専門家に質問してみよう