

| [HOME] | [MAIL] |
|
A B C D E F ┌───┬───┬───┬───┬───┬───┐ 1│ │ あ │ い │ う │ え │ お │ ├───┼───┼───┼───┼───┼───┤ 2│(1)│ 23│ 34│ 24│ 12│ 13│ ├───┼───┼───┼───┼───┼───┤ 3│(2)│ 13│124│ 23│ 1│145│ ├───┼───┼───┼───┼───┼───┤ 4│(3)│ 4│356│ 24│124│ 25│ └───┴───┴───┴───┴───┴───┘23とはアンケートの選択肢の2と3を選択したことを意味します。 ここで,質問なのですが,2項目,即ち(1)の質問で2を(3)の質問で4を選択した人の人数を既存関数を使って集計したいのですが,方法を教えて頂ければ嬉しいです。 また,3項目についても,応用できればと思っています。 よろしくお願いします。 ??????????????????????? A: 兵庫yuhkiです。 かなり長い数式になりますが、以下の方法はいかがでしょうか? 1)先ず、文字の長さをLEN(B2)で取得します。 2)対象セルに対象文字(質問1の場合は、「2」)が含まれているかどうかを知るために対象文字を空白に置き換えます。 =SUBSTITUTE(B2,"2","") 3)含まれている場合、文字数が変化します(B2の場合、「23」→「3」)ので、以下の式で判定します。 LEN(B2)-SUBSTITUTE(B2,"2","")>0 4)これを各列ごとに判定して、真であれば1、偽であれば0として加えていけば良いのですが、1つ1つ判定するのは面倒なので、配列数式を利用します。 集計をB5セルで行うとして、以下の式を入力します。 =SUM(IF(((LEN(B2:F2)-LEN(SUBSTITUTE(B2:F2,"2","")))>0)*((LEN(B4:F4)-LEN(SUBSTITUTE(B4:F4,"3","")))>0),1,0)) で、ENTERキーではなく、SHIFTキー+CTRLキー+ENTERキーで確定します。 すると、式が{}で括られ、配列として計算してくれます。 配列として計算するとは、以下のような計算を内部で行うという意味です。 IF(((LEN(B2)-LEN(SUBSTITUTE(B2,"2","")))>0)*((LEN(B4)-LEN(SUBSTITUTE(B4,"3","")))>0),1,0) IF(((LEN(C2)-LEN(SUBSTITUTE(C2,"2","")))>0)*((LEN(C4)-LEN(SUBSTITUTE(C4,"3","")))>0),1,0) IF(((LEN(D2)-LEN(SUBSTITUTE(D2,"2","")))>0)*((LEN(D4)-LEN(SUBSTITUTE(D4,"3","")))>0),1,0) ・ ・ ここで2つの条件式を「*」で掛け合わせています。 これは何をしているかというと、2つの条件が両方とも真(TRUE)であるときに真の結果(1)を返すということをしています。 どういうことかというと、EXCELでは、TRUEは1、FALSEは0となりますので、条件式が両方ともTRUEだとTRUE*TRUE=1*1=1となります。 その他の場合は、必ずFALSEが入りますので、結果は0となります。 これで2つの条件を同時に満たしているかどうかがわかることになります。 もし、3項目とも判定したいという場合は、条件式に、 ((LEN(B3:F3)-LEN(SUBSTITUTE(B3:F3,"(判定したい選択肢)","")))>0) をさらに掛け合わせてください。 上手くいくと良いですね。 ではでは。 [質問一覧]/[HOME] CEL298.曜日を表示したいのですが・・・ Q:(質問者:愛知pusraszさん) Excel2000を使用しています。 毎日ではないのですが、日記をExcelでつけています。 毎日だったら、曜日をコピーすればいいのですが、ランダムに日記をつけているので、日付を入力後、となりのセルに都度、曜日を入力しています。 日付を入力すると、となりのセルに自動的に曜日を示す方法はあるのでしょうか? 日付は、2002/5/12のような書式を選んでいます。 ご教示いただきたく、よろしくお願いいたします。 ??????????????????????? A: 愛知pusraszさん、おはようございます。兵庫TERUです。 例えばB列に日付を入力し、C列に曜日を出力するとします。 =CHOOSE(WEEKDAY(B列,1),"日","月","火","水","木","金","土") ★☆ 式の説明 ☆★ =CHOOSE(インデックス,値1,値2,値3,・・・・・・,値29) インデックス 引数リストの何番目の値を選択するかを指定します。 インデックス には、1 〜 29 までの数値、又は 1 〜 29 までの数値を返す数式またはセル参照を指定してください。 ・インデックス が 1 であれば 値1 が返され、2 であれば 値2 が返されます。 ・インデックス が 1 より小さいか、引数リストの値の個数よりも多い場合、エラー値 #VALUE! が返されます。 ・インデックス に小数点以下の値が含まれていても、整数部分だけが計算に使われます。 =WEEKDAY(シリアル値, 種類) シリアル値 検索する日付のシリアル値を指定します。 ここで言いますと、日付の入ったセル番号、もしくは日付そのものを入力する事も出来ます。 その時は、"1998/01/30" や "1/30/1998"の様にダブルクォーテーション (") で囲まれた文字列で入力可能。 種類 戻り値の種類を数値で指定します。 種類 戻り値 1or省略可能 1 (日曜) 〜 7 (土曜) の範囲の整数。 2 1 (月曜) 〜 7 (日曜) の範囲の整数。 3 0 (月曜) 〜 6 (日曜) の範囲の整数。 蛇足ですがこの様な仕方もあります。 日付を入力したセルの書式を変更する。 【書式】→【セル】→『表示形式タブ』の〔分類:日付〕の〔種類:1997/3/4〕を〔分類:ユーザー定義〕に変更し、〔種類:yyyy/m/d"("aaa")"〕を入力すると、日付を 2002/5/12 入力すると自動的に 2002/5/12(日)に替わります。 [質問一覧]/[HOME] CEL299.Sheetに於ける入力データの共有 Q:(質問者:東京endoさん) OS:Windows2000 Excel2000のユーザーです。 ExcelにてSheet1に請求書のフォームを作成し、同一ファイル上のSheet2に納品書を請求書と同一のフォーム(マクロも含む)で作成したとします。 この場合、Sheet1の請求書で入力した項目(テキスト)及びマクロ(四則演算)の結果をそのままsheet2の納品書に自動的に反映することが可能でしょうか。 宜しくお願いします。 ??????????????????????? A: 東京endoさん、おはようございます。兵庫TERUです。 同じフォームを使っておられるなら、納品書の出力したい項目の所に請求書を同じセルの内容を表示させれば、いいのではないでしょうか? 例)Sheet1の【セルB4】の内容をSheet2の【セルB4】に表示したい場合 Sheet2の【セルB4】に次の式を入力します。 =Sheet1!B4 するとSheet1の【セルB4】の内容がSheet2の【セルB4】に表示に表示されます。 [質問一覧]/[HOME] CEL300.数式を記憶 Q:(質問者:愛知o-sanさん) エラー表示を見えなくするif関数とiserror関数を使った式がありますが複数の箇所に入れるため大変手間です。 それで式を登録して使いたい時に使う方法がありましたらお教え下さい。 宜しくお願いします。 ??????????????????????? A: 兵庫yuhkiです。 以下の方法はいかがでしょうか? 1.入力したいセルを最初に選択する。 1)数式を入力したいセルをCTRLキーを押しながら選択。 2)数式を入力。 3)CTRLキー+ENTERキーで確定。 選択したセル全てに同じ式が入力されます。 数式の内容が違う場合は、この後内容を変更しないといけませんが・・・。 2.IMEで単語登録を行う。 1)IMEツールバーから[単語登録]を選択。 2)「読み」にわかりやすい読み(例えば、すうしき1とか)を入力。 3)「語句」に数式(例えば、=IF(ISERROR(・・・))を入力。 4)「登録」をクリック。 セルに「すうしき1」と入力して変換すると上式が入力されます。 こんなのでご希望に合ってます? ではでは。 [質問一覧]/[HOME] |
| [HOME] | [MAIL] |