教えてください。
下記のように
①参照セルの左が空白なら空白
②参照セルが空白でなく参照セルの下も空白でなければ参照セル
③参照セルが空白でなく参照セルの上も下も空白でなければ参照セル
④参照セルの下が空白で参照セルが空白でなければ参照セル&"(1)"
⑤参照セルが空白で参照セルの上が空白でなければ参照セルの上セル&"(2)"
⑥どの行でも①から⑤の内容を適用
例えば、参照セルがE2でD2を式とする場合
①=IF(F2="","")
②=IF(AND(E2<>"",OFFSET(E2,1,0)<>""),E2)
③=IF(AND(E2<>"",OFFSET(E2,-1,0)<>"",OFFSET(E2,1,0)<>""),E2)
④=IF(AND(OFFSET(E2,1,0)=""),E2<>"",CONCAT(E2,"(1)"))
⑤=IF(AND(E2="",OFFSET(E2,-1,0)<>""),CONCAT(OFFSET(E2,-1,0),"(2)"))
⑥D2を下にフィル
となると思うのですが、1つの式に纏めるにはどうしたら良いでしょうか?
microsoft365のエクセルを使用しています。
よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
=IF(
F2=""
,""
,IF(
AND(E2<>"",OFFSET(E2,1,0)<>"")
,E2
,IF(
AND(OFFSET(E2,1,0)="")
,E2<>""
,CONCAT(E2,"(1)")
,IF(
AND(E2="",OFFSET(E2,-1,0)<>"")
,CONCAT(OFFSET(E2,-1,0),"(2)")
)
)
)
……ということになり、閉じ括弧が一つ足りない。
で、よく見てほしい。
3つ目のIF関数の中に4つ項目がある。
まあ、これは質問本文中にあるIF関数の条件式そのものが間違えていることが原因。
(ちなみに③も間違っている)
=IF(
F2=""
,""
,IF(
AND(E2<>"",OFFSET(E2,1,0)<>"")
,E2
,IF(
AND(OFFSET(E2,1,0)="",E2<>"")
,CONCAT(E2,"(1)")
,IF(
AND(E2="",OFFSET(E2,-1,0)<>"")
,CONCAT(OFFSET(E2,-1,0),"(2)")
)
)
)
)
……これでエラーは出なくなると思いますがいかがでしょう。
(正しく動作すかは保証しません)
詳細な回答ありがとうございます。
ご指摘のとおり④の閉じカッコの位置がズレてました。
⑤も閉じカッコが1個足りませんでした。
ネストすると分かりにくいですね。
ありがとうございました。
No.3
- 回答日時:
No1です
No2様の回答にあるように、対応関係をきちんと整理できるような記述法で記してから編集なされば宜しいでしょう。
一方で、IF関数をネストすると分かりにくくなり、補足のようなことが起こりやすいので、No1のような回答をしています。
条件が排他的になるように整理しておいて、「一致すれば対応する結果、それ以外は""」となる式をそれぞれ作成しておいて「&」でつなげる方法です。
こちらの方法であれば、ネストは無くなりますので、視認性がよくなりメンテナンスしやすくなると考えられます。
ただし、条件を上手く整理しておく必要がありますが。
No.2
- 回答日時:
>例えば、参照セルがE2でD2を式とする場合
>①参照セルの「左」が空白なら空白
(´・ω・`)...循環参照になるんじゃね?
この矛盾をどうしたものか5分ほど考えちゃったよ。
>①=IF(F2="","")
「左」じゃなくて「右」なのね。
・・・本題・・・
その考え方であれば、条件に優先順位を付けて考えてみましょう。
そうしてIF関数を
IF(
条件1
,条件1成立時の式
,IF(
条件2
,条件2成立時の式
,IF(
条件3
,条件3成立時の式
,IF(
…
))))
のようにスタックさせてみては?
365ならたぶん収まると思います。
これが2007とかでは、項目が多すぎて修正を求められるかと思います。
No.1
- 回答日時:
こんばんは
>参照セルがE2でD2を式とする場合~
>参照セルの左が空白な~~
E2セルの左のセルはD2なので、D2に式を記述するとなると循環参照になります。
条件がきちんと整理されているとしてよいのなら、ご提示の式を「&」でつなげば条件に合致した項だけが実行されるので、お求めの結果になるはずです。
とは言っても、同じ条件になっているものが混在しているようなので、条件を再整理する必要がありそうです。
また、ご提示の条件のどれにも合致しない場合も含めて、考えるようにした方が宜しいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) 【EXCEL】空白でないセルの位置を検索したい 3 2022/04/26 22:03
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) エクセル関数についてお教えください 3 2023/07/24 12:33
- Excel(エクセル) Excel関数式で該当月日のみ表示し、それ以外の月日を空白にしたい。 1 2022/07/17 11:59
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Visual Basic(VBA) 別のファイルへ条件を指定してセルの値を転記したい 4 2022/04/04 15:38
- Excel(エクセル) エクセルで、対象セルが10時までと、空白なら空白をそれ以外は、対象セルから10時を引いた時間を算出す 1 2023/04/13 08:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
数式による空白を無視して最終...
-
【Excel】 csvの作成時、空白セ...
-
エクセルにて負の時間を0:00と...
-
「データ要素を線で結ぶ」がチ...
-
excel2010 空白セルにのみ貼り...
-
ピボットテーブルで空白セルの...
-
形式貼り付けの「空白を無視す...
-
エクセルで、「複数のセルの中...
-
Excel:関数が入っているセルに...
-
空白セル内の数式を残したまま...
-
SUMIFS関数で「計算式による空...
-
Excelで、入力文字の後に自動で...
-
vlookupの結果が0になるセルと...
-
エクセルで上の行の値を自動的...
-
vlookup にて、返す値が、空白...
-
エクセル マクロ 最終列まで...
-
エクセル 連番が途切れていると...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
数式による空白を無視して最終...
-
excel2010 空白セルにのみ貼り...
-
エクセルでCSVを編集するとき、...
-
「データ要素を線で結ぶ」がチ...
-
Excelで、入力文字の後に自動で...
-
ピボットテーブルで空白セルの...
-
エクセル 連番が途切れていると...
-
関数TRANSPOSEで空白セルを0に...
-
空白セル内の数式を残したまま...
-
Excel > ピボットテーブル「(空...
-
エクセルで、「複数のセルの中...
-
SUMIFS関数で「計算式による空...
-
空白を0とみなす関数
-
【Excel】 csvの作成時、空白セ...
-
エクセルで上の行の値を自動的...
-
《Excel2000》SUMPRODUCT関数で...
-
一列の中の金額を他のセルに
-
形式貼り付けの「空白を無視す...
-
エクセルで空白文字の前後を入...
おすすめ情報
回答ありがとうございます。そして質問の誤記すみませんでした。
仰るとおり、「右」です。
③の内容は不要なことに気づきましたので削除し、
①②④⑤を組み合わせると下記のようになったのですが、
「この関数に対して、多すぎる 引数が入力されています。」
とエラーが出てしまいます。
=IF(F2="","",IF(AND(E2<>"",OFFSET(E2,1,0)<>""),E2,IF(AND(OFFSET(E2,1,0)=""),E2<>"",CONCAT(E2,"(1)"),IF(AND(E2="",OFFSET(E2,-1,0)<>""),CONCAT(OFFSET(E2,-1,0),"(2)"))))
何故か教えていただけないでしょうか。
よろしくお願いいたします。
回答ありがとうございます。
もう少し整理してやってみます。