Excel総合相談所 68at BSOFT
Excel総合相談所 68 - 暇つぶし2ch1:名無しさん@そうだ選挙にいこう
08/05/07 23:40:05
Excelに関する質問は、ここで!

▼━ 質問のしかた ━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
   OSやExcelのバージョン、VBAの可否など(下記テンプレ1~4の情報)は必須情報。

▼━質問テンプレ (出来れば使ってね) ━━━━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード

※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
  VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。

※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
  まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
  URLリンク(www.google.co.jp)

前スレ
Excel総合相談所 67
スレリンク(bsoft板)

2:名無しさん@そうだ選挙にいこう
08/05/07 23:40:42
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。

3:名無しさん@そうだ選挙にいこう
08/05/07 23:41:03
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

4:名無しさん@そうだ選挙にいこう
08/05/07 23:41:25
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)

5:名無しさん@そうだ選挙にいこう
08/05/07 23:41:55
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  ~~
  ||

6:名無しさん@そうだ選挙にいこう
08/05/07 23:42:56
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

7:名無しさん@そうだ選挙にいこう
08/05/07 23:44:05
   ________________________________
   ||
   || ━ 質問のしかた ━
   || 
   || ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
   || ★2 要望は具体例や図を使って明確かつ具体的にしる。
   || ★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
   || ★4 質問テンプレ(雛形)は必須ではないが、
   ||    OSやExcelのバージョン、VBAの可否などは必須情報。
   || 
   ||            ∧ ∧   。
   ||          ( ,,゚Д゚)/ ジュウヨウ!!      E[]ヨ  
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ  つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                /  ̄ ̄ ̄ ./| ________________
                | ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
                        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \    は~~~~い      /
    ∧ ∧    ∧,,∧   ∧ ∧
    ( ,, ∧▲  ミ  ∧ ∧ (  ∧ ∧
  ~(_(  ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
    @(_(,,・∀・)@ (   *)~ミ_ (   ,,)
      @(___ノ ~(___ノ    ~(___ノ


8:名無しさん@そうだ選挙にいこう
08/05/07 23:49:15
エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。

【質問不可】Excel総合相談所スレの雑談・議論スレ2
スレリンク(bsoft板)


9:名無しさん@そうだ選挙にいこう
08/05/07 23:50:34
次スレ立ってなかったから立てようと思ったらw
>>1

10:名無しさん@そうだ選挙にいこう
08/05/07 23:56:27
【1 OSの種類         .】 WindowsXpHomeSP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

こんなの↓(A列とB列。100行程度)

4/12 | 山田
4/20 | 佐藤
4/8 | 鈴木
4/21 | 佐藤
4/7 | 山田
4/25 | 佐藤
4/8 | 佐藤

から、こんなの↓(C列とD列)

山田 | 4/7,4/12
佐藤 | 4/8,4/20,4/21,4/25
鈴木 | 4/8

を作りたいのですけ、どどうすればいいでしょう?

D列に関数を入れておいて、C列に「山田」と
入れると「4/7,4/12」が出てきてほしい。
「4/12,4/7」になっちゃってもいいです。
D列に出てくる日付の数は、無制限だと嬉しいけど、
10個もあれば実用上問題ないです。

11:名無しさん@そうだ選挙にいこう
08/05/08 01:05:02
【1 OSの種類         .】 Windows*XP Home
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 excel 軸ラベル 表示されない

URLリンク(support.microsoft.com)

グラフのy軸の軸ラベルの末尾が切れて表示されます
文字が長すぎると思い、全角3文字にしても切れたままでした
上記のリンク先の通り、解像度を4:3のものにしても改善されません
(使用しているノートのディスプレイの本来の解像度は16:10です)
考えられる改善策を教えていただけませんか?

12:名無しさん@そうだ選挙にいこう
08/05/08 06:39:39
>>10
名前でソートする方が実用的だと思うけどな。


13:名無しさん@そうだ選挙にいこう
08/05/08 07:38:54
>>11
グラフを移動させてみるか、軸の書式設定を変えてみるか・・

14:10
08/05/08 07:57:23
>>12
今は名前でソートしたあとメモ帳にコピペして
指定の書き方に直してる。
たまに間違えて怒られちゃうの。

15:名無しさん@そうだ選挙にいこう
08/05/08 08:21:31
>>14
普通の機能だけだと完全自動化は難しいと思う。
ピボットで名前×日付の集計表に直してから、IFとか&とかで整形する方法くらしか思いつかない。
こういうのやりたかったらVBAが向いてるんじゃないかな。


16:15
08/05/08 08:29:22
ちなみにピボットテーブルでやる方法
1.名前×日付の集計表に直す。
2.集計表の右隣にIF関数で「集計値がある時は日付,ないときは""」として集計表と同じサイズの表を作る。
3.新しく作った表を&でつないでできあがり。

17:名無しさん@そうだ選挙にいこう
08/05/08 09:35:52
VBA不可なのでとりあえずピボットテーブルでやってみた。
サンプルは集計できる範囲が10日間の簡易版だから、1ヶ月分ぐらいいっぺんに集計したいなら、
式をもっと長くする必要がある。
どう考えてもVBA使った方がすっきりできる。

スクショ
URLリンク(www.07ch.net)

ブック本体
URLリンク(www.07ch.net)

18:名無しさん@そうだ選挙にいこう
08/05/08 10:17:06
集計をピボットでやってから文字列の連結をVBAで関数作ってやるのが一番手間が少ない。
適材適所で組み合わせて省力化することを考えないから厨って言われちゃうんだよ。

19:名無しさん@そうだ選挙にいこう
08/05/08 10:49:01
>>15
どこぞのDQNどもは数式でやっちゃうかも。
ひどいのになると配列数式でやるからね。

20:名無しさん@そうだ選挙にいこう
08/05/08 12:57:24
へー
配列数式を書けないようなDQNは配列数式が書ける奴のことをDQNとか
言っちゃうんだw

何でもかんでも配列数式で片付ける奴もアレだが、VBA回答否の
質問者にとってVBA以外の回答を出せない奴ほど役に立たない奴はいない。
分からなきゃ黙ってろw

それとこの反論は>>8で受け付けるぜ!

21:名無しさん@そうだ選挙にいこう
08/05/08 13:49:13
配列数式ぐらい書けるやつゾロゾロいるだろ?
みんな馬鹿らしいから書かないだけ。
特にSMALLとROWを使った式なんて超恥ずかしいもんね。

22:名無しさん@そうだ選挙にいこう
08/05/08 14:00:44
>>20
配列数式での解答を書けばいいじゃない。他人が何を言おうと自信もてばいいよ。
私は普段ピボットテーブルがいいぞと主張しているんだけど、それはもうすごい叩かれかたですよ。
ちなみに今回は>>12>>15>>16を書きました。

23:名無しさん@そうだ選挙にいこう
08/05/08 14:13:56
>>22
あれは覚えたてのやつが面白くて仕方がなくて書くだけだろ?
分かってるやつは馬鹿らしいから普通書かないよ。
普通はある程度で卒業するものなんだが、中には死ぬまでやめないやつもいる。
サルがナニを覚えると死ぬまでやめないとか言うからなぁ。

24:名無しさん@そうだ選挙にいこう
08/05/08 14:25:40
>>23
具体的な解法を書けない奴が吠えるなよw

25:名無しさん@そうだ選挙にいこう
08/05/08 14:26:28
もっとカジュアルに使えばいいのに
そんな大層な物でもあるまいしアホくさ

26:名無しさん@そうだ選挙にいこう
08/05/08 14:28:57
前スレ966ありがとうございました

27:名無しさん@そうだ選挙にいこう
08/05/08 14:29:34
間違えた前スレ969でした

28:名無しさん@そうだ選挙にいこう
08/05/08 14:34:39
>>23
X  サルがナニ
○  サルがズリズリ

29:名無しさん@そうだ選挙にいこう
08/05/08 15:26:37
以下のように、
A列=日付、B列以降にデータが入っています。
A      B      C
2000/1/1 **********
2000/1/2 ********
2000/1/2 **********
2000/1/3 ***
2000/1/3 *****
2000/1/4 *********
2000/1/4 *******
今日が1/4とするならば、
2000/1/4 *********
2000/1/4 *******
のように
オートフィルタでA列の今日の日付を選択抽出するVBAコードを
教えて頂けないでしょうか?

30:名無しさん@そうだ選挙にいこう
08/05/08 16:25:21
>>21
確かにぞろぞろいるね。
でも、君は書けないんでしょ?
書けない香具師は黙っとけ

31:名無しさん@そうだ選挙にいこう
08/05/08 18:53:11
>>30
難しいことは長所ではありません。


32:名無しさん@そうだ選挙にいこう
08/05/08 19:12:16
>>30
かわいそうな人だねまったく。
書こうと思えば書けるから馬鹿にしてんのよ。
でもプライドがある人はあぁいう不細工な式は書かないよ。
お前はプライドなさそうだから書けば?


33:名無しさん@そうだ選挙にいこう
08/05/08 19:18:16
>>30
ピボットテーブルは誰でも簡単に使えるのが魅力です。そんな私は配列数式には魅力を感じません。
配列数式でなければ実現できないことがあれば別ですが。

34:名無しさん@そうだ選挙にいこう
08/05/08 19:27:23
>>32
不細工な式ってどういう式よ。
配列数式を縦に横にフィルコピーか?
だとしたら、そんなことするやつは終わってるわな。
>>31が言わんとするように簡単がいちばんだから、まともな人はまずソートするね。
言っとくけどピボットもソート使ってるから。
もちろんdictionaryが使える人はそれでもよいが。

35:名無しさん@そうだ選挙にいこう
08/05/08 19:38:07
>32のブライドってのは自分に能力が足りないから書かないって事かwww

36:名無しさん@そうだ選挙にいこう
08/05/08 19:41:42
またやってるw
前スレで配列数式とSUMPRODUCTが好きなやつはほとんどドキュソだって書いたんだが。

37:名無しさん@そうだ選挙にいこう
08/05/08 19:47:53
>>34
>言っとくけどピボットもソート使ってるから。
それで何が言いたい?

38:名無しさん@そうだ選挙にいこう
08/05/08 19:53:07
俺以外は全員馬鹿

39:34
08/05/08 19:54:46
>>37
ピボットもまともな方法の一つということ。

40:名無しさん@そうだ選挙にいこう
08/05/08 20:07:53
>>39
実際、>>10のやろうとしてることはあまり良いことではないね。
横方向に並べるのはいろんな不都合がある。
名前でソートした時点で必要な情報は得られているんだからそれでよしとすべし。


41:名無しさん@そうだ選挙にいこう
08/05/08 20:13:16
俺にできないから我慢しろ

42:名無しさん@そうだ選挙にいこう
08/05/08 20:14:17
我慢するべき
我慢できない奴は頭がおかしい

43:名無しさん@そうだ選挙にいこう
08/05/08 20:17:55
配列数式を入力する時にCtrl+Shift+Enterと同時に3つのキーを押さないといけないのは
手が不自由な人に対する差別じゃね?指が2本しか無い人は押せなくね?

44:名無しさん@そうだ選挙にいこう
08/05/08 20:18:02
配列数式って覚えようと思ったけど作業列で代用できることに気づいて途中から勉強してない

45:名無しさん@そうだ選挙にいこう
08/05/08 20:20:53
>>41>>42
まあまあ茶化すなって。
横方向に伸びるレポートは実際に困ることが多いんだよ。
明細は縦に並べるスタイルに早く慣れたほうがいい。
>>10にとっても>>10の上司にとっても。


46:名無しさん@そうだ選挙にいこう
08/05/08 20:22:54
>>43
指一本でよくね?

47:名無しさん@そうだ選挙にいこう
08/05/08 20:24:08
>>46
すんません、指1本で何とか押せました

48:34
08/05/08 20:28:20
>>40
そういえばそうだね。

49:名無しさん@そうだ選挙にいこう
08/05/08 20:29:16
>>29
Sub Macro2()
Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=Date, Operator:=xlAnd
End Sub
マクロの記録そのままだけど

50:名無しさん@そうだ選挙にいこう
08/05/08 20:44:12
昨日公開されたXP用メイリオフォントを入れました。
ダウンロードの詳細 : Japanese ClearType fonts for Windows XP
URLリンク(www.microsoft.com)

大概の部分ではとても快適な視認性なのですが,Excel2003においては,
下記のようにフォント,フォントサイズ,ズームのボックスが異様に幅広になってしまいました。
URLリンク(upp.dip.jp)
直す方法がありましたら教えてください。


51:29
08/05/08 20:49:00
>>49
ありがとうございました。

52:名無しさん@そうだ選挙にいこう
08/05/08 22:04:57
質問です。xp 2003

c列始まりでの、n行(n=3,4,5)列毎に24個の平均値を出す方法を教えてください。

n=3の例
c,f,i,l,o,r,u,x,aa,ad,ag,aj,am,ap,as,av,ay,bb,be,bh,bk,bn,bq,bu列



53:名無しさん@そうだ選挙にいこう
08/05/08 22:10:37
すみません。条件を書き漏らしですので追加。
個別列指定をしない方法で。


54:名無しさん@そうだ選挙にいこう
08/05/08 22:13:18
もとい! すいません。
c,f,i,l,o,r,u,x,aa,ad,ag,aj,am,ap,as,av,ay,bb,be,bh,bk,bn,bq,buという
個別列指定をしないでという意味です。


55:名無しさん@そうだ選挙にいこう
08/05/08 22:15:19
>52

=IF(MOD(COLUMN()-3・・・

56:名無しさん@そうだ選挙にいこう
08/05/08 22:29:53
>>52
INDEX関数を使えばできる。
ところでなんでそんな変わったことやりたいの?


57:名無しさん@そうだ選挙にいこう
08/05/08 22:34:25
質問の仕方かまずかったので再設定しますです。xp 2003

c列始まりでの、n行(n=3,4,5)列毎に24個の平均値を出す方法を教えてください。

n=3の例
c,f,i,l,o,r,u,x,aa,ad,ag,aj,am,ap,as,av,ay,bb,be,bh,bk,bn,bq,bu列

c,f,i,l,o,r,u,x,aa,ad,ag,aj,am,ap,as,av,ay,bb,be,bh,bk,bn,bq,buという
個別列指定をしないで、また、average関数を使うという与件で
よろしく、お願いします。


58:57
08/05/08 22:36:04
>>56
移動平均


59:名無しさん@そうだ選挙にいこう
08/05/08 22:36:58
>>55
だけじゃわからんだろw
>>52
1行目に数字が入ってるとして
A2に=IF(MOD(COLUMN(),$A$3)=0,A1,"")
これを右にオートフィルして、後はA3にn行列を示す3か4か5いれて
B3に=if(A3=3,SUM(A2:BU2)/24,"")
B4に=if(A3=4,SUM(A2:CS2)/24,"")
B5に=if(A3=5,SUM(A2:DQ2)/24,"")
でもいれておけばok

60:名無しさん@そうだ選挙にいこう
08/05/08 22:38:03
URLリンク(www1.tcue.ac.jp)
だったらむしろこれは?

61:59
08/05/08 22:41:55
作り方は汚いが用途限定ならこんなもんだろ
と思ったらaverage使うのかよ
=if(A3=3,average(A2:BU2),"")とでもするといいよ

62:名無しさん@そうだ選挙にいこう
08/05/08 22:45:26
>>58
移動平均はそんな計算じゃないでしょ?
移動平均で検索してみた?

63:57
08/05/08 22:53:37
これまで、結構、調べてきたつもり。で、
57の設問となった次第です。


64:名無しさん@そうだ選挙にいこう
08/05/08 23:01:20
>>63

もう一度調べておいで。
あ、報告はいらないからね。

65:名無しさん@そうだ選挙にいこう
08/05/08 23:03:05
>>63
例えばどんな本やサイトを参考にしましたか。
そこでは移動平均はどんなふうに説明されてました?

66:57
08/05/08 23:13:48
どうも、移動平均を書くと話がおかしくなるようなので、57の設問での回答が
可能であれば、お願いします。


67:名無しさん@そうだ選挙にいこう
08/05/08 23:14:21
>>59

68:名無しさん@そうだ選挙にいこう
08/05/08 23:14:58
×移動平均を書くと話がおかしくなる
○57がおかしい

69:名無しさん@そうだ選挙にいこう
08/05/08 23:18:22
>>66
自分のオリジナルな指標を計算したんだな。
それならそう言えばいいんだよ。
要はセルを数字で指定できればいいんでしょ。
INDEXという関数を調べてみたら?

70:名無しさん@そうだ選挙にいこう
08/05/08 23:26:49
エクセルのファイルと間違えて、上書き保存してしまったのですが、
その前のデータを取り出すことは不可能でしょうか?

71:名無しさん@そうだ選挙にいこう
08/05/08 23:37:09
Excel2003を使用しています
仕事で一日中使っていますが、一日二回くらいは数字入力しているとき、
連続して同じ数字が走り出します

キーボードのNimLockキーの上のランプの二番目のCapsLockのAランプが勝手に点いて、
同じ数字が連続記入されていきます。
別のキーなりを押せば、異常は停止します。

何が原因か判らずに悩まされています。
キーボードとマウスは新品と交換し、「窓使いの友??」で両方のキャッシュも150にしました。

どうぞ宜しく

72:名無しさん@そうだ選挙にいこう
08/05/08 23:37:22
無理です

73:57
08/05/08 23:37:58
>>59さん サンクス
でも、私の意図するものとはうまく言えないのですが、異なっております。

>>69さん サンクス
indexやindirectでも考えるだけはしたのですが、私の頭では無理とわかり、
聞きに来ました。


74:72
08/05/08 23:39:23
72は>>70宛ね
>>71は一生困ってればいいとおもう

75:名無しさん@そうだ選挙にいこう
08/05/08 23:40:49
>>70
不可能です。
ただ、噂によると一千万ぐらいの費用で、上書きされた領域のデータを
ディスク上の残留磁気を精密に測定して救出してくれるサービスがあるそうです。

76:69
08/05/08 23:43:23
>>73
まずは等差数列を作れるようになるといい。
3,6,9…
3,7,11…
3,8,13…
みたいにね。
数式で作ってもいいし、オートフィルでもいいな。

77:57
08/05/09 00:17:19
>>76
A1に3,4,5を入力するとして、
=average(index(配列又は範囲,row(),A1+1),index(配列又は範囲,row(),A1*2+1)+…)
のようなこと?


78:57
08/05/09 00:19:07
訂正
=average(index(配列又は範囲,row(),A1+1),index(配列又は範囲,row(),A1*2+1),…)

79:69
08/05/09 00:36:06
>>78
ううん。そんなに複雑なこと考えてない。
A列に3
B列に6
C列に9

X列に72
となるように数字を並べてみて。


80:名無しさん@そうだ選挙にいこう
08/05/09 00:40:49
averageを使うなんて条件をつけた時点でろくな回答が出るわけがない・・・

81:69
08/05/09 00:54:53
>>80
averageを使うことは別におかしいとは思わないですけどね。
ただ、3個おきや4個おきにサンプリングした時系列データの平均を求める
ことに何か意味があるのかという点には疑問が残るところです。
でも>>57さんはやってみたいようですし。

82:名無しさん@そうだ選挙にいこう
08/05/09 00:55:04
エクセルを閉じると必ずエラーになりMSへエラー報告するかしないかを問うメッセージが出ます
基本的には問題なく使えてますがどういうことでしょうか
エロサイトを閲覧、新しくソースネクストのウイルスソフトを入れた後あたりから始まった現象です
関係あるでしょうか
どなたか教えてください。よろしくお願いします

83:10
08/05/09 01:38:46
>>17
ありがとうございます。‥‥こんな感じになりますか、うーーん。
リストには金額も入っていて、20人弱のうち数人「今回は現金で」
って人が来たときだけ、名前を入れてSUMIFで合計額出して、日付の
列は >>14 で作って、別のアプリにコピペ、ってことしてます。

SUMIF で合計を出す代わりに文字列をくっつけてくれる関数って
ないかなぁ、と。

>>40
だって、「1行100字入るんだから詳しく入れてやれ」って言われ
てて‥‥。コピペしたらもうその「4/7,4/12」は使わないです。

84:名無しさん@そうだ選挙にいこう
08/05/09 01:55:05
>>83
もしかして営業さんの出張旅費清算や仮払い手続きをやっているのではないですか。
山田さんに旅費を渡す時に「4/7,4/12分で合計金額が○○円です」とわかればいいのでしょう。
違いますか?

85:名無しさん@そうだ選挙にいこう
08/05/09 05:21:13
>>83
データの入ったファイルに対して、別ファイルからODBC経由で接続して
SQL.Request関数でも使ったらどうか?

っていうかAccess使え。

86:名無しさん@そうだ選挙にいこう
08/05/09 05:53:47
複数の離れたセル選択して、
一括コピー貼り付けできる方法を教えて下さい。

87:名無しさん@そうだ選挙にいこう
08/05/09 06:57:39
>>86
コピー前とコピー後、それぞれどんなふうにセルが並んでいるかによって方法が変わってくる。
とりあえず離れたセルを選択するにはCtrlを押しながらクリックまたはドラッグ。

88:名無しさん@そうだ選挙にいこう
08/05/09 07:19:12
>>87、ありがとうございます。たとえば、
A1,C1,E1をctrlキーで選択コピーしてA2に貼り付けすると、
A2,B2,C2にまとまってしまうので、
A2,C2,E2と言う具合で貼り付けしたいのです。





89:名無しさん@そうだ選挙にいこう
08/05/09 07:28:50
>>88
A2,C2,E2をctrlキーで選択、この時最後にA1を選択するようにする
そしてA2に=A1と入力後、ctrl押しながらenterかな
今のところコレぐらいしか思い浮かばないや

90:名無しさん@そうだ選挙にいこう
08/05/09 07:30:25
>>83
面倒な作業をまとめてやってくれるのがVBAなんだけど、処理しなきゃならないのが数人分だと、
おおげさすぎる気もするかなあ。
時々間違えて怒られるのとVBAを覚えるのと、どっちも面倒だけどどっちにするか選んでもらうしかないね。

とりあえず合計金額は、SUMIFなんか使うよりピボットテーブルで集計した方が速いよ。
メニューやセルを、たった10回クリックするだけで、何百人いても一瞬で計算してくれる。
URLリンク(www.07ch.net)

91:名無しさん@そうだ選挙にいこう
08/05/09 15:27:42
横棒100%グラフで、件数と売上を月ごとに2列表示させる
方法を教えて下さい。

92:名無しさん@そうだ選挙にいこう
08/05/09 15:49:12
>91

軽~くエスパーすると・・・ワカンネw

93:名無しさん@そうだ選挙にいこう
08/05/09 16:10:04
VLOOKUPで「行番号」をマイナスで指定するようなことがしたいのですが、
それが出来る代替の関数はありますか?

94:名無しさん@そうだ選挙にいこう
08/05/09 16:21:49
>>93
つINDEXとMATCH
C1の値をB1:B10で検索して、A列から答えを求めるなら
=INDEX(A1:A10,MATCH(C1,B1:B10,0))

95:名無しさん@そうだ選挙にいこう
08/05/09 16:24:12
HLOOKUPじゃなくVLOOKUPで行番号?
上は列番号のつもりで書いて理から。
どっちでもINDEXとMATCHだ。

96:名無しさん@そうだ選挙にいこう
08/05/09 16:34:53
>>95
すみません、列番号でした・・。
ありがとうございます。前スレでなんか話題になってた手法ですね。

97:名無しさん@そうだ選挙にいこう
08/05/09 16:45:29
だからLOOKUPなんぞ使わずにINDEX/MATCHの方が(ry

98:名無しさん@そうだ選挙にいこう
08/05/09 22:12:38
>>INDEX/MATCHを使うと何が実現できるの?

99:名無しさん@そうだ選挙にいこう
08/05/09 22:14:43
アンカー間違えた。
>>97
INDEX/MATCHを使うと何が実現できるの?
マイナスで指定できること?

100:名無しさん@そうだ選挙にいこう
08/05/09 23:37:56
>>99
おまい、いつまでも、しつこく、せからしいことやってないで、勉強するか寝てろw
あぁ、そうそう、関数というのはどうゆう風に使われているか、役立っているかをな。


101:名無しさん@そうだ選挙にいこう
08/05/10 01:12:31
>>100
おもしろいやつだな。


102:名無しさん@そうだ選挙にいこう
08/05/10 02:34:09
識別子の左側の列にある値を取り出したいならばINDEX/MATCHを使えということだな。
識別子は一番左に配置するのがセンスいいとは思うけどね。

■INDEX/MATCH派の主張
識別子の左側の列にある値を取り出すなど、柔軟にセルの値を参照できる。
LOOKUPウィザードが作成する数式もINDEX/MATCHを使っているんだから当然我々もINDEX/MATCHを使うべきだ。

■VLOOKUP派の主張
VLOOKUPさえあればデータを分類できるのでINDEX/MATCHの柔軟性は必要が無い。(売上データを商品分類別や地域別に分けるなど)
LOOKUPウィザードが作成する数式もINDEX/MATCHを使っているんだから当然我々もINDEX/MATCHを使うべきだとは思わない。

■両者に共通する認識
VLOOKUPよりINDEX/MATCHの方が柔軟である。
INDEX/MATCHよりVLOOKUPの方が覚えるの簡単。


103:名無しさん@そうだ選挙にいこう
08/05/10 07:55:40
屁理屈、こだわり、全く無意味、根っ子が解ってないベービー

104:名無しさん@そうだ選挙にいこう
08/05/10 09:05:11
>>102
一番肝心なことが分かってないね。
E1:E10を検索してG列から答えを引っ張るのに
=VLOOKUP(A1,$E$1:$G$10,3,FALSE)
=INDEX($G$1:$G$10,MATCH(A1,$E$1:$E$10,0))
この二つの式の動作の違いが分るかい?

105:洋子♪
08/05/10 09:20:22
countif関数の活用で、教えていただきたいのですが。。。

  A2:A30 と B2:B30 の2列に対して、例えばA列は”2”
 で、B列は”3” のセルの数を数えたい場合は
 countif関数をどのように活用すればよいのでしょうか?
 
   宜しくお願いいたします。<m(__)m>

106:名無しさん@そうだ選挙にいこう
08/05/10 09:20:42
>>104
どっちが動作が軽いの?

107:名無しさん@そうだ選挙にいこう
08/05/10 09:21:27
>>105
足し算しろよw

108:名無しさん@そうだ選挙にいこう
08/05/10 09:22:24
>>104

弱い私の頭では分かりませんでした。
違いを教えていただけないでしょうか?

109:名無しさん@そうだ選挙にいこう
08/05/10 09:23:18
XPpro、EXCEL2003で、VBAは使えません。

質問です、下記の表のうち、4月に購入した
野菜-人参の合計額を求めたいのですが
どういった関数を組み込めばいいのでしょうか?
お願いいたします。



月  項目1 項目2 支出額
4   野菜  人参  100
4   野菜  人参  500
4   野菜  大根  100
5   果物  みかん 300



110:名無しさん@そうだ選挙にいこう
08/05/10 09:26:31
>>107
おまえ天才だな。

>>105
作業列が必要。
C列に=AND(A2=2,B2=3)と入れて、C列でTRUEが入ったセルの数をCOUNTIFで数える。

111:名無しさん@そうだ選挙にいこう
08/05/10 09:29:13
>>109
月、項目2、支出額でピボットテーブルを作りなされ。

112:名無しさん@そうだ選挙にいこう
08/05/10 09:30:26

このスレの回答者はバカばっかりだね
レベルの低い、何のノレッジも無いアホばっかり wwwwww

113:名無しさん@そうだ選挙にいこう
08/05/10 09:32:14
>>112
2ちゃんですもの・・・・・・(藁)

114:名無しさん@そうだ選挙にいこう
08/05/10 09:36:03
>>109
・ピボットテーブル
・作業列
E2に=if(and(a2=2,b2="野菜",c2="人参"),d2,"")
でどこかのセルに=sum(E:E)

115:名無しさん@そうだ選挙にいこう
08/05/10 09:37:09
>>104
分かんないんで教えていただきたいのですが
っていうか前スレ辺りにも無かった?
結局答えないまま逃げていったけど

116:名無しさん@そうだ選挙にいこう
08/05/10 09:39:50
【1 OSの種類         .】 WindowsXpHomeSP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

A列にはID B列にはそのX座標 C列にはY座標が入っています。
ここで、D列とE列に、A列から2つのIDを入力すると、
F列に、2つのID間の距離を出すような動作 
はどのようにすれば良いでしょうか?

F列で計算をさせる際に、A列のID2つを入力すれば、
=((B1-B2)^2+(C1-C2)^2)^(1/2)
上式のB1,B2,C1,C2に自動で値を入れるようにしたいのですが、
何か方法はありますでしょうか・・・

117:100
08/05/10 09:46:13
>>104
横レスだが、その与件を設定して比較する意味のなさ、というか、式自体が間違ってね?


118:名無しさん@そうだ選挙にいこう
08/05/10 09:59:21
>>116
IDが100個あってA1からA100まで入ってるとすると、IDから座標を求めるにはこういう関数を使う。

1番目のX座標 … VLOOKUP(D1,A1:C100,2,FALSE)
1番目のY座標 … VLOOKUP(D1,A1:C100,3,FALSE)
2番目のX座標 … VLOOKUP(E1,A1:C100,2,FALSE)
2番目のY座標 … VLOOKUP(E1,A1:C100,3,FALSE)

これを式に代入すると

=((VLOOKUP(D1,A1:C100,2,FALSE)-VLOOKUP(E1,A1:C100,2,FALSE))^2+(VLOOKUP(D1,A1:C100,3,FALSE)-VLOOKUP(E1,A1:C100,3,FALSE))^2)^(1/2)

119:名無しさん@そうだ選挙にいこう
08/05/10 10:03:37
>>118
今試して見ました、何の問題も無く動作しました。
本当にありがとうございます!


120:名無しさん@そうだ選挙にいこう
08/05/10 11:06:03
>>103
>屁理屈、こだわり、全く無意味、根っ子が解ってないベービー
反論できなくなって人格攻撃開始。

>>104
>=VLOOKUP(A1,$E$1:$G$10,3,FALSE)
>=INDEX($G$1:$G$10,MATCH(A1,$E$1:$E$10,0))
>この二つの式の動作の違いが分るかい?
分からない。説明して。

>>117
>横レスだが、その与件を設定して比較する意味のなさ、というか、式自体が間違ってね?
式は間違ってないみたいだぞ。比較する意味のなさには同意する。

121:名無しさん@そうだ選挙にいこう
08/05/10 11:23:00
INDEXとMATCHを混ぜて使うときには
扉にちゃんと「有毒ガス発生中」と貼るんだぞ。

122:名無しさん@そうだ選挙にいこう
08/05/10 11:32:09
>>112
君がレベルの高い回答をしてやればいいじゃないか。


123:名無しさん@そうだ選挙にいこう
08/05/10 11:38:15
おまいら馬鹿ばっかだな。
>>104がなかなか答えないから、おれがヒントだけ出してやるよ。
F1からF10の値が変わったときの違いは分る?

こういうことだろ?
他はほとんど同じだと思う。


124:名無しさん@そうだ選挙にいこう
08/05/10 11:44:59
【1 OSの種類         .】 WindowsXpHomeSP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード     】

どこをどういじったのか、わからなくなってしまったのですが、
作業していてワークシートがAからDの列と
1から20行までの表示のみになってしまいました。

どうすれば、元のAからIVまでと、1から65536まで表示されるのでしょうか?

125:名無しさん@そうだ選挙にいこう
08/05/10 11:57:31
状況がよくわからんな。
とりあえず最大化ボタンをクリックしてみる。
URLリンク(aaabbbccc.s6.x-beat.com)

126:名無しさん@そうだ選挙にいこう
08/05/10 12:04:41
>>123
F1からF10に乱数を入れてみたが違いはわからなかった。
ヒントでは不十分なので正解を書いてください。


127:名無しさん@そうだ選挙にいこう
08/05/10 12:06:13
>>124
ウィンドウ枠を固定していませんか?
「ウィンドウ」メニューから「ウィンドウ枠固定の解除」を選んでみてください。


128:名無しさん@そうだ選挙にいこう
08/05/10 12:13:28
>>104 は、出てこれないでなく、逃げた?



129:123
08/05/10 12:14:57
>>126
シートのタブを右クリックして、コードの表示で出てきたウィンドウに
Private Sub Worksheet_Calculate()
MsgBox "計算した"
End Sub
と書いて、F1:F10のうちのどれかのセルに何か入力してみろ。

おれは>>104じゃねーから俺に正解をって言われても困るが、まずこういうことだと思う。

130:名無しさん@そうだ選挙にいこう
08/05/10 12:24:05
>>129
なるほどね。たしかに違うと言えば違うな。
その違いが処理のボトルネックになることはないと思うがね。

131:123
08/05/10 12:33:03
他にも式がたくさんあるかないかの問題だね。
F1:F10を参照してる別の式があるとき、その別の式だけ再計算すればいいものを、
よけいなVLOOKUPの式まで計算させる必要はないからね。
式が山ほどあるときは、こういう小さな積み重ねがブックを重くするか軽くするかにかかわって
くることもあると思うよ。

132:名無しさん@そうだ選挙にいこう
08/05/10 12:37:25
>>131
なるほどなるほど。
君の答えは非常に明快だ。INDEX/MATCHにもメリットはあるということがわかったよ。
ありがとう。

133:名無しさん@そうだ選挙にいこう
08/05/10 12:37:50
>>104 でないものが、いろいろ言っててもな
読み返すと、104は相手にされないと逃げたとかいう本人。
普通、関数厨は論理明確で好きなんだがね。常にそうとは限らない例外。



134:名無しさん@そうだ選挙にいこう
08/05/10 12:43:19
今までロジックの通じない宇宙人とばかり話していたから>>123>>129>>131に出会えてほっとした。


135:名無しさん@そうだ選挙にいこう
08/05/10 13:17:57
で、元興しのINDEX/MATCH はVLOOKUPがあれば、いらねという人は
いる、使えるということでいいのかな


136:名無しさん@そうだ選挙にいこう
08/05/10 13:26:41
メリットは分かったが、めんどいな

137:名無しさん@そうだ選挙にいこう
08/05/10 13:32:27
>>135
本人です。そういうことでいいよ。
ただ、VLOOKUPがボトルネックになっていて、それをINDEX/MATCHで解消できる
ような状況自体がめずらしいだろうとは思ってる。

138:名無しさん@そうだ選挙にいこう
08/05/10 13:35:54
>>135
もともとINDEX/MATCH派は検索の柔軟性をメリットとしていなかったか?
それをもっと説明してよ。

139:名無しさん@そうだ選挙にいこう
08/05/10 13:40:39
>>136
実際にVLOOKUPが遅くて困ったことなんかないからねえ。

140:104
08/05/10 14:27:49
代わりに正解書いてもらってすまんな>>123
こちとら急用で出かけてたが、みんな耳を傾けてたらしいな。
2chの馬鹿でも話せばわかるとは驚きだw

141:名無しさん@そうだ選挙にいこう
08/05/10 14:35:14
>>140
正しいことを書いていれば理解できるよ。
こっちも屁理屈を言ってるわけじゃない。


142:名無しさん@そうだ選挙にいこう
08/05/10 14:36:09
質問なんですけど、一つのセルの中で他のセルを参照することは可能でしょうか?

例えばA1が「195」と入力すると、A4の中でその値を参照させて
計算式では
「="私の身長は"+A1+"cmです"」とし、
  (↑当然エラーになります。ふいんき(←なぜか変換できない)だけ感じてください)

表示上では
「私の身長は195cmです」

のように表示させたいのです。
つまりは一つのセルの中で文字列と参照を結合するにはどぎゃんしたらよかとですか?

143:123
08/05/10 14:37:51
>>140
やっぱそういうことだったのね。
まほかに違いなんてないもんね。
ところで俺の意見のSUMPRODUCTと配列数式が好きなやつはドキュソが多いってのには賛成でつか?

144:名無しさん@そうだ選挙にいこう
08/05/10 14:46:47
これで円満解決かな。

■INDEX/MATCH派の主張
(無関係の列を編集した時でも再計算されてしまうから)VLOOKUPはINDEX/MATCHよりも遅い時がある。

■VLOOKUP派の主張
まあそういうときもあるかも。INDEX/MATCHを覚えることがまったく無駄とは言わない。

■両者に共通する認識
VLOOKUPはINDEX/MATCHより遅くなる場合がある。
INDEX/MATCHよりVLOOKUPの方が覚えるの簡単。


145:142
08/05/10 14:51:27
自己解決しました!

・CONCATENATE関数を使う「CONCATENATE("わしの月収は",A1,"しかないたい")」
・アンパサンドを使う「"わしの身長は"&A1&"まであるぞ"」
・質問者を蔑にして雑談してるお前らは知識の低さ以前にクズ

ということですね、わかります

146:名無しさん@そうだ選挙にいこう
08/05/10 14:52:40
>>142
="私の身長は"&A1&"cmです。"
とするとよかと。
それから雰囲気は「ふんいき」が今のところ正しいとされている。

147:104
08/05/10 14:54:05
>>143
ペーハー4くらいの酸性かな?
配列数式も正しく使えばいいんだが、変な使い方するやつ結構いるからね。
同じ計算を何度もやってるような式をみるとこいつ駄目だなと思う。
SUMPRODUCTなんかも金種計算なんかに使ってるやつ見るとかわいそうになる。
何度同じ計算やらせてんだか。

148:名無しさん@そうだ選挙にいこう
08/05/10 14:58:47
>>147
私の場合、同じ計算を冗長に実行することに抵抗はない。
それよりも「わかりにくい」「メンテしにくい」「引継しにくい」が問題だと思う。


149:名無しさん@そうだ選挙にいこう
08/05/10 15:02:47
>>146
私がお人好しでした。
今度から自己解決しそうなやつには回答しないことにします。

150:名無しさん@そうだ選挙にいこう
08/05/10 15:09:11
>>123
君のドキュソぶりはさておいてw
index/matchとvlookupの議論としては、解決に、ほど遠いだろw
俺も出かけるw



151:名無しさん@そうだ選挙にいこう
08/05/10 15:13:13
>>150
さてはSUMPRODUCT好きだなw
解決にほど遠いって作業列にMATCHのこと?
そんなの常識だから104も書かんだけじゃないの?

152:名無しさん@そうだ選挙にいこう
08/05/10 15:24:58
うざい自演にしか見えない・・・

153:名無しさん@そうだ選挙にいこう
08/05/10 15:25:43
Excelでやりたいことなんて結局データをグループ別に集計することなんだから
VLOOKUPでグループ分けしてピボットテーブルで集計すれば解決するんだけどな。


154:名無しさん@そうだ選挙にいこう
08/05/10 15:30:42
ほら、何書いても聞く耳持たんやつがでてくる。

155:名無しさん@そうだ選挙にいこう
08/05/10 15:32:02
>153

君がそう使っているからといってみんながそう使っている
とは限らんワナw

こういうやつが使えないのに「VBはうんこ!ピボマンセー!」
って言ってる気がする。

156:名無しさん@そうだ選挙にいこう
08/05/10 15:38:11

元データ → 関数でデータ抽出 → 元データ削除 って可能ですかね?
可能でしたら どのような方法が考えられるか教えてくれませんか?


157:名無しさん@そうだ選挙にいこう
08/05/10 15:40:07
>>155
Excelどんなことに使っての?

158:名無しさん@そうだ選挙にいこう
08/05/10 15:45:03
>>156
抽出できたんなら簡単に削除できるだろ?

159:名無しさん@そうだ選挙にいこう
08/05/10 15:51:40
>>158
例えば LEFTとかで数字や文字列を抽出した後、削除するとエラー値が表示されてしまいます

160:名無しさん@そうだ選挙にいこう
08/05/10 15:53:44
値貼り付けを知らないんだなきっと。
しかし関数でデータ抽出をやる害虫がまだ発生してるのか。

161:名無しさん@そうだ選挙にいこう
08/05/10 15:56:00
>>159
ああそういうことか。
データの形式を選択して貼り付けするとき形式を値にしたらいいよ。

162:名無しさん@そうだ選挙にいこう
08/05/10 15:56:57
>>160
ありがとう!

163:名無しさん@そうだ選挙にいこう
08/05/10 15:57:14
なんだ関数でデータ抽出ってLEFTとかのことか。
害虫なんて言ってすまんかった。
おれはまた配列数式かと思ったよ。

164:名無しさん@そうだ選挙にいこう
08/05/10 15:58:45
>>160
LEFTとか使っちゃだめなの?

165:160
08/05/10 16:00:11
>>164
いやいやおれの勘違い。

166:名無しさん@そうだ選挙にいこう
08/05/10 16:03:45
>>149
問題はそこじゃない希ガス

167:名無しさん@そうだ選挙にいこう
08/05/10 16:07:14
>>166
そだね。
>・質問者を蔑にして雑談してるお前らは知識の低さ以前にクズ
こんなこと書くやつこそ人間のクズだな。
おれも書こうとしてたんだが、こんなやつに回答しなくてよかったよ。

168:洋子♪
08/05/10 16:24:11
>>110  ありがとうございます<m(__)m>

   countif関数にandを追加して・・・ との一発で
  抜き出す、方法はナイのですね。。。。


169:10=83
08/05/10 16:36:37
>>83
そんな感じです。営業さんでも出張旅費でもないですけど。

>>90
VBAは「ちょっと知ってる」けど「ここでは使っちゃだめ」なんです。
こそぉり使っちゃるかな、もう。

170:名無しさん@そうだ選挙にいこう
08/05/10 17:15:56
>>169
ピボットテーブルがいいと思うけどな。
>>90の回答で満足できないのはどういう点なの?

171:名無しさん@そうだ選挙にいこう
08/05/10 17:25:53
>>170
いや、元々の質問は集計じゃなくて文字列の連結だから。

>>169
個人用のブックを別に作って私物のUSBメモリにでも入れといて、
そこにデータをコピペして作業すれば?

172:名無しさん@そうだ選挙にいこう
08/05/10 17:46:15
>>168
条件が2つある時はCOUNTIFだけでは不可能。
複数の条件でカウントしたい、しかも作業列は使いたくない、
そんな時はSUMPRODUCTとか配列数式を使う。

173:名無しさん@そうだ選挙にいこう
08/05/10 17:50:14
>>171
もともとの質問は文字列の連結だけど
>>83
>リストには金額も入っていて、20人弱のうち数人「今回は現金で」
>って人が来たときだけ、名前を入れてSUMIFで合計額出して、日付の
>列は >>14 で作って、別のアプリにコピペ、ってことしてます。

のように言ってるから本質は集計なんだよ。


174:名無しさん@そうだ選挙にいこう
08/05/10 17:54:11
なんだ、また天才か。
ピボット厨はみんな頭が良すぎて困るよ。もっとレベルを下げて俺たちに合わせてくれよ。

175:名無しさん@そうだ選挙にいこう
08/05/10 17:58:00
>>171
まあまあ。質問者はVBA使えるんだから、個人用ブックを用意しとけというのは
良いアドバイスだと思うよ。
この件はもう解決でいいかな?>>10

176:名無しさん@そうだ選挙にいこう
08/05/10 17:58:19
質問主は文字列と集計と、2つの作業をやりたいって言ってるんだから、
1つ片付けて終わりじゃあんまりだろ

177:名無しさん@そうだ選挙にいこう
08/05/10 18:49:14
>>168
2007を買えば複数条件で使える関数がいろいろ増えた。
ただ今までの配列数式やSUMPRODUCTと比べると速度はあまり変わらんみたいだな。

178:10=83=169
08/05/10 18:51:15
>>170
リストに変更があったとき、どうも「データの更新」しないと
古いままで出てきちゃうように見える点、かな。

>>171
文字列を対象にした集計というか連結と言うか。
ズバリこれ、な関数とかないみたいなので、
別のブックとか、なんか方法を考えて見ます。

>>175-176
「週末つぶして調べましたが関数じゃ無理です」とか言って
VBA使わせてもらえれることになったら解決。
だめだったら‥‥また考えよう。

179:名無しさん@そうだ選挙にいこう
08/05/10 18:58:31
>>178
ブックにVBAを残してはいけないということであれば、VBSから処理しては?
うまくやると別アプリへのコピペまでできてしまうかもしれません

180:名無しさん@そうだ選挙にいこう
08/05/10 19:07:21
>>178
>リストに変更があったとき、どうも「データの更新」しないと
>古いままで出てきちゃうように見える点、かな。
今の手作業よりよっぽど楽だと思うけど。
これを嫌う人はけっこう多いなあ。ピボットテーブルの弱点だな。


181:名無しさん@そうだ選挙にいこう
08/05/10 20:01:34
ピボットテーブルはセルの幅がやたら広くなるのが嫌。

182:名無しさん@そうだ選挙にいこう
08/05/10 20:10:50
ピボットテーブルにできないことで代表的なのは
1.第一正規化されていない(繰り返し項目のある)データを扱うこと。
2.枝分かれ構造のある解やデータを再帰的に探索すること。
3.最適化問題を解くこと。


183:名無しさん@そうだ選挙にいこう
08/05/10 20:13:46
>>10
暇だから作ってみた。VBAガ使えなきゃ意味ねーんだけどな


Sub macro1()

Columns("B:B").Select
Selection.Copy
Columns("C:C").Select
ActiveSheet.Paste
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Copy
Columns("D:D").Select
ActiveSheet.Paste
Columns("C:D").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("D1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal

Dim gyo As Long
Dim i As Long
Range("c1").Select
gyo = Range("c65536").End(xlUp).Row

184:名無しさん@そうだ選挙にいこう
08/05/10 20:14:44

Range("e1").FormulaR1C1 = "=TEXT(RC[-1], ""m/d"")"
Range("E1").AutoFill Destination:=Range("E1:E" & gyo), Type:=xlFillDefault

Range("e:e").Copy
Columns("D:D").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("e:e").Delete

Range("c1").Select
For i = 1 To gyo
If Selection.Value = Range("c" & i + 1).Value Then
Selection.Offset(0, 1).Value = Selection.Offset(0, 1).Value & "," & Range("d" & i + 1).Value
Range("c" & i + 1 & ":d" & i + 1).Value = ""
Else
Range("c" & i + 1).Select
End If
Next
Columns("C:D").Select
Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal

End Sub

185:名無しさん@そうだ選挙にいこう
08/05/10 20:17:18
>>181
それはピボットテーブルに起因する問題ではない。

186:名無しさん@そうだ選挙にいこう
08/05/10 21:21:51
ピボットテーブルで解決できない問題について

1.第一正規化されていない(繰り返し項目のある)データを扱うこと。
できることならVBAで解決するのでなく、データを正規化しよう。
そうすればピボットテーブルで自在に集計、分析できる。これこそが本当の効率化。

2.枝分かれ構造のある解やデータを再帰的に探索すること。
これは例えばオセロの思考ルーチンを作ったりだとか、プログラミング言語の構文解析をすることがあてはまる。
ただ、大部分のExcel利用者にとって縁の無い問題とも言える。

3.最適化問題を解くこと。
制約条件を満たしながら、目的の値を最大化(最小化)するようなパラメータを見つける問題。
パラメータが200個以下ならソルバーが利用できる。でも大規模になったら有料だ。高いぞ!
しかたがないVBAで作るとするか。しかし、実際作るとなると難しい。仕事の片手間にできるかな?

もうひとつ追加

4.シミュレーションを行い、解の分布を求めること。
モンテカルロシミュレーションだな。これなんかはVBAを使うと本当に便利。
利益を計算するシートを作って、為替や材料費などパラメータを乱数で変化させる。
結果の度数分布を作れば、その事業がどの程度儲かる可能性があるか把握しやすい。


187:名無しさん@そうだ選挙にいこう
08/05/10 21:27:19
5.車を運転すること
ピボットテーブルには手足が付いていないため、アクセルやブレーキ、ハンドルの操作が出来ません。

6.ピザを食べること
ピボットテーブルには口や消化器官が付いていないため、ピザを食べる事が出来ません。

188:名無しさん@そうだ選挙にいこう
08/05/10 21:30:34
それってExcel以外の方法を考えた方がよっぽど能率いいんでね?
確かにVBAは手軽な言語ではあるけど、
C#コンパイラの統合環境が無料で落とせることを考えるとねえ。

189:名無しさん@そうだ選挙にいこう
08/05/10 21:32:59
>>188
そう。結局そうなるのが落ち。
Excelではピボットテーブルでできることをやっとくのがいいんだよ。

190:名無しさん@そうだ選挙にいこう
08/05/10 21:34:58
Excel2002だけどセルの背景色がうまくいかない

191:名無しさん@そうだ選挙にいこう
08/05/10 21:56:38
おうちのかたへ。せんせいからのコメント
>>189くんは考え方がきょくたんすぎます。もうちょっと柔軟に考えられるよう、
指導してあげてください。

192:名無しさん@そうだ選挙にいこう
08/05/10 22:00:36
>>191
どのように極端なのかな。
ごく当たり前の結論だと思うが。

193:名無しさん@そうだ選挙にいこう
08/05/10 22:03:08
>>190
君もしばらくしたら自己解決するんだろ?

194:名無しさん@そうだ選挙にいこう
08/05/10 22:03:08
【1 OSの種類         .】 Windows*XP Home
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】=RAND コピー 乱数が発生しない 同じ値に

A1に=RAND()とし、A2からA30くらいまでフィルハンドルやコピー&ペーストに貼り付けました。
しかし、なぜかA2-A30までもA1で発生した値のままになってしまいます。
貼り付けのとき数値だけを指定したわけではありません。A2-A30までちゃんと=RAND()となっています。
普通に個々で=RAND()と書くとちゃんと別の乱数が発生します。

どうすればコピーして乱数を個々に発生させられるのでしょうか。ご教授をお願いします。

195:名無しさん@そうだ選挙にいこう
08/05/10 22:06:23
>>194
君もしばらくしたら自己解決するんだろ?


196:名無しさん@そうだ選挙にいこう
08/05/10 22:06:29
>>194
ツール→オプション→計算方法が「手動」になってるんじゃないかな?
「自動」にすればいいと思うよ。

197:名無しさん@そうだ選挙にいこう
08/05/10 22:07:58
>>194
F9を押してもバラバラの値になりませんか?

198:名無しさん@そうだ選挙にいこう
08/05/10 22:08:12
>>194
F9キーを押してみ

199:名無しさん@そうだ選挙にいこう
08/05/10 22:09:06
>196

! 直りました。助かりました。
設定を変えて直していなかったのだと思われます。早い回答、ありがとうございます。


200:名無しさん@そうだ選挙にいこう
08/05/10 22:10:57
>194 >195

その方法でも再計算されました。
本当にみなさんありがとうございます。

201:名無しさん@そうだ選挙にいこう
08/05/10 22:43:03
質問なんですが、
セルに、”2006-09”という数値を打ち込むと勝手に日付と認識されて
”Sep 06”と表示されてしまいます。”2006-09”をただの数値として
このまま表示させたいのですがどのように設定若しくは設定を解除すれ
ばいいですか??教えてください!!
なお、セルの書式設定の「表示形式」で色々やってみましたがよく分か
りません。。。

202:名無しさん@そうだ選挙にいこう
08/05/10 22:43:39
>201
文字列に設定

203:名無しさん@そうだ選挙にいこう
08/05/10 22:51:51
>202
回答ありがとうございます!
早速やってみたのですが、「38961」という全く違う数値に
変換されてしまったのですが・・・

204:名無しさん@そうだ選挙にいこう
08/05/10 22:54:11
>>203
もうちょっとで自己解決できる。

205:名無しさん@そうだ選挙にいこう
08/05/10 23:02:47
>202
>204
[表示形式]を[標準]に設定しなおしても入力したとおりにならずに
"38961"って出ちゃう・・・。
"2006-09"(型番)←をこのまま表示できないの?


206:名無しさん@そうだ選挙にいこう
08/05/10 23:08:52
>>183
暇だから要約してみた。VBAガ使えなきゃ意味ねーんだけどな

Sub macro1()
  Dim i As Long
  Columns("B:B").Copy Columns("C:C")
  Columns("A:A").Copy Columns("D:D")
  Columns("C:D").Sort _
    Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("D1"), _
    Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom, SortMethod:=xlPinYin
  For i = 1 To Range("c65536").End(xlUp).Row
    If Cells(i, 3).Value = Cells(i + 1, 3).Value Then
      Cells(i + 1, 4).Value = Cells(i, 4).Text & "," & Cells(i + 1, 4).Text
      Cells(i, 3).Resize(, 2).Value = Empty
    End If
  Next
  Columns("C:D").Sort _
    Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
    MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub

207:名無しさん@そうだ選挙にいこう
08/05/10 23:09:29
>>205
なんで標準なの?
言われたとおりのことを実行できないとこの先も苦労するぞ。

208:名無しさん@そうだ選挙にいこう
08/05/10 23:09:41
>>205
'2006-09

209:名無しさん@そうだ選挙にいこう
08/05/10 23:19:53
数値を入力後にセルの書式設定ではダメだす。
設定した後に数値を入力。

210:205
08/05/10 23:29:42
>208
できた!!ありがとう!!
>各位
解決です!お手数かけました!

211:名無しさん@そうだ選挙にいこう
08/05/11 00:42:56
>>206
勉強ニなります

212:45
08/05/11 09:05:03
>>10の質問は>>183>>206が解決してくれたようなので
しつこいと思われるかもしれないけど最後っ屁をこいておきます。
将来業務の規模が変わったらこんな方法では破綻するよ。
その時は上司を説得してレポートの形式を縦型に変えるといいよ。


山田
  4/7
  4/10
合計 5000

佐藤
  4/8
  4/20
  4/21
  4/25
合計 8000

鈴木
  4/8
合計 6000


213:名無しさん@そうだ選挙にいこう
08/05/11 09:33:40
>>212
業務の規模が変わったら2007を入れるんじゃない?
何列までか知らないが、かなりの列数が使えるらしいから。

214:名無しさん@そうだ選挙にいこう
08/05/11 09:39:38
>>213
そういうのをナナメウエの工夫という。

215:名無しさん@そうだ選挙にいこう
08/05/11 09:45:37
どうでもいいけどなんで回答者が>>45>>212みたいに自分の名前を出し付けるの?
なにか意味あるの?

216:名無しさん@そうだ選挙にいこう
08/05/11 09:50:22
この後すぐになりすましが登場するぞ。犯人は>>215

217:45
08/05/11 09:50:41
そんなことはしませんよ?

218:名無しさん@そうだ選挙にいこう
08/05/11 09:53:21
>>217
お約束通りだな。
もう先読みされてるぞ。

219:215
08/05/11 09:56:39
うるさーい!おまいら全員氏ね!

220:45
08/05/11 10:10:01
死ぬのは俺一人で十分だ

221:名無しさん@そうだ選挙にいこう
08/05/11 10:48:21
いやいやここは俺が

222:45、215
08/05/11 10:48:58
どうぞどうぞどうぞ

223:名無しさん@そうだ選挙にいこう
08/05/11 10:54:37
>>214
「今までのやり方を変えない」ってのも、場合によっちゃ十分に意義があるんだけどな。
中小だと、今だにWin3.1やらDOSベースのソフトを使ってるところも珍しくない。
こないだメンテに行ったとこなんかFM-TOWNSを使ってたぞ。
社長に故障したら終わりですよとは言ってあるけど、開発に1000万かけた業務用ソフトを
もう一度作り直すだけの予算は出せないだろうなあ。

224:名無しさん@そうだ選挙にいこう
08/05/11 11:30:31
晴れたり曇ったりって、あんまり面白くないね

225:名無しさん@そうだ選挙にいこう
08/05/11 11:52:40
【1 OSの種類         .】 Windows*XP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】Excel 式だけ 別のシート 参照

別のシートの式だけを参照させることは可能でしょうか。(その式に代入される変数はそのシート上にあるセルの値)
例えば以下のような感じです。

シートA:
A1|  1
A2|  2
A3|=A1+A2 (→計算結果は3)

シートB:
A1|  3
A2|  4
A3|=シートA!A3
→普通に参照するとシートBのA3の計算結果はシートAのA3の計算結果である「3」になってしまいますが、
シートBのA3において求めたいのは、A1+A2の答えである「7」です。

なにがしたいのかと言うと、シートAのA3の計算式を変更した時に、
それを参照しているシートBのA3の計算式も同時に手を加えることなく変更したいということです。
どなたかお分かりの方がいらっしゃいましたらお教えいただきたく、よろしくお願い申し上げます。

226:名無しさん@そうだ選挙にいこう
08/05/11 12:26:22
>>225
VBAを使わないと無理

VBA使わずにやるなら
シートAのA4とA5に足算したいセル番地を入力する

シートA:
A1|  1
A2|  2
A3|=INDIRECT(A4)+INDIRECT(A5)
A4 | A1
A5 | A2

シートB:
A1|  3
A2|  4
A3|=INDIRECT(sheeta!A4)+INDIRECT(sheeta!A5)

別にA4とA5じゃなくてもいいけどね

227:名無しさん@そうだ選挙にいこう
08/05/11 12:31:16
>>223
変える必要無いものは変えなくていいよ。だけどこのケースは違うだろ?
「日数が300日になったら256列制限を越えちゃうよ。どうしよう。そうだ!2007使えばいいんだ。俺頭いい。」
ではダメなの。

例に挙げてるタウンズ社長だってそう。これなんか今すぐやり方変えないといけない例であって、「今までのやり方変えないのも意義があるよ」の例になっていない。
要は自分の意見がなくて反論したいだけなんだよ。

228:名無しさん@そうだ選挙にいこう
08/05/11 13:32:10
>>226
早速にありがとうございます!
VBAを使わないと無理ですか・・・、でもそれがわかっただけでも大いに助かりました。
ありがとうございますm(_ _)m

今やろうと思っていることは、多くの基礎データを多くの計算式に入れて解析するということなのですが、
基礎データは同じ内容の何枚ものシートに日付ごとにまとめているため、
解析項目や計算方法を変更する必要があると、全ての基礎データシートに手を加えなければなりません。

そこで解析項目・計算内容のフォーマットになるシートを作り、全ての基礎データシート上にある解析項目・計算式はそのフォーマットを参照するようにすれば、
解析項目や計算式を変更する場合はフォーマットシートだけをいじれば全ての基礎データシートにも反映されるようにできると思ったのですが
データを解析する項目が多い上に計算内容が複雑なので、お教えいただいたやり方でもやはり無理があると思います。

これを機に今まで敬遠していたVBAにも手を出してみようかという気になっていますが、
まず手始めに上記のようなことを実現するにはどこから手をつければよいか、
もしできましたら糸口になるWebページなどあればお教えいただけると幸いです。

229:名無しさん@そうだ選挙にいこう
08/05/11 13:47:09
とりあえずデータを作る時に
日付 内容1 内容2・・って感じで一つのシートに入れてしまうのが一番いいんだけどな
これをしてしまえば後はピボットなり、オートフィルタなりで簡単に集計することができる
但し、間にセルの結合してたりタイトル行が混じると上手くいかなくなることもあるんだけどね・・

230:名無しさん@そうだ選挙にいこう
08/05/11 13:59:10
>228
ちょっと強引なやり方だけど、
集計用ファイルの、
式のファイル名部分[*****月*日データ名]なんかだとして、
そこを置換するっていう手も。

あるいは逆に、
シート名を入れる欄を作って、
INDIRECTでシート名をそこからひっぱってくるっていう手もある。
どっちもちょっと無理やりだけど。

231:名無しさん@そうだ選挙にいこう
08/05/11 14:06:46
>>228
はい、基礎データが住所録のような単純なものであれば、そういうやり方が手っ取り早いのはわかってるのですが、
日付ごとの1枚のシートの中においても基礎データ相互を参照しながら演算が必要だったり、
全ての日付のデータを集計した平均値などを元の基礎データそれぞれのシートの演算にフィードバックしたりする必要があり、
単純なやり方では無理なんだろうなって思っています。

ここまでくると、解析とデータを完全に切り分け、解析の方できちんとしたプログラムを組み、
基礎データを解析する場合は解析プログラムの方から基礎データを読みに行くようにした方が、
演算処理上も計算方法を変更する場合を考慮した上でもいいんでしょうね。

232:226=228=231
08/05/11 14:10:02
しまった、>>231>>229へのレスです。

>>230
ありがとうございます。
パッとイメージしにくいやり方ですが、ちょっと検討してみます。

233:名無しさん@そうだ選挙にいこう
08/05/11 14:30:53
>>232
解析用シートを作成し、解析したいデータをそれにコピペしたらどうか?


234:226=228=231=232
08/05/11 14:37:55
>>233
はい、当初はそのイメージでした。
基本解析フォーマットをつくり、そのフォーマットをコピーしたものに基礎データを入力して、基礎データとそのデータを解析したものを日ごとに蓄積していく、
しかし、あとから解析項目や計算方法を変更する必要が出てくると、それまでのフォーマットに基礎データを貼り付けたものも全て個別に変更しなければ、
解析項目や解析結果の統一性が保たれなくなってしまいます。
そこで思い浮かんだのが>>226の方法でした。

235:名無しさん@そうだ選挙にいこう
08/05/11 14:38:29
>>231
関数で今までいけてるなら関数でなんとかなるよ
あとこのスレの質問者が言う複雑っていうのはいつもそれほどでもないんだよな

236:名無しさん@そうだ選挙にいこう
08/05/11 14:40:38
>>234
当初のイメージ通りがいいね。
シートからデータを分離しよう。

237:名無しさん@そうだ選挙にいこう
08/05/11 14:47:58
>>235
そうだな。
関数でできない処理だったら最初から関数では実現できない。
データが複数かどうかはVBAを使う基準にはならないはずだ。
>>234
単純に考えてみて。

238:226=228=231=232=234
08/05/11 15:17:05
>>235-237
え~と、ちょっと誤解されているフシもある気がしますが、、、
私が求めているのは、解析項目の多さや演算内容の複雑さに困っているからなんとかしたいというよりは、
解析項目や演算内容を変更した場合の対処のしやすい方法です。
データの解析処理(集計・演算等)自体は問題なく行えています。
問題はその解析方法がまだ不確定的で、データを検証しつつ修正を加えていく必要性があるということです。

解析とデータを切り離すかどうかとか、VBAを使うべきかどうかは、
解析方法変更後にそれまでに蓄積してある解析結果を修正するために、
1枚1枚のシートを個別に手作業で修正する手間をなくせるかどうかという点にかかっていると思います。

239:名無しさん@そうだ選挙にいこう
08/05/11 15:19:39
>>238
ちなみに例えばどんな計算があるのか教えてくれない?
集計,平均,他には?

240:226=228=231=232=234=238
08/05/11 15:32:28
>>239
四則演算以外に関数自体は極めて初歩的なものしか使ってなく、SUM、IF、COUNT、それらの複合程度ですが、

基礎データ→条件分岐→集計→条件分岐→集計・・・

の繰り返しみたいな感じで、条件分岐のところにそのシート上の他の部分の演算結果や全体データの集計値をフィードバックしたりしています。
解析方法が変更されれば当然そのシート上の演算結果や全体の集計値も変わってくるので、それらを参照している各シートの計算式にも影響が出てきます。

241:名無しさん@そうだ選挙にいこう
08/05/11 15:38:49
>>240
こんなイメージを持ったんだけど正しいかな?

基礎データから条件分岐で男性だけを集計する。
男性だけの集計結果からさらに18才以上の人を集計する。
今度は18才以上の女性を集計しないといけない。計算式を変更しなくちゃ。

242:名無しさん@そうだ選挙にいこう
08/05/11 16:01:36
>>226
シートのグループ化で全て解決する気がしなくもない

243:226=228=231=232=234=238=240
08/05/11 16:09:35
>>241
ほぼビンゴですw
条件分岐に関してはお察しの通りですが、作業全体を極めて単純に模式化すると以下のような感じです。

シート:4月1日
項目|数|当日比|全体比
 赤 |2| 40%| 40%
 白 |3| 60%| 60%
 計 |5| 100%| 100%

シート:4月2日
項目|数|当日比|全体比
 赤 |1| 20%| 30%
 白 |4| 80%| 70%
 計 |5| 100%| 50%

     ・
     ・
     ・

ここで集計項目に「青」を追加したり、
「全体比」の計算方法を「当日数/全合計数」から「当日数/色ごとの全合計数」に変更する、
といった必要が出てくると、項目も計算式も変更しなければなりません。
こういった一連の作業を効率化したい、
つまり、基本フォーマットを変更すれば、それまでのシートに埋め込まれている計算式にも反映される、
というようなことをしたいと思いました。
項目を変更するのはかなり大掛かりなことになると思うので、
きっと解析とデータを完全分離する必要があるのではないかと思いますが、
計算式の変更だけなら、なにか方法があるのではないかと思って、>>225を投稿した次第です。

244:242
08/05/11 16:12:44
×>>226
>>225

例で行くと、
シートAとシートBをグループ化し、
シートAのA3セルに「=A1+A2」と入力すると
シートBのA3セルにも「=A1+A2」と入る

フォーマットが全く同じであり、かつ別シートを参照しないのであれば
これでいける

245:名無しさん@そうだ選挙にいこう
08/05/11 16:23:47
>>243

日付  |項目 |数|
4月1日| 赤 |2|
4月1日| 白 |3|
4月2日| 赤 |1|
4月2日| 白 |4|

日付ごとにシートをわけるのではなく、こういう形式に変更しなさい。
そして「ピボットテーブル」で検索してみること。
「ピボットテーブル 比率」も検索すること。
>>244のアドバイスにはお礼だけ言っときなさい。

246:名無しさん@そうだ選挙にいこう
08/05/11 16:27:35
ピボットテーブルで処理できる内容かどうかは分からんが、
どういう方法でやるにせよ元データは>>245の形になってた方がいいやね。
ただ過去の蓄積データがたくさんあるようだと移行するのがちょっと面倒か。
VBA使えば簡単に出来るんだろうけど。

247:洋子♪
08/05/11 16:29:48
>>172 ありがとうございます。
   >>168 の件ですが、作業列を使うのは良いのですが
   条件の組み合せの数が多いので・・・・
   SUMPRODUCTだと、セルの数ではなくて
   合計が出てしまうので。。。。。 
 
  IF(AND・・・・ 等で、抜きだして行くしか
  方法はないのでしょうか・・・

 

248:名無しさん@そうだ選挙にいこう
08/05/11 16:39:06
>>247
=SUMPRODUCT((A2:A30=2)*(B2:B30=3))
でいけたけど

249:243
08/05/11 16:49:40
>>244
なるほど!それはもっとも簡便な方法かもしれませんね。
早速簡単なデータを作って試してみましたが、フォーマットが統一されていれば、確かにいけそうかもしれません。
ただ、「別シートを参照しないのであれば」というのはどういうことを意味しているのでしょうか。
現在使っている各基礎データシートには、別のシートのデータを参照している部分があります。
あと、シートを作業グループ化すると、共通項目以外の個別データの部分を書き潰してしまうことがあるのが気になるところですが、後で少し検討してみたいと思います。
ひとまずはありがとうございます。

>>245
1日ごとのシートは、基礎データだけで15列×75行の行列配列が必須で、その基礎データをそのシート上で解析している領域も含めると26列×120行になっています。
したがって残念ながら基礎データをご示唆いただいたような形式に変更することは事実上不可能と思われます。
あと、できればそのような上から目線はやめていただければと思います。

>>246
上記の通り、日付ごとのデータを1枚のシート上にまとめることは難しいですが、ピボットテーブルについてはちょっと検討してみたいと思います。

250:名無しさん@そうだ選挙にいこう
08/05/11 16:53:35
>>249
>1日ごとのシートは、基礎データだけで15列×75行の行列配列が必須で、その基礎データをそのシート上で解析している領域も含めると26列×120行になっています。
>したがって残念ながら基礎データをご示唆いただいたような形式に変更することは事実上不可能と思われます。

小さなデータじゃないか。安心してピボット使ってくれ。
上から目線に感じたなら失礼した。

251:名無しさん@そうだ選挙にいこう
08/05/11 16:56:31
>>249
とりあえずサンプルの4行を入力してみてくれ。
日付  |項目 |数|
4月1日| 赤 |2|
4月1日| 白 |3|
4月2日| 赤 |1|
4月2日| 白 |4|


252:名無しさん@そうだ選挙にいこう
08/05/11 17:32:48
>>250
1日1日のデータは、物理的には1枚のシートに全て収まる大きさではありますが、問題はその構造です。
基礎データは行列配列のまま並べていくとしても、その基礎データを解析したデータも一部行列配列を要しているので、
それらも含めてピボットテーブルのデータベースとして整列させるのはかなり難しい気がします。
基礎データ全体の解析結果を知りたいのはもちろんですが、1日ごとの解析結果も把握したいと考えているので、
どのような形でピボットテーブルに適応させられるのかはさっぱり見当がつきません。

>>226 >>229-230 >>233 >>235-237 >>239 >>241-242 >>244-246 >>250-251
少しだけ方向性は見えてきたので、ひとまずシートのグループ化とピボットテーブルについて検討してみたいと思います。
レスをいただいた多くのみなさん、ありがとうございました。
また壁にぶつかったり、うまく解決できたりしたら、改めて報告させていただきたいと思っています。

253:名無しさん@そうだ選挙にいこう
08/05/11 17:35:39
>>252
解析部分はいらんよ。捨ててしまうといい。
基礎データだけ使うの。
とりあえずサンプル入力してみてくれよ。
日付  |項目 |数|
4月1日| 赤 |2|
4月1日| 白 |3|
4月2日| 赤 |1|
4月2日| 白 |4|


254:名無しさん@そうだ選挙にいこう
08/05/11 17:41:00
>>252
>1日ごとの解析結果も把握したいと考えている
出来るよ
>どのような形でピボットテーブルに適応させられるのかはさっぱり見当がつきません。
回答者は細かいところに差があれど、全員見当ついてるぜ

255:252
08/05/11 17:43:00
>>253
サンプルは入力しましたし、ピボットテーブルも作ってみました。
もしかしてここでご指導いただけるのでしょうか?
でもそれだと他のみなさんにご迷惑がかかるので、いかがいたしましょう?

256:名無しさん@そうだ選挙にいこう
08/05/11 17:43:10
データの構造によっては15列×75行のデータを15*75=1125行のデータに展開する必要があるかも。
そうするとExcel2003までだったら1シートに2ヶ月分のデータしか入力出来ないな。
そこまでしてピボットテーブルにこだわる必要があるかどうかは具体的な分析内容が分からんと何とも言えない。

257:名無しさん@そうだ選挙にいこう
08/05/11 17:49:13
>>255
質問スレッドなんだから回答書いてあたりまえだろう?いちいち発言がめんどくさいぞおまえ。
例えば
日付を行のフィールド
項目を列のフィールド
数をデータアイテムとしてみて。
そしたら数の合計が計算されたでしょ?
     赤  白  総計
4月1日 2  3  5
4月2日 1  4  5
総計   3  7 10


258:名無しさん@そうだ選挙にいこう
08/05/11 17:54:13
>>256
分析内容は>>243を想定するしかないんじゃないの?

259:名無しさん@そうだ選挙にいこう
08/05/11 18:04:06
>>255
合計が出せたら今度は、
ピボットテーブルの「フィールドの設定」→「オプション」→「計算の種類」→「列方向の比率」
そしたらできあがり。
     赤   白   総計
4月1日 40% 60% 100%
4月2日 20% 80% 100%
総計   30% 70% 100%


260:255
08/05/11 18:06:02
>>257
いや、質問スレッドでここまで懇切丁寧に付き合っていただいたことが初めてで。
たいていははじめの糸口やヒントだけで、あとは自分でなんとかしろって感じだったので。。。

ご示唆と同じピボットテーブルはできましたが、
実際には、「赤」「白」といった項目が「赤・四角・大」「白・三角・小」のように、
「色」×「形」×「大きさ」×・・・といった複数次元のパラメータを持っており、それが十数種類もあります。
デフォルトのように1日のデータが「赤・四角・大・・・」「赤・四角・中・・・」のように1行に並べられてしまうと、
望んでいる体裁にまとまるのかというところが全然見通したっていません。

261:名無しさん@そうだ選挙にいこう
08/05/11 18:09:18
>>260
行のフィールド、列のフィールドどちらも複数の項目を与えられるよ。

262:名無しさん@そうだ選挙にいこう
08/05/11 18:12:10
>>260
まず、完成の形をどういう風にしたらわかりやすいのかとか考えて、
それにするためにどうしたらいいのかを考えるのがイイかもな

263:名無しさん@そうだ選挙にいこう
08/05/11 18:15:40
>>260
まず元のデータはこうする。
日付 色 形 大きさ 数
4月1日 赤 四画 大 2
4月1日 白 三角 中 3
4月2日 赤 丸 中 1
4月2日 白 三角 小 4


264:名無しさん@そうだ選挙にいこう
08/05/11 18:17:23
>>260
行のフィールドには日付
列のフィールドには色,形,大きさ
データアイテムは数


265:260
08/05/11 18:18:45
>>261-264
みなさんありがとうございます。
わかりました。
ピボットテーブルのなんたるかをもう少し学習したいので、少し時間をください。
ある程度理解してきたら、報告しに戻ってきます。

266:名無しさん@そうだ選挙にいこう
08/05/11 18:19:20
>>260
赤計とか白計みたいな小計がうっとうしかったらそこを右クリックして「表示しない」にする。


267:名無しさん@そうだ選挙にいこう
08/05/11 19:33:01
>>265
クロス集計程度ならすぐに把握できるだろうけど、その次はちょっと大変かもしれない。
ここは独学にこだわらず、実際のデータとやりたいことを省略せずにそのまま書いて
回答をもらった方が確実じゃないかと思うぞ。

268:名無しさん@そうだ選挙にいこう
08/05/11 21:16:31
【1 OSの種類         .】 WindowsME
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 複数条件で検索 VBA excel
担当|.コード|金額|
─|─|─|─
山田|    |    |
─|─|─|─
売上|1111| 10 |
─|─|─|─
売上|1112| 20 |
─|─|─|─
経費|1113| 31 |  
─|─|─|─
経費|1114|    |
─|─|─|─
    |    |    |
─|─|─|─
鈴木|    |    |
─|─|─|─
売上|1111| 12 |
─|─|─|─
売上|1112| 22 |
─|─|─|─
経費|1113| 31 |  
─|─|─|─
経費|1114|    |
─|─|─|─
    |    |    |
以下続く…
こんなシートがある時に各担当毎のコードの1111と1112だけを抽出したいのですが、どのような関数orVBAでやれば効率が良いでしょうか?

269:名無しさん@そうだ選挙にいこう
08/05/11 21:22:22
EXCELでよく書類を作るのですが、セルからハミ出していて印刷されないことがあります。
プレビューでチェックしていますが、どうしても漏れがでてしまうので
もし、セルからハミ出して印刷されない部分があればチェックしてくれるような
アドオンや機能はありませんか?

270:名無しさん@そうだ選挙にいこう
08/05/11 21:24:14
>>268
ずいぶん個性的な表だなあ。
レイアウトは誰が決めたの?

271:名無しさん@そうだ選挙にいこう
08/05/11 21:32:51
>>270
会社の勝手に出てくるCSVファイルです。
dbとして致命的ですよね…。

272:名無しさん@そうだ選挙にいこう
08/05/11 21:36:34
>>271
なかなかやっかいだな。
各担当者ごとに必ず4行なの?

273:名無しさん@そうだ選挙にいこう
08/05/11 21:39:13
>>272
それが違うんです。
5行だったり6行だったり場合によっては10行ぐらいあります。
さらに日によって担当者の増減もあります。
やっかいです…。

274:名無しさん@そうだ選挙にいこう
08/05/11 21:40:41
>>273
担当者の間は必ず一行あいてる?

275:名無しさん@そうだ選挙にいこう
08/05/11 21:44:21
>>274
はい。必ず一行だけあいてます。

276:名無しさん@そうだ選挙にいこう
08/05/11 21:45:12
>>268
まずは作業列を作ってVBAで正規化する。
ワークシート関数だけでも不可能じゃないけど手間がかかりすぎる。
正規化というのは、この場合、具体的にはすべての行に担当者名をコピーしていくこと。

担当|.コード|金額|担当
─|─|─|─
山田|    |    |
─|─|─|─
売上|1111| 10 |山田
─|─|─|─
売上|1112| 20 |山田
─|─|─|─
経費|1113| 31 |山田 
─|─|─|─
経費|1114|    |山田
─|─|─|─
    |    |    |
─|─|─|─
鈴木|    |    |
─|─|─|─
売上|1111| 12 |鈴木
─|─|─|─
売上|1112| 22 |鈴木
─|─|─|─
経費|1113| 31 |鈴木  
─|─|─|─
経費|1114|    |鈴木
─|─|─|─

空白の行を手がかりとして、文字列のコピーをしていく。
ここまでできたら、あとは好きな方法で抽出すればいい。

277:名無しさん@そうだ選挙にいこう
08/05/11 21:47:36
>>276
まあそれが妥当だろうな。

278:名無しさん@そうだ選挙にいこう
08/05/11 21:48:32
>>276
ありがとうございます。
何とか頑張ってみます。
お手数おかけしました。

279:名無しさん@そうだ選挙にいこう
08/05/11 21:49:41
できれば表を作り直した方がいい。
VBAを使えばすぐできる。
こんなのが理想的。

─|─|─|─|─
コ-ド|1111|1112|1113|1114
─|─|─|─|─
山田|  10|  20|  31|
─|─|─|─|─
鈴木|  12|  22|  31|
─|─|─|─|─

こういう表なら抽出も集計も自由自在にできるようになる。

280:名無しさん@そうだ選挙にいこう
08/05/11 21:50:13
>>276
D2に山田
D3に=IF(A3="","",IF(A2="",A3,D2))
あとはD3を下にオートフィル
そしてB列に「1111または1112」という条件でオートフィルタをかける

見難ければ、B列をEにうつすなりなんなりで
VBA使わずに関数でやろうぜ

281:名無しさん@そうだ選挙にいこう
08/05/11 21:51:07
>>280の二行目は
D2に「山田」と入力するって意味ね
もちろん山田は例えだろうから、実際の表の名前を入れてください

282:名無しさん@そうだ選挙にいこう
08/05/11 21:52:06
>>278
>>279
>>280
皆さん本当にありがとうございます。
自分も詳しくなってこのスレで恩返ししたいです。

283:名無しさん@そうだ選挙にいこう
08/05/11 21:52:51
>>279
君はもうちょっとだな。
>>280
おいうまくやったな。

284:名無しさん@そうだ選挙にいこう
08/05/11 22:00:13
>>280
あっさりできました。
マジで涙がにじんできました。
本当に本当にありがとうございます!!!

285:名無しさん@そうだ選挙にいこう
08/05/11 22:00:23
いちいち「山田」なんて追加しなくても、これでいける。余分なところに名前が入るけど問題ない。
=IF(A2="","",IF(B2="",A2,D1))

286:名無しさん@そうだ選挙にいこう
08/05/11 22:04:29
このスレの回答者は以前とかなりメンバーが入れ替わってるんじゃないか?
まともな役に立つ回答が増えたと思う。

287:名無しさん@そうだ選挙にいこう
08/05/11 22:14:30
おまいら作業列に手間かけすぎ。これでいいじゃん。
=IF(B2="",A2,D1)

288:名無しさん@そうだ選挙にいこう
08/05/12 13:49:04
>>286
何故か平日の方が良回答が多い。
しかもレスが早い。

289:名無しさん@そうだ選挙にいこう
08/05/12 14:08:56
A1セルに外部データ”1”を入力という作業を
A100セル,外部データ”100”まで繰り返す場合
マクロで最初の作業を記述したものに変更を加えることで
EXCELに自動作業させることは可能でしょうか?
VBAはほとんど使ったことがありません



290:名無しさん@そうだ選挙にいこう
08/05/12 14:10:11
Excel 2007でセルに計算式を入力してあるにも関わらず、計算結果が表示されず
計算式そのものがセルに表示されてしまいます。

どこかの設定がおかしいと思うのですが、2007を使い始めたばかりで皆目見当が
付きません。どなたか教えて頂ければ幸いです。
ちなみにExcel 2000ではオプション→表示→数式のチェックボックスをオンにすると
同様の現象が発生していました。

291:名無しさん@そうだ選挙にいこう
08/05/12 14:18:21
>>289
努力次第ですね。
あと、場合によってはテキストエディタの使い方を覚えるといいことがあるかもしれません。

292:名無しさん@そうだ選挙にいこう
08/05/12 14:20:15
>>290
Officeボタン→Excelのオプション→詳細設定→計算結果の代わりに数式をセルに表示する

293:名無しさん@そうだ選挙にいこう
08/05/12 14:21:35
>>288
どっかの会社の事務員が仕事中に2ちゃんねるに貼り付いてる

294:名無しさん@そうだ選挙にいこう
08/05/12 14:34:10
>289

「外部データ」の意味にもよりますが多分要求していることは可能です。

>290

セルを右クリック→セルの書式設定→表示形式→標準→OK→F2→OK


295:名無しさん@そうだ選挙にいこう
08/05/12 14:35:51
>>291
EXCELに詳しい人なら可能ということですね
ありがとうございました


296:名無しさん@そうだ選挙にいこう
08/05/12 14:36:46
>294

補足
計算式が文字列セルを参照しているなら=以降を括弧で括ると良い。

297:名無しさん@そうだ選挙にいこう
08/05/12 14:37:02
>>294さんもありがとうございました

298:名無しさん@そうだ選挙にいこう
08/05/12 15:08:03
Excel2002です。宜しくお願いします。

他の人から受け取ったExcelファイルのサイズが2.6MBあったので
余白切り落としなど手を加え、一時的に650kBまで小さくなったのですが
その後の作業中に6.5MBになってしまいました。

どのシートが特にサイズが大きくなっているなど調べる手はあるでしょうか?
またまとめてサイズを小さくする方法はあるのでしょうか。


・かんたんな表から多少複雑な表まで30シートほどのファイルで
ほとんどのシートで他シートの数値を参照していいます。

・このファイルは、最初一太郎で作られた可能性があります。
その後、代々の担当者がシートを増やすなどしてきたと思われます。

・サイズを小さくするためにした作業
余白切り落とし・あるていどの書式統一・不要なセル結合の解除など

小さくしようとしている作業中に650kbまで小さくなり、
その後書式などを主に修正している間に6.5MBになってしまい
わけがわかりません…

299:名無しさん@そうだ選挙にいこう
08/05/12 15:08:43
>>295
たぶんそういう意味ではないと思う。わからないことがあるならもっと聞けばいいのに。
誤解したまま勝手にありがとうございましたと引かれるのは回答者もさみしいもんなんだよ。

300:名無しさん@そうだ選挙にいこう
08/05/12 15:22:50
>>299
2chでは誘い受けは嫌われるよ?

301:名無しさん@そうだ選挙にいこう
08/05/12 15:31:23
誘い受けって何だっけ?腐女子用語?

302:名無しさん@そうだ選挙にいこう
08/05/12 15:52:34
>>298
便宜上シート1~30と名づけて話するね
まずそのファイルはコピーして保存しておく

その後、シート1-15を削除したものと残り16-30を削除したもの
二つを用意して、ファイルに保存
サイズを比べてみる
それで偏りがあれば大きいほうを分割、
ほとんどなければ両方分割・・という風にして行けば
答えが出ると思う



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch