• ベストアンサー

EXCELで、データがあるかどうかで表示を変えたい

任意の行について、 対応するF列にデータがあるが、G列にデータがない場合、F列のデータをE列に加える 対応するF列にデータがないが、G列にデータがある場合、G列のデータをE列に加える 対応するF列にデータがなく、G列にデータがない場合、空白とする。 としたいのですが、このような関数はどういう風に書けばいいのでしょうか。 行が700行と多く、手作業で打ち出すのは難しいです。 よろしくお願いします。

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

  • ベストアンサー
  • ka28mi
  • ベストアンサー率41% (969/2314)
回答No.3

確認したい点が3つあります。 ・E列には元は何も入っていないという意味で良いでしょうか? ・「対応する」とは、同じ行という意味で良いでしょうか? ・F列にもG列にもデータがある場合、F列を優先して良いでしょうか? 上記の前提があっていれば、E列1行目に下記の式を入れてコピーで問題ないと思います。 =IF(F1<>"",F1,IF(AND(F1="",G1<>""),G1,IF(AND(F1="",G1=""),""))) Fセルが空白でなければFセルのデータをE列と同じ値とする、 Fセルが空白の場合はG列が空白でなければG列と同じ値とする、G列も空白なら空白とする、 という式です。

crouch-tancle
質問者

お礼

ご回答ありがとうございます。 頂いたコードで無事にできました。 本当に感謝です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

補足をお願いします。 F・G列にデータがあるケースはどうするのでしょうか。 また、「E列に加える」とはE列にデータが入力されていてそれに追記するような ことでしょうか。

crouch-tancle
質問者

お礼

ご回答ありがとうございます。 申し訳ありません。E列はすべて空、F列もしくはG列のいずれかにデータが入っています。 たとえば5行目の場合、対応するG列は5G、対応するF列は5Fのことを指します

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

FとGのどっちも記入されていたらどうしたいのか,ご説明の状況設定にヌケがありますね。 作成例: H2に =IF(COUNT(F2:G2),E2+IF(F2<>"",F2,G2),"") 以下コピー。

crouch-tancle
質問者

お礼

