[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空欄のデータは詰めて抽出』(む)
お願いします。 A B C D E 1 3/1 早 3/1 早 2 3/2 3/3 遅 3 3/3 遅 3/4 早 4 3/4 早 3/5 早 5 3/5 早 6 3/6
↑のようにB列に入力があったらA〜B列をD列以降に抽出させたいのですが、 B列が空欄の場合は詰めて抽出したいのです。 関数での抽出は可能でしょうか?
[A] [B] [C] [D] [E] [1] 3/1 早 1 3/1 早 [2] 3/2 3/3 遅 [3] 3/3 遅 2 3/4 早 [4] 3/4 早 3 3/5 早 [5] 3/5 早 4 [6] 3/6
作業列を使用した場合の一例です。 C1=IF(B1="","",COUNTA($B$1:B1)) で下行へコピー D1=IF(MAX($C$1:$C$6)>=ROW(A1),INDEX($A$1:$B$6,MATCH(ROW(A1),$C$1:$C$6,0),COLUMN(A1)),"") で下行ヘコピー、さらに右列へコピーです。 如何でしょうか? (SS)
もう一案
D1=IF(COUNTA($B$1:$B$6)>=ROW(A1),INDEX($A$1:$B$6,SMALL(IF($B$1:$B$6<>"",ROW($B$1:$B$6)),ROW(A1)),COLUMN(A1)),"")
と入れて、Ctrl + Shift + Enter で確定して下さい。 そして、下行、右列へコピーです。 (SS)
SSさん、ありがとうございます! あまりデータを増やしたくないので、作業列ナシの案を使わせていただきます。 返事が遅くなりすみませんでした。
申し訳ありません。 行を増やしたら、#NUM!と表示されてしまう箇所があります。 色々調べたのですが、このエラーの根本が理解出来ません。 どのような意味なのか、お教えください。 (む)
(4)#NUM! 大きすぎる数値又は小さすぎる数値 [An invalid NUMber] の略 (MS-Help 数式または関数の数値に問題がある場合に表示されます) (例) セルC11 に =10^309 と入力します( [^] はべき乗で[ヘ]のキー) セルA12 に 1979/4/14 と入力し、セルC12 に =DATEDIF(A12,2004/07/13,"y") で#NUM!エラー セルA13 に 2004/07/13 と入力し、セルC13 に =DATEDIF(A13,"1979/4/14","y") のように開始日と終了日が逆でも#NUM!エラー
https://www.excel.studio-kazu.jp/mag2/backnumber/mm20040713.html
より (dack)
なるほど。勉強になりました。 dackさんありがとうございます。
それと、応用というかもう一つお教えください。 抽出の先頭データを同シート内の「D1セル」に指定しましたが、 コレを「Sheet2・J9」にする場合は、どのようにしたら良いのでしょうか? 色々やってみているのですが、うまくいきません。 お願いします。 (む)
内容を見ていないので、外しているかもしれませんが ROW関数やCOLUMN関数が使われている関数の場合 シフトさせなければならないセル番地と、 シフトさせてはいけないセル番地とを 見分ける必要がある場合が多いです。
どのあたりまでうまくいきますかね? 1.Sheet2のD1にする場合 2.Sheet2のJ1にする場合 3.Sheet2のJ9にする場合 ・・・3番目までいけてれば、必要な事は出来ていると言う事になりますが・・・。
(HANA)
お手数をおかけしてすみません。 データベース・抽出先等詳細に記載させていただきます。 <Sheet1>のようなデータベースがあるとき、時間の入力がない行は削除して <Sheet2>に抽出するにはどのようになしたらよいでしょうか? お願いします。 <Sheet1> [A] [B] [C] [D] [1] [2] [3] [4] [5] [6] 開始 終了 [7] 日付 曜日 [8] 4/16 月 [9] 4/17 火 09:00 18:00 [10]4/18 水 12:00 21:00 [11]4/19 木 09:00 18:00 [12]4/20 金 [13]4/21 土 09:00 12:00 [14]4/22 日 09:00 12:00 [15]4/23 月 09:00 12:00
<Sheet2> ・・・・[AT]・・・・[AX] [AY] [3] 4/17 9:00 18:00 [4] 4/18 12:00 21:00 [5] 4/19 9:00 18:00 [6] 4/21 9:00 12:00 [7] 4/22 9:00 12:00 [8] 4/23 9:00 12:00
(SS)さんの回答を使用して
AT3=IF(COUNT(Sheet1!$C:$C)>=ROW(A1),INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$C$8:$C$15<>"",ROW($C$8:$C$15)),ROW(A1))),"")
AX3=IF(COUNT(Sheet1!$C:$C)>=ROW(A1),INDEX(Sheet1!$C:$D,SMALL(IF(Sheet1!$C$8:$C$15<>"",ROW($C$8:$C$15)),ROW(A1)),COLUMN(A1)),"")
と入れて、Ctrl + Shift + Enter で確定して下さい。 そして、下行、右列へコピーです。
お久しぶりです。 お礼を書いたと思っていたのですが、まだのようでした。 とても使い勝手の良いものができました。 ありがとうございました。
ところで、上記は「C列」に入力があれば抽出ですが、基準列を「E列」にした場合 AT3=IF(COUNT(Sheet1!$C:$C)>=ROW(A1),INDEX(Sheet1!$E:$E,SMALL(IF(Sheet1!$E$8:$E$15<>"",ROW($E$8:$E$15)),ROW(A1))),"") ↑こんなことをしてみましたが、うまくいきません。 再度お教えください。 (む)
こんにちは〜♪
横から失礼しま〜す。。。
>基準列を「E列」にした場合
でしたら
>COUNT(Sheet1!$C:$C)>=ROW(A1)
C列をCOUNTするのではなくて E列をCOUNTしなくては、いけませんので。。。
COUNT(Sheet1!$E:$E)>=ROW(A1)
に、してみて下さい。。。
。。。Ms.Rin〜♪♪
ありがとうございます。 COUNT(Sheet1!$E:$E)>=ROW(A1) ↑にしてみたら、何も値が返ってきませんでした。>< 空白になってしまいます。(む)
数式内の参照先セル番地が何をしたい時何処を参照しているのか 解読してみる試みはおこなってみられましたか?
Sheet1C8:C15の範囲が空欄でない物の Sheet1A:A列の値を返したい時、上の名無しさんの式 >AT3=IF(COUNT(Sheet1!$C:$C)>=ROW(A1), >INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$C$8:$C$15<>"",ROW($C$8:$C$15)),ROW(A1))),"") ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ これで上手く行ったのですよね?
最初にSSさんが作ってくださった式と、その時の条件。 次に、条件が変わったときに、名無しさんが何処を変更して 新しい式を作ってくれたのか。 見比べてみると、何処を変えればよいのか分かると思いますよ。
それでも分からないときは、又ご質問頂くのがよいかと思います。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.