• ベストアンサー

エクセルです。何日と何日?

10/1 *        別表 10/2          10/1 10/3          10/4 10/4 *         10/5 10/5 *         10/6 10/6 * 10/7 左上の様な表があって*が何日と何日に入っているか全部を別の表に 表示させたいのですが何の関数を使えば良いですか?教えてください。

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

  • ベストアンサー
回答No.5

マクロを組めば楽なのですが、今回は関数のみで作ってみました。 A2~A24に日付Bセルに*が入っているとします。 この例では同じシートのDセルとEセルを使いますが別のシートでも構いません。 まずD1セルに =MATCH("*",B2:B25,0) と入力します。これはB2~B25の中に"*"がある行を見つけ一番最初に出てきた場所を返します。 質問の例では 1が返ります。(10/1) 次にD2セルに =MATCH("*",OFFSET($B$2,D1,0):$B$25,0)+D1 と入力します。 これは、先ほどD1セルで取得した場所の次から"*"を検索します。 やはり一番最初に出てきた場所を返しますが、質問の例では10/2から検索し3つ目の 場所なので3が返ります。 10/1から見ると4つ目ですのでD1セルの値を足します。 ここで、$B$25としているのは、最終行を24とするとoffsetが24以上になっても必ず最終行を検索してしまうので、最終行を1つ下にしてあります。 別にデータが終了している行なら$B$65536でも構いません。 後は、D2セルをコピーして必要行まで貼り付けてください。 質問の例だと 1 4 5 6 #N/A #N/A ... 以下貼り付けた部分まで#N/A となります。 あとはE1セルに =IF(ISNA(D1),"",OFFSET($A$2,D1-1,0)) と入力し、同じく必要セルまでコピー、貼り付けでEセルに日付が表示されます。 Dセルを非表示にすれば完成です。 ちょっと面倒かもしれませんが、こんな方法もあるということで。

chiharuhotei
質問者

お礼

ありがとうございました<(_ _)>

その他の回答 (4)

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

「*」(半角)でも指定できるようです。 #2のご回答を詳述します。 1.メニューでデータ(D)-フィルタ(F)-フィルタオプションの設定(A)-OKをクリック。(フィルタオプションの設定の画面になる。ALTキーを左手で押したまま、D,F,Aキーを押すと速い) 2.「指定した範囲」をクリックしONにする。 3.「リスト範囲」の四角の右の矢印をクリック。 Sheet1のA1:C6を範囲指定。 検索条件範囲のバーの×をクリックする。(元のフィルタオプションの設定の画面に戻る。) 5.「検索条件範囲」の四角の右の矢印をクリック。 Sheet1のF1:F2を範囲指定。検索条件範囲のバーの ×をクリックする。元のフィルタオプションの設定の画面に戻る。) 6.「抽出範囲」の四角の右の矢印をクリック。 適宜Sheet1のC12:E20とか範囲指定。 検索条件範囲のバーの×をクリックする。(元のフィルタオプションの設定の画面になる。) 7.OKをクリック。 結果は コード1 コード2 計数 2002/10/2  * 20 2002/10/4 * 40 C12:E20をSheet2へコピーする。 (関数では不可能)Sheet2のA1:C20とかのセルに (a1)=sheet1!c12 (a2)=sheet1!c13とかをSheet2に全部埋めとけば出来なくもない。

回答No.3

はじめまして。 あなた様のおやりになりたいことは、マクロを書けば簡単なマクロで実行することができると思います。もし私でよろしければサンプルマクロを作ってみたいと思います。 ご希望の節は、お知らせ下さい。 その時のための確認なのですが、 たとえば、10/1・10/4・10/5・10/6に鉛筆という名前が入っていて別表に鉛筆と入力されている日付を取得したいということでよろしいのでしょうか。もし違う場合はお知らせ下さい。 お手数をおかけいたします。よろしくお願い申し上げます。

noname#2411
noname#2411
回答No.2

この質問の条件として、左側を触れば自動で再計算される必要はあるのですか?もし無ければ、オートフィルターを設定し、「*」で抽出→別の表にコピペで関数を使わずにできますよ!

chiharuhotei
質問者

補足

すいません。再計算しなくてはいけないんです。

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

*はアスタリスクなので全部拾ってしまう気がするのですが・・・。 マクロか何かで、「*のもの」とするのではなく、「空欄以外のもの」と すればうまくいくかと思いますけど。

chiharuhotei
質問者

補足

アスタリスクだから全部拾っちゃうのかな?他の記号でも良かったんですけど。。。 例がいけなかったですね。

関連するQ&A

専門家に質問してみよう