- ベストアンサー
エクセルのIF関数式について
エクセルのIF関数式を教えてください。 例えば、F2、G2、H2、I2のうち、それぞれに、Xを入力した場合、Xを入れたところだけ拾ってきて、それがF2とH2にXが入っているば場合、E2に、”AA/CC”と拾ってきたところを”/”(スラッシュ)でつなげて表示したいのですが、どうすればいいでしょうか。=IF(F2="X","AA) これだとF2にXが入っているときにE2に”AA”と表示されますが、これが複数の場合、”/”でつなげて表示がしたいです。お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一番シンプル: =SUBSTITUTE(TRIM(IF(F2="X","FF ","") & IF(G2="X","GG ","") & IF(H2="X","HH ","") & IF(I2="X","II ",""))," ","/") #まぁ使える関数は幾つかありますが,どうやっても似たり寄ったりの手口になります。
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
う~ん、美しくないけどこんな感じかなぁ =IF(COUNTA(F2:I2)=0,"",SUBSTITUTE(IF(F2="×","AA/","")&IF(G2="×","BB/","")&IF(H2="×","CC/","")&IF(I2="×","DD","/"),"//",""))
お礼
早速のアドバイスありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 関数でやろうとすると、何列かの作業用の列が必要になってくると思います。 そこでお望みの方法ではないかもしれませんが、VBAでの一例です。 セル配置は↓の画像のようになっているとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 ※ 表内の「X」はエックスの大文字にしています。(×「バツ」ではありません) (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Dim str As String On Error Resume Next For i = 2 To UsedRange.Rows.Count str = "" For j = 6 To 9 If Cells(i, j) = "X" Then '←「X」はエックスの大文字にしています。 str = str & Cells(1, j) & "/" End If Next j Cells(i, 5) = Left(str, Len(str) - 1) Next i Columns(5).AutoFit End Sub 'この行まで こんな感じではどうでしょうか? ※ 他に良い方法があればごめんなさいね。m(_ _)m
お礼
ありがとうございます。実際の画面までつけていただき大変恐縮です。
お礼
ありがとうございます。これが一番シンプルな方法でうまくいきました。本当に助かりました。