![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは。いつもお世話になります。
こちらで質問をしながらなんとか出来上がりそうなところまで来たエクセルのシートなのですが、
最後の最後でエラーが出て困っています。
ネットショップの商品登録用に、社独自の商品管理シートから、即座にhtml記述にしたいため、商品管理シートの各セルを結合させて、html文章に組み立てる、という数式を作っています。
そこでできたのが
=concatenate
($AB$2,N2,$AD$2,$AC$2,O2,$AC$2,
(if(P2<>"",$AE$2,"")),(if(P2<>"","<p>","")),
P2,(if(P2<>"","</p>","")),(if(P2<>"","<p>",""),
(if(P2<>"","◆長さ","")),(if(P2<>"","<p>","")),' ',P2,
(if(P2<>"","</p>","")),(if(Q2<>"","<p>",""),
(if(Q2<>"","◆軸径","")),(if(Q2<>"","<p>","")),' ',Q2,
(if(Q2<>"","</p>","")),(if(R2<>"","</p>","")),
(if(R2<>"","<p>",""),(if(R2<>"","◆重さ","")),)
====以下省略=====
というもの。
数式の中にpタグなど文字列を入れています。
また、半角スペースが必要なため’ ’を入れています。
これでセルに数式として入力したところ、「入力した数式にエラーがあります」と出てしまいました。
()の中の文字列は”(ダブルクオーテーションマーク)でいいのですよね?
半角がほしいところだけ、’にしました。そもそも何か記述が間違っていますか?
記述に間違いがあれば指摘していただきたいです。どうかご教授ください。
よろしくお願いします!
No.2ベストアンサー
- 回答日時:
> 半角がほしいところだけ、’にしました
CONCATENETE関数を使うときに文字列(スペースも含む)の場合は、
前後に、二重引用符で括る必要があります。
ですから、引用符で半角スペースを括るのは無意味です。
http://www.kokodane.com/kan19.htm
[関数の引数]ダイアログでCONCATENETE関数を指定して、[文字列]の
ボックスに半角スペースを入れてみれば、どのようになるのかを確認が
できます。
それよりも、質問にあるIF文の整理をしたほうが良いのでは?
例えば、P2セルが空白でない場合に以下の指定をしていますよね。
(if(P2<>"",$AE$2,"")),
(if(P2<>"","<p>","")),
P2,
(if(P2<>"","</p>","")),
(if(P2<>"","<p>",""),
(if(P2<>"","◆長さ","")),
(if(P2<>"","<p>","")),
' ' ,← ここは間違い
P2,
(if(P2<>"","</p>","")),
IF関数では、
=IF([論理式],[真の場合],[論理式][真の場合][偽の場合])
になります。
[論理式]の条件として「P2<>""」の指定式を、幾つも分けている意味は
ないと思います。
[偽の場合]は常に""になるのですから、それも一つにまとめたほうが
分かり易くなります。
[真の場合]は、以下のようにまとめられます。
このようにまとめておけば、P2セルの指定部分と
(分かり易いように、&演算子の前後を開けています)
$AE$2 & "<p>" & P2 & "</p>" & "<p>" & "◆長さ " & P2 & "</p>"
("◆長さ "にすることで、半角スペースも含むようにしています)
これでも助長な書き方なので、もっと整理できます。
$AE$2 & "<p>" & P2 & "</p><p>◆長さ " & P2 & "</p>"
ですから、IF関数を以下のように書くこともできます。
=IF(P2<>"",$AE$2&"<p>"&P2&"</p><p>◆長さ "&P2&"</p>","" )
または
=IF(P2<>"",CONCATENATE($AE$2,"<p>",P2,"</p><p>◆長さ ",P2,"</p>","" )
このようにまとめておけば、P2セルの部分と"◆長さ"のような文字列の
部分を書き換えたものを続けるだけで済みます。
質問にあるようなhtml文章に組み立てる、という数式なら、
=CONCATENATE
(($AB$2,N2,$AD$2,$AC$2,O2,$AC$2,
IF(P2<>"",$AE$2&"<p>"&P2&"</p><p>◆長さ "&P2&"</p>","" ),
IF(Q2<>"","<p>"&Q2&"</p><p>◆軸径 "&Q2&"</p>","" ),
IF(R2<>"","<p>"&R2&"</p><p>◆重さ "&R2&"</p>","" ),
====以下省略=====
のようになります。
IFの前後の括弧は不要なので、外しています。
ありがとうございます!すばらしくきれいな数式です。私ももう少し整理できないかな~と思っていました。知識不足のところをご指摘いただき、本当に感謝です。
No.1
- 回答日時:
こんにちは。
こちらでもやってみました。
まず半角スペースのところは「’ ’」ではなく「” ”」で良いと思います。
あとは簡単に修正したみただけなので望まれている結果になるかが分かりませんが以下の式ですとエラーは出ませんでした。
いかがでしょう?
=CONCATENATE($AB$2,N2,$AD$2,$AC$2,O2,$AC$2,(IF(P2<>"",$AE$2,"")),(IF(P2<>"","<p>","")),P2,(IF(P2<>"","</p>","")),(IF(P2<>"","<p>","")),(IF(P2<>"","◆長さ","")),(IF(P2<>"","<p>",""))," ",P2,
(IF(P2<>"","</p>","")),(IF(Q2<>"","<p>","")),
(IF(Q2<>"","◆軸径","")),(IF(Q2<>"","<p>",""))," ",Q2,
(IF(Q2<>"","</p>","")),(IF(R2<>"","</p>","")),
(IF(R2<>"","<p>","")),(IF(R2<>"","◆重さ","")))
ありがとうございます!そうだったんですね。勉強不足でした。お教えいただいた通りのやりかたで、きちんと機能しました!本当に感謝です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) 関数を最終行までコピー 3 2022/09/04 11:05
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- その他(プログラミング・Web制作) Pythonでの不均一なサイコロをつくるプログラミングがわかりません 4 2022/06/07 13:10
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IFとIFS関数
-
Excelを無料で使うには? パソ...
-
セルの数を求めたい
-
エクセルの数式バーのフォント...
-
Excelの表示についての質問
-
再質問です。マクロの修正箇所...
-
データチェックを行うエクセル...
-
Excelに詳しい方! B列が「日...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelで50個のセルに同じ文字を...
-
Excelの数式について教えてくだ...
-
Excel VBAで全ての矢印を赤色に...
-
エクセル関数を使って
-
祝日と土曜、日曜の合計をカウ...
-
xlsxファイルを保存する際にPDF...
-
Excelについて
-
エクセルVBA、別ブックへ転記す...
-
エクセルで「ページレイアウト...
-
2列に入っているデータを1列...
-
【ExcelVBA】名前を付けて保存→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報