![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。いつもお世話になります。
こちらで質問をしながらなんとか出来上がりそうなところまで来たエクセルのシートなのですが、
最後の最後でエラーが出て困っています。
ネットショップの商品登録用に、社独自の商品管理シートから、即座に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ランキング
-
Excel関数-文字列で自動作成さ...
-
エクセルの関数について教えて...
-
Excelデータをコピペして、ペー...
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
Excelで50個のセルに同じ文字を...
-
スプレッドシート、Excelでの数...
-
Microsoft Officeの中古は信用...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシートで使う数式を...
-
エクセルでの特別な文字を上に...
-
エクセル日付 文字列の関数がエ...
-
A列とB列を参照してC列に連番を...
-
エクセルVBA、別ブックへ転記す...
-
各ページの1番上の表示について
-
エクセルでセルに標準で入力さ...
-
EXCELの質問です 119から足した...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
【マクロ】アクティブセルにブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報