ありがとうございます。 大変参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAで不一致に空白セルを挿入

    エクセル2010です。 A、B列ともソートされています。 ごく少数ですが同一列内に重複するデータもあります。 そして A列に、1行目からA、B、C、E、F、F、H B列に、1行目からA、B、D、E、F、G、I (カンマは実際にはありません。) というような文字列データがある場合 別シートに A列に、1行目からA、B、C、空、E、F、F、空、H、空、 B列に、1行目からA、B、空、D、E、F、空、G、空、I、 (空は空白セルの意味です。) というように、お互いが一致しない場合は空白で飛ばし、一致するものは同じ行にするにはどのような方法がよろしいでしょうか? 例のように少ないデータなら目で見て手作業でできますが、実際は千件以上のデータです。 VBAでも関数でも結構です。よろしくお願いします。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • エクセルデータの並び替え

    A列とB列に文字列ばかりのデータがあります。 C列に、A列の1データに対してB列の5データが続くように並べたいのです。 A列  B列  C列 a    1   a b    2     1 c    3     2 d    4     3 e    5     4 f    6     5 g    7     b h    8     6 i    9     7 j    10     8 k    11     9 l    12     10   以下、C列には、  c 11 12 13 14 15 d 16 17 18 19 20 e 21 ・・・・と続きます。 こんなことは関数処理で可能でしょうか。 手作業でやりだしたのですが、手間がかかるので質問させていただきました。どうぞ、よろしくお願いします。

  • データの一部範囲について、並替等のVBAを作りたい

    データの一部範囲について、並べ替え等のVBAを作りたい。 次のようなVBAを作りたいのですが、当方知識がほとんどないためお力を貸してください。 データの内容 A列たてに2行目「6時台」12行目「7時台」というふうに、10行くらいおきに「○時台」の文字が24時台まで入る B列~C列A列にあわせた行数の文字列が入る E列~N列関数式の入ったデータが入る、A列~C列のからデータにあわせてデータより余分に関数式が入りデータ空白はIF(B="","", )で空白扱い。 処理したい内容 まず例として11時台~12時台の範囲(11時台のセルから13時台の文字の前の行まで)についてのみ対象として E列~J列までを、たて一列にする。E1~Exその下にF1~FxというふうにJ列まで。ただし並べ順はE,G,H,F,I,Jのようになる。 この場合の「E1」とは11時台のセル行位置 次にH~N列の矩形をそのままCopy これらのデータをテキストとして作成保存 時間の範囲は、A1に入るデータの日付(Bookごとに異なる)による曜日によって異なるので 「固定式」をいくつか作ってcaseで選択を予定していますが 汎用性として、最初の時間とうしろの時間を指定する任意の範囲式も作っておきたいです。 現在は、boxで時間を入れ、検索で○時台を見つけその上に空白行を3行入れ 続いてうしろの行も時間指定により3行空白を入れ、データ(関数式)の途切れる範囲内を作り、 その場所に手動でジャンプさせ、並べ替えマクロを動作さテキスト化しています。 また矩形部分はマウスで範囲を反転させたものをCopyしてそのテキストにあとから貼り付けています。 全体を対象としたVBAはここで作成していただいたのですが、途中の一部範囲を対象としたものが必要になったためお知恵をお借りしたいと思います。 よろしくお願いします。 Windows7/Office2013

  • エクセルのデータのラップ

    エクセル2003です。 5万件近くあるデータベースにかなりの数重複したデータが入っており、データ(行)を抹消したいのですが、何かいい方法はないでしょうか? 列は、6列程度で、A列は年月、B列は番号の様な文字列(先頭がゼロで始まる同じ桁数の数字群)、C~Eは文字列、F~Gは年月日です。 並べ替えて、手作業で地道に抹消していくぐらいしか思いつきませんので、いい方法がございましたら、教えて下さい。

  • Excel シート間のデータの照合

    Excelで、シート間のお客様データ(だいたい各1万件)を照合します。下記は現在の照合方法ですが、これでは時間がかかるうえ手作業が多く発生しミスにつながります。頻繁に行う作業なので、関数でも、マクロでも、とにかくもう少し簡単にできる方法がありましたら、どうぞご教授ください。よろしくお願いします!! 【目的】 シート「sheet2008」には2008年度のデータ。シート「sheet2007」には「sheet2008」と同じ形式の2007年度のデータが入っています。シート「sheet2008」に、そのお客様の2007年度の担当営業マンを表示させたいのです。 【例】 列A(電話番号): 011-231-1112 列B(名前):佐藤 一郎 列C(住所):北海道札幌市中央区北1-1-1 列D(担当営業マン):鈴木 新規の列(2007年度の担当営業マン):鈴木  ・「sheet2008」「sheet2007」はほぼ同じデータですが、一部のお客様は名前が変わっていたり、住所が変わっていたりします。  ・「sheet2007」にないお客様が「sheet2008」にあったり、その逆があったりして、各シートのデータ件数は一致しません。  ・名前が同じでも住所が違うデータ、電話番号が同じでも担当営業マンが違うデータは別者として扱います。  ・「顧客ID」のような“必ずユニークな情報”は存在しません。 【現在の照合方法】 (1)「sheet2008」の各列の前に空白列を挿入する。  (データの1行目はタイトル行…B1:電話番号/D1:名前/F:住所/H:担当営業マン)  (データの2行目以降はデータ)     列A(空白行):     列B(空白行): 011-231-1112     列C(空白行):     列D(名前):佐藤 一郎     列E(空白行):     列F(住所):北海道札幌市中央区北1-1-1     列G(空白行):     列H(担当営業マン):鈴木 (2)「sheet2007」を列Aの電話番号で昇順に並べ替える。 (3)「sheet2008」の電話番号が「sheet2007」にあるかを調べる。     A2:「=IF(B2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,1,0)),"○","▲")」 (4)(3)で調べた「sheet2008」の電話番号と同じ行にある名前/住所が「sheet2007」にあるかを調べる。     C2:「=IF(D2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,2,0)),"○","▲")」     E2:「=IF(F2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,3,0)),"○","▲")」 (5)電話番号/名前/住所がすべて一致するデータについて、「sheet2007」にある担当営業マンの値を列Gに表示させる。     G2:「=IF((AND(A2="○",C2="○",E2="○"))=TRUE,(VLOOKUP($B2,Sheet2007!$A:$D,4,0)),"▲") (6)"▲"やエラー値で表示される計算結果について、目視で確認する。 (終了)

  • 入力された●から●迄の空白をカウントする方法

    どなたかご存じでしたらご回答よろしくお願いします。 【質問】  各列毎に●や▲が任意の数がある8行のセルがあります。  8行目の任意列に●を入力した場合、  そこから上に遡って●までの間の空白のセルを数える方法が知りたいです。  但し、▲も”空白の1つ”として数えます。 【入力】    A  B  C  D  E  F  G …  1 ●  ●         2        ●  ▲ ● ▲   3     ▲ ●       ▲  4                5  6  7   8 ●  ● ●               【結果】  A B C D E F G・・・   6 6 4 0 0 0 0 ※結果の説明 A:8行目の●から上に数えて●迄の空白は6個。 B:8行目の●から上に数えて▲がありその上に空白と●があるが、▲を空白とみなして6個。 C:8行目の●から上に数えて最初の●迄の空白迄は4個。 D:8行目に●は無いため、空白は0個。 E:8行目に●は無いため、空白は0個。 F:8行目に●は無いため、空白は0個。 G:8行目に●は無いため、空白は0個。 使用するエクセルは2010です。 以上、よろしくお願いします。

このQ&Aのポイント
  • Windows Updateの画面に「最新の状態ではありません。デバイスに重要なセキュリティ修正プログラムと品質修正プログラムがありません」と表示されます。
  • 22H2の手動アップデートを試みましたが、更新プログラムの構成中に問題が生じ、コンピュータに対する変更が元に戻されます。
  • Microsoft Updateカタログにおける更新プログラムはこのコンピュータには適用できないと表示されます。更新プログラムのダウンロードやインストールができない状態です。
回答を見る

専門家に質問してみよう