プロが教えるわが家の防犯対策術!

エクセルのIF関数式を教えてください。
例えば、F2、G2、H2、I2のうち、それぞれに、Xを入力した場合、Xを入れたところだけ拾ってきて、それがF2とH2にXが入っているば場合、E2に、”AA/CC”と拾ってきたところを”/”(スラッシュ)でつなげて表示したいのですが、どうすればいいでしょうか。=IF(F2="X","AA) これだとF2にXが入っているときにE2に”AA”と表示されますが、これが複数の場合、”/”でつなげて表示がしたいです。お願いします。

A 回答 (3件)

一番シンプル:


=SUBSTITUTE(TRIM(IF(F2="X","FF ","") & IF(G2="X","GG ","") & IF(H2="X","HH ","") & IF(I2="X","II ",""))," ","/")


#まぁ使える関数は幾つかありますが,どうやっても似たり寄ったりの手口になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。これが一番シンプルな方法でうまくいきました。本当に助かりました。

お礼日時:2011/12/09 22:43

う~ん、美しくないけどこんな感じかなぁ



=IF(COUNTA(F2:I2)=0,"",SUBSTITUTE(IF(F2="×","AA/","")&IF(G2="×","BB/","")&IF(H2="×","CC/","")&IF(I2="×","DD","/"),"//",""))
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。

お礼日時:2011/12/09 22:44

こんばんは!


関数でやろうとすると、何列かの作業用の列が必要になってくると思います。

そこでお望みの方法ではないかもしれませんが、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
「エクセルのIF関数式について」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。実際の画面までつけていただき大変恐縮です。

お礼日時:2011/12/09 22:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!