- ベストアンサー
空白セルを飛ばして転記したい
- Excelで空白セルを飛ばしてデータを転記する方法について教えてください。
- 名前のデータが入ったA列からD列までのセルに空白がある場合、E列からG列に詰めて表記する方法を教えてください。
- データが複数行に渡っている場合でも、空白セルを飛ばして詰めて表記するExcelの方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
E1=IF(COLUMN(A1)>COUNTA($A1:$D1),"",INDEX($A1:$D1,SMALL(INDEX(SUBSTITUTE(($A1:$D1<>"")*1,0,10^5)*COLUMN($A1:$D1),),COLUMN(A1)))) ★右と下にコピー
その他の回答 (4)
- keirika
- ベストアンサー率42% (279/658)
E1に=IF(A1<>"",A1,IF(B1<>"",B1,IF(C1<>"",C1,IF(D1<>"",D1,"")))) F1に=IF(E1<>"",IF(AND(B1<>"",B1<>E1),B1,IF(AND(C1<>"",C1<>E1),C1,IF(AND(D1<>"",D1<>E1),D1,""))),"") G1に==IF(F1<>"",IF(AND(C1<>"",C1<>E1,C1<>F1),C1,IF(AND(D1<>"",D1<>E1,D1<>F1),D1,"")),"") でどうでしょうか。
お礼
マナー違反をいたしまして申し訳ございませんでした。 ANo.3のkuma56さんのお礼にも書かせていただきましたが、実はネストの問題が発生いたしまして、うまくいきませんでした。 言葉足らずの質問にお答えいただきましてありがとうございました。
- kuma56
- ベストアンサー率31% (1423/4528)
方法はいくつかあると思うけど、まずどういう表なのか考えてみましょう。 A~D列はデータが有ったり無かったり。 E列には、A列,B列,C列,D列 F列には、B列,C列,D列 G列には、C列,D列 がそれぞれ入る可能性が有る。 E列は、A列が空でなければA列、違えばB列が空でなければB列,違えばC列が空でなければC列,違えばD列が空でなければD列、違えば空 式にすれば E1 =IF(A1<>"",+A1,IF(B1<>"",B1,IF(C1<>"",+C1,IF(D1<>"",+D1,"")))) F列は、A列は入らず、A:B列のデータ数が2ならB列,A:B列のデータ数が1でC列が空でなければC列,A:C列のデータ数が2でD列が空でなければD列、違えば空 式にすれば F1 =IF(COUNTA(A1:B1)=2,+B1,IF(AND(COUNTA(A1:B1)=1,C1<>""),+C1,IF(AND(COUNTA(A1:C1)=1,D1<>""),+D1,""))) G列は、A:B列は入らず、A:C列のデータ数が3ならC列,A:C列のデータ数が2でD列が空でなければD列,違えば空 式にすれば G1 =IF(COUNTA(A1:C1)=3,+C1,IF(AND(COUNTA(A1:C1)=2,D1<>""),+D1,"")) これじゃダメかな?? あと、関連の過去ログを書くのなら、リンクにして張って欲しい。 解答側から質問者名で過去ログの健作は難しいので、探すのが大変なんだよね。
お礼
無礼にも過去ログを載せてしまい、申し訳ございませんでした。 確かに、検索するのは大変な作業ですね・・。また、言葉足らずの質問にお答えいただきましてありがとうございました。 この質問ではA列からD列をデータ列としておりますが、実はA列からR行までの18行に名前のデータが入っております。そしてAA列からAQ列までに、0人から17人の名前が空白を飛ばして表記したいのです。(0人だとすべて空白ですが) 残念ながら、お教えいただいた関数ではネストに引っかかってしまい処理できませんでした。 ありがとうございました。
- googoo-takokaina
- ベストアンサー率40% (4/10)
1.A列~D列をE列~F列へコピーします。 2.E列~F列を選択します。 3.メニューの「編集」→「ジャンプ」を選びます。(ctrl + gでも可) 4.「セル選択」をクリックします。 5.「空白セル」にチェックを入れて「OK」をクリックします。 6.E列~F列の空白セルが選択されるのでそのまま右クリックし、「削除」を選択します。 7.「左方向にシフト」にチェックを入れて「OK」をクリックすれば完了です。
お礼
読みづらい質問の中、ご返答いただきましてありがとうございました。 言葉足らずで申し訳ございません。関数で処理できたらいいな・・と思っております。
関数の質問なのか、VBAの質問なのか補足が必要です。 前の質問を確認しろ、などと回答者に要求してはいけません。 以上
補足
マナー違反だとは知らず、申し訳ございませんでした。 前回の質問は解決済みで、皆様に確認していただくつもりはなく、あまりにもあざやかに解決していただけたのでつい書いてしまいました。 質問の内容は関数です。関数で処理できたらなあ・・と思っております。 「名前は各行とも0から3つまでです」というのは、A列からD列までの名前のデータがすべて空白の行のあれば、3つのセルまで入力されている行もあるという意味です。 まったくの言葉足らず、そしてマナー違反をして申し訳ございませんでした。
お礼
またもやご指導いただきましてありがとうございました。 数式は理解できませんが、完璧に動きました! すごいです。ありがとうございました!!