プロが教えるわが家の防犯対策術!

いつもお世話になりありがとうございます。
タイトルのとおりなのですが、例えばA列にA1からA30までのセルに空白も含め
欠席,出席,×,購入,仕入れ, ,売却,4/1,ウナギ,6/10,タマゴ
などのように入力されています。日付はシリアル値です。
この中から、日付以外のデータをすべて抽出したいのです。
また逆に、日付のみをすべて抽出したいのです。
数式や関数などを教えていただきたいのです。よろしくお願いします。

A 回答 (6件)

添付図参照(Excel 2019)



E2: =IF((CELL("type",A2)="v")*(CELL("format",A2)="D3"),ROW(A2)-1,"")
F2: =IF(A2="","",IF(E2<>"","",ROW(A2)-1))
範囲 E2:F2 を下方にズズーッと(31行目まで)オートフィル
式 =IFERROR(INDEX(初期データ,SMALL(INDIRECT(E$1),ROW($A1))),"")
を入力したセル B2 を右隣&下方にズズーッと(31行目まで)オートフィル
オ・シ・マ・イ
「日付以外のデータを抽出したいのですが、」の回答画像6
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
作業列をつくるのですね。
参考にさせていただきます。

お礼日時:2023/06/28 07:48

日付といってもシリアル値、つまり数値なので、数値かどうかを判定するしかないと思います。


つまり数値か否かでフィルターをかければよいことになります。

日付以外のデータをすべて抽出:

=FILTER(A:A,(1-ISNUMBER(A:A))*(A:A<>"")=1)

日付のみをすべて抽出:

=FILTER(A:A,ISNUMBER(A:A)*1=1)

でどうでしょう。
「日付以外のデータを抽出したいのですが、」の回答画像5
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほど、そのような方法もあるのですね。
参考になります。ありがとうございました。

お礼日時:2023/06/28 07:46

Excelなのかどうかも定かではないんですが そうだと仮定するなら


Excelのバージョンはいくつですか?

=FILTER(A:A,(A:A>10^15)*(A:A<>""))

=FILTER(A:A,(A:A<=10^15)*(A:A<>""))
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
取り乱していて、Excelのバージョンを書くのを忘れておりました。
Excelのバージョンは365です。
参考にさせていただきます。

お礼日時:2023/06/27 17:56

・・・追記・・・

「日付以外のデータを抽出したいのですが、」の回答画像3
    • good
    • 0
この回答へのお礼

参考にさせていただきます。
ありがとうございます。

お礼日時:2023/06/27 16:26

その抽出したい範囲を選択して、


 Ctrl+G(ジャンプ)→セル選択(S)...
で、
 選択オプション
のダイアログを表示させて、
 「定数」
 「数値」
を選んで
 「OK」
をクリックすると、
 シリアル値
の項目だけが選ばれるので、
 コピーするなり
 削除するなり
好きにすれば良いと思います。

……ということで、データを加工するためシートを丸ごと複製するなどして、その複製した側で作業するようにしてはいかがでしょう。

(画像は追記の回答に添付します…画像添付すると回答に反映されるの遅いんだ)
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
なるほど、そういう方法があるのですね。
参考になりました。
頑張ってみます。

お礼日時:2023/06/27 14:50

単に、全てをコピーして、不要な列を削除する、


このほうが簡単です。
関数処理なんか、無駄でしょう。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
>不要な列を削除する
私の例でいうと、行を削除するってことなのでしょうが、
実はA列に入力されている順が大切なのです。
また例はA列を挙げていますが、B列からZ列まであり、おのおのの列で
日付以外のデータをすべて抽出し、また日付のみをすべて抽出したいのです。
よろしくお願いします。

お礼日時:2023/06/27 14:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!