プロが教える店舗&オフィスのセキュリティ対策術

質問があります。

エクセルのA行に

定期点検 (月度検査)
ラジオ修理
ボリューム つまみ 校正
視力検査
ボールペン 発注
替芯 購入
コピー用紙 経費
ポケットティッシュ配布用
   ・
   ・   
   ・ 
とあるのを、B行に下記の用に変換したいのですが、

検査
修理
検査
検査
購入
購入
購入
購入
その他
その他
その他
   ・
   ・   
   ・ 
下記のように関数をつくったのですが、うまく動きません

=IF(A1="","",IF(ISNUMBER(FIND("点検",A1)),"検査",IF(ISNUMBER(FIND("修理",A1)),"修理",IF(ISNUMBER(FIND("校正",A1)),"検査",IF(ISNUMBER(FIND("検査",A1)),"検査",IF(ISNUMBER(FIND("発注",A1)),"購入",IF(ISNUMBER(FIND("購入",A1)),"購入",IF(ISNUMBER(FIND("経費",A1)),"購入,"IF(ISNUMBER(FIND("配布用",A1)),"購入","その他")))))

わかる方がいらっしゃいましたら、どうぞ教えて下さい。

A 回答 (4件)

=IF(OR(ISNUMBER(FIND("検査",A1)),ISNUMBER(FIND("点検",A1)),ISNUMBER(FIND("校正",A1))),"検査",IF(OR(ISNUMBER(FIND("購入",A1)),ISNUMBER(FIND("発注",A1)),ISNUMBER(FIND("経費",A1)),ISNUMBER(FIND("配布用",A1))),"購入",IF(ISNUMBER(FIND("修理",A1)),"修理",IF(A1="","","その他"))))



 或いは、

=IF(COUNTIF(A1,"*検査*")+COUNTIF(A1,"*点検*")+COUNTIF(A1,"*校正*")>0,"検査",IF(COUNTIF(A1,"*購入*")+COUNTIF(A1,"*発注*")+COUNTIF(A1,"*経費*")+COUNTIF(A1,"*配布用*")>0,"購入",IF(COUNTIF(A1,"*修理*")>0,"修理",IF(A1="","","その他"))))
    • good
    • 0
この回答へのお礼

ありがとうございました。
とてもわかりやすかったです。

また、よろしくお願いします。

お礼日時:2011/04/26 21:42

こんばんは!


一例です。

↓の画像のように表示したい項目(黄色いセル)の表を作成しておきます。

そしてB1セルに
=IF(A1="","",IF(OR(ISNUMBER(FIND($D$2:$D$5,A1))),$D$1,IF(OR(ISNUMBER(FIND($E$2:$E$5,A1))),$E$1,IF(OR(ISNUMBER(FIND($F$2:$F$5,A1))),$F$1,"その他"))))
これは配列数式になってしまいますので、この画面からB1セルにコピー&ペーストする場合はB1セルに貼り付け後、数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
これをオートフィルで下へコピーすると画像のような感じになります。

尚、この数式で空白セルを範囲指定してしまうと正確な表示ができませんので、敢えて表内にアスタリクス(まず使用することはないであろう文字)を入れて範囲指定しています。

これは余計なお世話かもしれませんが、アスタリクスの代わりに他の項目を入れれば同じ表示をしてくれます。

以上、参考になれば良いのですが・・・m(__)m
「EXCEL関数について」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございました。
配列数式なんて、はじめて知りました。

また、教えて下さい。よろしくお願いします。

お礼日時:2011/04/26 21:41

要するに、A1の値に


「点検」「校正」「検査」のどれかを含む → 「検査」
「修理」を含む → 「修理」
「発注」「購入」「経費」「配布用」のどれかを含む → 「購入」
上記以外 → 「その他」
(空白の場合は空白を返す)
ということでしょうか。

部分一致しているかどうかの判定は、COUNTIF関数でもできます。

例えば、

=COUNTIF(A1,"*点検*")

とすれば、A1の値に「点検」を含む場合は1、含まない場合は0を返します。

これを応用して

=IF(ISBLANK(A1),"",IF(COUNTIF(A1,"*修理*")<>0,"修理",IF(COUNTIF(A1,"*点検*")+COUNTIF(A1,"*校正*")+COUNTIF(A1,"*検査*")<>0,"検査",IF(COUNTIF(A1,"*発注*")+COUNTIF(A1,"*経費*")+COUNTIF(A1,"*購入*")+COUNTIF(A1,"*配布用*")<>0,"購入","その他"))))

のような式にすれば可能かと思います。

なお、上記の式では優先順位が「修理」「検査」「購入」となりますので
例えばA1に「修理」と「経費」の両方が含まれている場合は「修理」を返します。
この順番を変えたい場合は、IFの入れ子の順番を変えてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
IF関数についての知識が増えました。

また、よろしくお願いします!

お礼日時:2011/04/26 21:38

方法1:IF(IF(方式。

ただし重ねられる数に限界有り
=IF(A1="","",IF(OR(ISNUMBER(FIND({"点検","検査","校正"},A1))),"検査",IF(OR(ISNUMBER(FIND({"修理","調整"},A1))),"修理",IF(OR(ISNUMBER(FIND({"発注","購入","経費","配布"},A1))),"購入","その他"))))


方法2:IF(IFで重ねきれないほどカテゴリが増えた場合で,「その他」のキーワードがちゃんと定義できる場合
=IF(OR(ISNUMBER(FIND({"点検","検査","校正"},A1))),"検査","") & IF(OR(ISNUMBER(FIND({"修理","調整"},A1))),"修理","") & IF(OR(ISNUMBER(FIND({"発注","購入","経費","配布"},A1))),"購入","") & IF(OR(ISNUMBER(FIND({"その他","に該当する","キーワード"},A1))),"その他","")


方法3:IF(IF(で重ねきれないほどカテゴリが増え,さらに「その他」のキーワードも調べたくない場合
=IF(OR(ISNUMBER(FIND({"点検","検査","校正"},A1))),"検査","") & IF(OR(ISNUMBER(FIND({"修理","調整"},A1))),"修理","") & IF(OR(ISNUMBER(FIND({"発注","購入","経費","配布"},A1))),"購入","") & IF(OR(A1="",ISNUMBER(FIND({"点検","検査","校正","修理","調整","発注","購入","経費","配布"},A1))),"","その他")
    • good
    • 0
この回答へのお礼

ありがとうございました。
とても参考になりました。

また、よろしくお願いします!

お礼日時:2011/04/26 21:37

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