- ベストアンサー
ifで10個以上の条件判断がしたい
winXPでエクセル2002です。 たとえばA1のセルに "あ"と入力したら"AAA"を、 "い"と入力したら"BBB"を、 "う"と入力したら"CCC"を、 "え"と入力したら"DDD"を、 "お"と入力したら"EEE"を、 "か"と入力したら"FFF"を、 "き"と入力したら"GGG"を、 "く"と入力したら"HHH"を、 "け"と入力したら"III"を、 "こ"と入力したら"JJJ"を、 "さ"と入力したら"KKK"を、 "し"と入力したら"LLL"を、A2のセルに表示をさせたいのです。 判断に使うセルは一箇所だけです。 ifをつかって =if(a1="あ","AAA",if(a1= ・・・ と書いていくと11個目のifを使ったときにエラーが出てしまいます。 どうやったら10個以上の場合の条件判断ができるのでしょうか よろしくお願いします。
- muushuke
- お礼率57% (82/142)
- オフィス系ソフト
- 回答数5
- ありがとう数4
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
if文でという条件なのでしょうか? 関数VLOOKUPを使用するか? マクロとしてif文にするか? マクロなら、if文よりもSelect Case文ですね。
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7418/18948)
>書いていくと11個目のifを使ったときにエラーが出てしまいます。 IFのネストは数に制限があります。入力の内容にもよりますが VLOOKUP,HLOOKUP,LOOKUP,CHOOSE等が使えます。 1例 =CHOOSE(FIND(A1,"あいうえおかきくけこさし"&A1,"AAA","BBB","CCC"...,"LLL","") =LOOKUP(A1,{"あ","い","う"...,"し"},{"AAA","BBB","CCC"...,"LLL"})
お礼
ありがとうございます。 いろいろな方法があるんですね。
- Dxak
- ベストアンサー率34% (510/1465)
#3です すみません。間違いがあります > =MID("AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL",(SEARCH("あいうえおかきくけこさし",a1,1)-1)*3+1,3) =MID("AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL",(SEARCH(a1,"あいうえおかきくけこさし",1)-1)*3+1,3) です
お礼
ありがとうございます。 いろいろな方法があるんですね
- Dxak
- ベストアンサー率34% (510/1465)
お勧めとしてはLookup関数系を使用することだと思います。 上記の通りだけだとすると =MID("AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLL",(SEARCH("あいうえおかきくけこさし",a1,1)-1)*3+1,3) でも実現可能です。
- x1va
- ベストアンサー率26% (802/3006)
そういう場合はVLOOKUP関数を使うべきです。 http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html
お礼
ありがとうございます。 今回は別なセルやシートは使えないのです。。。 言葉足らずですみません。
関連するQ&A
- EXCEL VBA split関数について
Excel VBA初心者です。 split関数についてどなたか教えていただけないでしょうか。 aaa,bbb,ccc,eee fff,ggg,hhh,iii jjj,kkk,lll,mmm というデータがあるとして、そこから aaa bbb fff ggg jjj kkk これだけ(左から2個分)を抜き取りたいのですが可能でしょうか? カテ違いな質問でしたらスミマセン。
- ベストアンサー
- オフィス系ソフト
- C言語による「テキストファイルの読み書き(fprintf)」について
C言語による「テキストファイルの読み書き(fprintf)」について質問です ずぶの初心者ですが、既知のファイルの1行目に指定した文字列を付加させるプログラムを作りたいと思っています。 以下のように作りました。 ------------------------------------------------------------ #include <stdio.h> int main(void) { FILE *fp; fp = fopen("test.csv","r+"); fprintf(fp,"コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56\n"); fclose(fp); return 0; } ------------------------------------------------------------ このとき「test.csv」の内容が以下のようであったとします。(容量は1MBくらいです。) 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj この状態でプログラムをコンパイルして実行すると、「test.csv」の内容が以下のようになってしまいます。(一行目が消える) AAA,BBB,CCC,DDD,EEE 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj またcsvの行が増える度に妙な挙動になっていきます・・・(一行あいたり、先頭行が5行ほど消えたり) 希望する動作としては コントロールカラム1,コントロールカラム2,・・・(略)・・・,コントロールカラム56 001,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj 002,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj ~(略) 5000,aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj のようになるようにしたいのですがどのようにすればよいのでしょうか。 よろしくお願いします。 (使用ソフト:Borland C++ Compiler, Cpad) 参考にしたサイトの項目:http://homepage3.nifty.com/mmgames/c_guide/17-01.html
- ベストアンサー
- C・C++・C#
- sedで文字列の抜き出し
ある一部分の文字列を抜き出したく、sedを使用したいと思って試行錯誤しております。 ↓あるファイル内の文字列 aaa bbb=ccc:ddd=eee:fff=ggg: aaa bbb=hhh:ddd=iii:fff=jjj: ※aaaとbbbの間はスペースです。 ※bbb,ddd,fffはある一定のキーワードです。 ※ccc,eee,ggg,hhh,iii,jjjはバラバラの文字列で長さも一定ではありません。 【質問】 上記の文字列の中でddd=の後の文字列(eee,iii)のみを抜き出したいです。 以下のようなsedを試してみましたが、 eee:fff=ggg iii:fff=jjj が抜き出されてしまいます。 sed 's/.*:ddd=\(.*\):\(.*\)$/\1/' 恐れ入りますが、皆様の知恵をお貸し下さい。
- ベストアンサー
- その他(プログラミング・開発)
- VBAで特定の値がある行を連続コピーしたい
Excel 2003 OS XP Professional SP3 VBAは自分でコードは組むことはできませんので見よう見まねでやっているレベルです。 A B C D E の列があり、行の1行目はタイトル行になっています。 A B C D E *** *** *** *** *** ’ AAA BBB CCC DDD 111 222 333 ' EEE FFF GGG HHH ' III JJJ KKK LLL 444 555 ' MMM NNN OOO PPP A列にカンマがある行にはB~E列に値が入力されていて、A列にカンマ以外の値が入力されている 場合にはB~Eには何も入力されていません。 A列にカンマ以外の値の時、カンマのある行のデータを次のカンマのある行までフィルハンドルをドラッグしてコピーするよう にしたいです。 A B C D E *** *** *** *** *** ’ AAA BBB CCC DDD 111 AAA BBB CCC DDD 222 AAA BBB CCC DDD 333 AAA BBB CCC DDD ' EEE FFF GGG HHH ' III JJJ KKK LLL 444 III JJJ KKK LLL 555 III JJJ KKK LLL ' MMM NNN OOO PPP sub 連続コピー() Dim r As Long Dim n As Long r = 2 n = r + 1 Do While Worksheets("sheet1").Cells(r, 1) <> "" If Worksheets("sheet1").Cells(r, 1).Value = Worksheets("sheet1").Cells(n, 1).Value Then r = n n = n + 1 Else Range(Cells(r, 2), Cells(r, 5)).Copy Range(Cells(n, 2), Cells(n, 5)) n = n + 1 End If Loop End Sub 自分なりに考えてみましたが、ぜんぜん動きません。 どなたかご教授をお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロについて
エクセル97のマクロについて教えてください。 下のようなエクセルシートがあると仮定します。 このシート全体を選択して用意してあるボタンを押すと、マクロが流れるようにします。 マクロの中身は、項目1~4の値が同じであれば、同じデータを一つにするというものを考えています。 たとえば下の例の場合、追番でいえば2と4のデータは同じなので、マクロ処理にかけると、追番の大きい4のデータは消え、2のデータの"200"項目にフラグ1が追加されるようにしたいのです。 項目の値が同じであれば、いくつでもデータを統一したいと考えています。 ================ エクセル シート例 ================================== 追番_項目1_項目2_項目3_項目4_100_200_300_400 ← 見出し ----------------------------------------------------------------- 1****AAA****BBB****CCC****DDD****1*********1****1**** 2****EEE****FFF****CCC****GGG****1**************1**** 3****HHH****FFF****KKK****JJJ****1****1****1********* 4****EEE****FFF****CCC****GGG****1****1*********1**** ↓ マクロ処理後 追番_項目1_項目2_項目3_項目4_100_200_300_400 ← 見出し ----------------------------------------------------------------- 1****AAA****BBB****CCC****DDD****1*********1****1**** 2****EEE****FFF****CCC****GGG****1****1*********1**** 3****HHH****FFF****KKK****JJJ****1****1****1********* =================================================================== 注:見出しの_とデータの中の*は空白を生めるためのもので、データとはまったく 関係ありません。 なにぶんエクセルVBAは初心者同然なもので... よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- Excelで同一のデータを抽出して横並びに
A B C D 商品コード 注文数 商品コード 注文数 aaa 15 ccc 4 bbb 12 ddd 6 ccc 10 aaa 22 ddd 6 eee 10 eee 5 bbb 7 fff 8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A B C D 商品コード 注文数 商品コード 注文数 aaa 15 aaa 22 bbb 12 bbb 7 ccc 10 ccc 4 ddd 6 ddd 6 eee 5 eee 10 fff 8 kkk 7 kkk 9 lll 4 宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- VBAでCSV内にある改行を取る方法
あるシステムが吐くcsvファイルの項目の中に改行が入っているものがあります。 例) 01,aaa,bbb(改行)bbb,ccc(改行) 02,ddd,eee,fff(改行) 03,ggg(改行)ggg,hhh,iii(改行) このCSVファイルをエクセルのマクロで読み込んでシートに展開したい のですが、項目中にある改行で別レコードを認識してしまいます。 結果) A B C D ---+---+---+--- 01 aaa bbb bbb ccc 02 ddd eee fff 03 ggg ggg hhh iii これを以下のようにしたいのですが・・・ A B C D ---+------+------+---- 01 aaa bbbbbb ccc 02 ddd eee fff 03 gggggg hhh iii どうやればよいでしょうか? ご教授お願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excel2000 データの振り分けと配列変換について
シート1にデータを一気に入力してあります。 第1段階、所属ごとに所属1は所属1のシート、所属2は所属2のシートというようにシートに振り分けをしたい。 第2段階、振り分け後データごとに2列になるように印刷をしたい。 この様に入力されているデータを A B C D 番号 名前 所属 1 AAA 1 2 BBB 2 3 CCC 1 4 DDD 3 5 EEE 4 6 FFF 5 7 GGG 6 8 HHH 3 9 III 4 10 JJJ 6 ・ ・ ・ 所属ごとにシートに振り分けて、2列 任意の単位で(この場合では、5単位ごと)になるように印刷したい。 所属1のシート 番号 名前 所属 番号 名前 所属 1 AAA 1 6 FFF 1 2 BBB 1 7 GGG 1 3 CCC 1 8 HHH 1 4 DDD 1 9 III 1 5 EEE 1 10 JJJ 1 技が無いため、切り張りしていますが、なにか良い方法がありましたら教えてください。
- 締切済み
- オフィス系ソフト
- SQL文を教えてください
いつもお世話になっております。 ウェブサイトを作っているのですが、以下のようなデータを表示するのに良いSQL文が分からず悩んでいます。 ID | DATE | DATA --+----------+----- 1 | 2010-11-11 | aaa 2 | 2010-11-11 | bbb 1 | 2010-11-10 | ccc 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 4 | 2010-11-10 | fff 1 | 2010-11-12 | ggg 2 | 2010-11-12 | hhh 1 | 2010-11-12 | iii 3 | 2010-11-12 | jjj 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 1 | 2010-11-06 | qqq 3 | 2010-11-05 | rrr 2 | 2010-11-13 | sss 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy 11| 2010-10-30 | zzz 上のようなテーブルから、各IDを10件まで日付順に取り出すことはできるでしょうか? 具体的には、1つのページに以下のように表示したいのです。 2 | 2010-11-13 | sss 2 | 2010-11-11 | bbb 1 | 2010-11-12 | ggg 1 | 2010-11-11 | aaa 1 | 2010-11-10 | ccc 1 | 2010-11-12 | iii 1 | 2010-11-09 | kkk 1 | 2010-11-09 | lll 1 | 2010-11-08 | mmm 1 | 2010-11-08 | nnn 1 | 2010-11-07 | ooo 1 | 2010-11-07 | ppp 3 | 2010-11-12 | ddd 3 | 2010-11-11 | eee 3 | 2010-11-05 | rrr 4 | 2010-11-10 | fff 5 | 2010-11-08 | ttt 6 | 2010-11-05 | uuu 7 | 2010-11-04 | vvv 8 | 2010-11-03 | www 9 | 2010-11-02 | xxx 10| 2010-11-01 | yyy ・各IDのうち、最も新しい日付のものが上にくる ・表示するIDは10件まで ・表示はIDごとにまとめて行う ・一つのIDに属するデータは10件までしか取り出さない 上記のことを実現する方法をご教授ください。 よろしくお願い致します。
- ベストアンサー
- MySQL
- Excelで、自動でデータのナンバー付けをしたい
エクセルで、商品管理をしているのですが、以下のようなエクセルファイルのデータをフィルタ後(件数が0より多いものでフィルタをかけた後)、項目のナンバーを再び1から順につけていきたいと思っています。 ------------------エクセルファイル------------------ 項目 商品名 商品ID 単価 件数 金額 1 AAA BBB ¥2,000 1 ¥2,000 2 CCC DDD ¥1,200 19 ¥22,800 3 EEE FFF ¥1,000 0 ¥0 4 GGG HHH ¥1,000 3 ¥3,000 5 III JJJ ¥500 0 ¥0 6 KKK LLL ¥400 2 ¥800 小計 ¥28,600 --------------------------------------------------- 上記のファイルを、件数が0より多いものでフィルタをかける。 つまり、エクセルファイルは、以下のようになります。 ------------------エクセルファイル------------------ 項目 商品名 商品ID 単価 件数 金額 1 AAA BBB ¥2,000 1 ¥2,000 2 CCC DDD ¥1,200 19 ¥22,800 4 GGG HHH ¥1,000 3 ¥3,000 6 KKK LLL ¥400 2 ¥800 小計 ¥28,600 --------------------------------------------------- この場合、項目のナンバーが1、2、4、6、という順番になっているので、 これを1、2、3、4、という順番に置き換えていきたいと思っています。 データ数が少なければ手動でやっても良いのですが、 データ数が膨大な量になるので、これを自動で出来るようにしたいと思っています。 VBAで挑戦を試みましたが、なかなか上手くいきませんでした。 何か上手くできる方法はございませんか? どなたかご教授をお願いします。
- ベストアンサー
- その他MS Office製品
お礼
ありがとうございます。 マクロをちょっといじってみたら、できそうです!