アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは。
またもやexcelで悩んでおります。どうぞご教授ください。
下のようなデータがあります。

    A   B   C   D    E   F   G
1 山岡     山田  丸山  山岡  山田  丸山
2      平尾     南田  平尾  南田         




A列からD列まで名前のデータがあり、空白のセルもあります。
E列からG列には、各行のA列からD列の名前を、空白セルを飛ばして表記したいのです。(詰めて表記したいです)
名前は各行とも0から3つまでです。

前回同様(QNo.4073079)行き詰ってしまいました。
よろしくお願いいたします。

A 回答 (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))))


★右と下にコピー
    • good
    • 1
この回答へのお礼

またもやご指導いただきましてありがとうございました。
数式は理解できませんが、完璧に動きました!
すごいです。ありがとうございました!!

お礼日時:2008/06/05 17:09

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,"")),"")

でどうでしょうか。
    • good
    • 1
この回答へのお礼

マナー違反をいたしまして申し訳ございませんでした。

ANo.3のkuma56さんのお礼にも書かせていただきましたが、実はネストの問題が発生いたしまして、うまくいきませんでした。

言葉足らずの質問にお答えいただきましてありがとうございました。

お礼日時:2008/06/05 04:34

方法はいくつかあると思うけど、まずどういう表なのか考えてみましょう。


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,""))
これじゃダメかな??

あと、関連の過去ログを書くのなら、リンクにして張って欲しい。
解答側から質問者名で過去ログの健作は難しいので、探すのが大変なんだよね。
    • good
    • 1
この回答へのお礼

無礼にも過去ログを載せてしまい、申し訳ございませんでした。
確かに、検索するのは大変な作業ですね・・。また、言葉足らずの質問にお答えいただきましてありがとうございました。

この質問ではA列からD列をデータ列としておりますが、実はA列からR行までの18行に名前のデータが入っております。そしてAA列からAQ列までに、0人から17人の名前が空白を飛ばして表記したいのです。(0人だとすべて空白ですが)
残念ながら、お教えいただいた関数ではネストに引っかかってしまい処理できませんでした。

ありがとうございました。

お礼日時:2008/06/05 04:28

1.A列~D列をE列~F列へコピーします。


2.E列~F列を選択します。
3.メニューの「編集」→「ジャンプ」を選びます。(ctrl + gでも可)
4.「セル選択」をクリックします。
5.「空白セル」にチェックを入れて「OK」をクリックします。
6.E列~F列の空白セルが選択されるのでそのまま右クリックし、「削除」を選択します。
7.「左方向にシフト」にチェックを入れて「OK」をクリックすれば完了です。
    • good
    • 1
この回答へのお礼

読みづらい質問の中、ご返答いただきましてありがとうございました。
言葉足らずで申し訳ございません。関数で処理できたらいいな・・と思っております。

お礼日時:2008/06/05 04:16

関数の質問なのか、VBAの質問なのか補足が必要です。



前の質問を確認しろ、などと回答者に要求してはいけません。

以上

この回答への補足

マナー違反だとは知らず、申し訳ございませんでした。
前回の質問は解決済みで、皆様に確認していただくつもりはなく、あまりにもあざやかに解決していただけたのでつい書いてしまいました。

質問の内容は関数です。関数で処理できたらなあ・・と思っております。
「名前は各行とも0から3つまでです」というのは、A列からD列までの名前のデータがすべて空白の行のあれば、3つのセルまで入力されている行もあるという意味です。

まったくの言葉足らず、そしてマナー違反をして申し訳ございませんでした。

補足日時:2008/06/05 04:05
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています