Excel総合相談所 109

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否

▼━関連スレ━━━━━━━━━━━━

Excel VBA 質問スレ Part29
http://toro.2ch.net/test/read.cgi/tech/1364689772/

VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/

【質問不可】Excel総合相談所スレの雑談・議論スレ3
http://toro.2ch.net/test/read.cgi/bsoft/1354358619/

Access VBA 質問スレ Part1
http://toro.2ch.net/test/read.cgi/tech/1328536426/

VBプログラマ質問スレ(Ver.6.0 まで) part62
http://toro.2ch.net/test/read.cgi/tech/1360914852/

▼━前スレ━━━━━━━━━━━━━

Excel総合相談所 108
http://toro.2ch.net/test/read.cgi/bsoft/1362819177/
2名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:05:55.98
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:06:12.81
★ルールを無視すると…
 >>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名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:06:29.77
★ 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名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:06:59.78
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

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

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

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

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||
6名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:07:26.90
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2010についても未確認な項目が多いので変更点が有ればご指摘下さい。

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

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007以降ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7名無しさん@そうだ選挙にいこう:2013/05/22(水) 10:12:59.34
>>1
8名無しさん@そうだ選挙にいこう:2013/05/22(水) 12:20:11.72
>>1
ポニーテールがなんちゃら
9ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 12:54:49.40
新スレおめ☆(^▽^)
10名無しさん@そうだ選挙にいこう:2013/05/22(水) 15:03:38.24
【1 OSの種類         .】 Windows7 64bit home
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
タブと"|"がそれぞれ複数、メモ帳に文字列として入力されています。
それを一気に編集しようとしています。
そのままコピーすると、タブでセルがわかれてしまい、タブが消えてしまいます。タブが消えないようにコピー・ペーストする方法はありますか?

実際の作業は
|氏名(タブ)|電話(タブ)(タブ)|住所(タブ)|
|山田太郎(タブ)|111(タブ)(タブ)東京(タブ)|
|山本じろう(タブ)|123(タブ)(タブ)大阪(タブ)|

このような感じで、500行ぐらいあります。
これを
|山田太郎(タブ)|111(タブ)(タブ)東京(タブ)||ヤマダタロウ(タブ)|
と新規列にふりがなを加えたり、
電話番号と住所が合っているかのチェック、等です。

一行1セルとして、コピー・ペースト、もしくはEXCELで開く方法はありますか?
11名無しさん@そうだ選挙にいこう:2013/05/22(水) 15:34:11.00
>>10です、自己解決しました。
タブをそのまま(タブ)という文字列に置換すれば問題なく作業することができました。
12名無しさん@そうだ選挙にいこう:2013/05/22(水) 15:38:39.86
セル内に文章が入っております。
その中から、特定の文字列で囲まれた部分のみを
別のセルに抜き出す関数はございますか?

例えば、「こんにちは、私は〜〜〜〜〜それでは失礼いたします。」の
「私は」と「それでは失礼いたします。」で囲まれた部分を抜き出す方法です。

お手数ですが、どなたかご存知の方がいらっしゃいましたら
教えていただきますよう、よろしくお願いいたします。
MID関数等でできるかもしれないと試しているのですが上手くいきません。
13名無しさん@そうだ選挙にいこう:2013/05/22(水) 15:49:55.14
=MID(J6,FIND("私は",J6)+2,FIND("それでは失礼いたします。",J6)-(FIND("私は",J6)+2))

J6=こんにちは、私は凄く賢いです。それでは失礼いたします。
14名無しさん@そうだ選挙にいこう:2013/05/22(水) 16:42:25.05
>>13さん
プラスやマイナスは文字数のカウントなのですね
どうもありがとうございます!!
非常に助かります。
15名無しさん@そうだ選挙にいこう:2013/05/22(水) 16:47:12.10
>>13さん
申し訳ございません。
「私は」や「それでは」にあたる文字列に"ダブルクォーテーション"が
含まれる場合はどうしたらいいのでしょうか

初歩的な質問だろうと思いますがすみません。
16名無しさん@そうだ選挙にいこう:2013/05/22(水) 16:52:50.41
""で"になる

私は"賢い" を検索する場合は
私は""賢い"" にする
17名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:01:07.31
お早い対応
どうもありがとうございます

実はHTMLタグの記述を抜き出したく
以下の記述に編集して使用したのですが
上手く動作しなかったようです。
=MID(A1,FIND(""<meta name="description" content=""",A1)+34,FIND(""">"",A1)-(FIND(""<meta name="description" content=""",A1)+34))

抜き出したい範囲の後半の条件が「">」であり
文章中に多数含まれるかもしれません。
18名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:06:06.76
実際には
「<meta name="description" content="」
「">」
に囲まれている部分が抜き出したかったのでした。

色々と対応いただきましてありがとうございます。
19名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:12:44.06
文中に条件がに合致するものが複数出てたら厳しいと思う
VBAじゃダメなのか?
20名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:16:54.76
あ、まてよ
21名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:22:41.92
長くなるからセル分けた

A1=対象文字列

A3=FIND("<meta name=""description"" content=""",A1)
A4=LEN("<meta name=""description"" content=""")
A5=FIND(""">",A1,A3)
A6=MID(A1,A3+A4,A5-(A3+A4))

こんな感じか
22名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:48:16.44
素晴らしいです!
大変おおがかりなものをつくっていただき
ありがとうございます。

VBAについても勉強したいと思っているのですが
なかなか時間がつくれない状況です…。

エクセルを使いこなしてる方って
考えたかが非常に柔軟ですよね。
勉強するにあたってお勧めの本などありますでしょうか?
23名無しさん@そうだ選挙にいこう:2013/05/22(水) 17:54:33.39
大変恐縮なのですが上記の記述
一行にはすることは可能でしょうか?

なるかならないかだけでのお返事でも助かります。
よろしくお願いいたします。
24名無しさん@そうだ選挙にいこう:2013/05/22(水) 18:00:44.11
1行にできるよ
A6の中のA3とかA4とかのセルのアドレスをそれぞれの中身に置換すればいい
A5を置換する時はその中のA3もね
25名無しさん@そうだ選挙にいこう:2013/05/22(水) 18:07:22.85
がんばって編集してみます!
26名無しさん@そうだ選挙にいこう:2013/05/22(水) 19:37:51.38
マクロを勉強しています。
マクロの編集画面で書いたやつをエクセルにコピペして印刷して、
次回書くときの参考にしています。

このとき、SubとかForとかの単語をその都度青くしていますが、
一発で変換とかできますか?

あえて書くまでもないですが、こんな感じで色を付けたいです。
ttp://s1.gazo.cc/up/53834.jpg
27名無しさん@そうだ選挙にいこう:2013/05/22(水) 19:40:34.86
え・・?どうしても印刷したいならスクショ取ってそれ印刷したらいいじゃん?
28名無しさん@そうだ選挙にいこう:2013/05/22(水) 20:21:02.96
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

行列の入れ替えなんですが、複数列ごとに行いたいんです。

例えば、
    A     B
1| 佐藤 | 女  |
2| 田中 | 男  |
3| 鈴木 | 男  |

これを通常の行列入れ替えをすると、
    A     B      C
1| 佐藤 | 田中 | 鈴木 |
2| 女   | 男   | 男   |

という風になってしまいますが、


    A     B      C     D     E     F 
1| 佐藤 | 女  | 田中 | 男  | 鈴木 | 男  | 

という風にしたいのです。

今は、ワードにテキスト貼り付けをして、
改行とタブを置換した後、再びエクセルにテキスト貼り付けをしています。
それか、地道に切り取りと貼り付けです。
何か他にいい方法はないでしょうか。
29名無しさん@そうだ選挙にいこう:2013/05/22(水) 20:21:36.20
>>26
サクラエディタ使うといいよ
http://www.dotup.org/uploda/www.dotup.org4214635.png
こんな感じで自動で色分けしてくれる
30名無しさん@そうだ選挙にいこう:2013/05/22(水) 20:28:59.60
>>28
indirect、と言いたいけど使いこなしてない内は
改行とタブ置換したほうが早いと思う

http://www.dotup.org/uploda/www.dotup.org4214655.png
=INDIRECT("r"&INT((COLUMN()+1)/2)&"c"&IF(MOD(COLUMN(),2)=1,1,2),0)

暇だしツール作ってみようか
31名無しさん@そうだ選挙にいこう:2013/05/22(水) 20:46:20.33
>>28
ttp://www.dotup.org/uploda/www.dotup.org4214707.zip
使い方は
EXCELでセルを選択(上の例だとA1:B3)、コピー
このexeのテキストボックスに貼り付け
改行をタブに置換+全選択は自動でされるので、もう一度コピー
エクセルに貼り付け(自動でタブを基準にセルが分けられる)
32名無しさん@そうだ選挙にいこう:2013/05/22(水) 21:20:28.01
>>30
indirectは初めてです。
試してみます!

>>31
なぜかDLできません。
でもとても作業が捗りそうな気がします!
再度DLトライしてみます。

ありがとうございます!
3326:2013/05/22(水) 21:40:53.33
>>27
バカ?

>>29
はぁ?
34ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 21:49:19.84
>>33
Visual Basicのエディタのままでも印刷できましゅ(^▽^)
ファイル→印刷(^▽^)


あるいは、エクセルのバージョンが分かりませんが、バージョンによってはエクセルにスクリーンショットが付いていましゅ(^▽^)
挿入タブ→スクリーンショット→画面の領域と進みましゅ(^▽^)
そうするとVisual Basicのエディタ画面の一部(必要部分)を画像としてシートに貼り付けることができるのでしゅ(^▽^)
それを印刷すると良いでしゅ(^▽^)
35ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 21:54:24.32
失礼しました(^▽^)

>>26のjpg画像を見るとエクセルのバージョンは古そうでしゅね(^▽^)

キーボードのPrint Screenキーを使って画像を取得してください(^▽^)
3626:2013/05/22(水) 22:30:33.50
>>34-35
だからぁ、スクリーンショットじゃなくてエクセルにコピペしたやつを印刷したいんだよ。
100%で5ページなら、80%に縮小して4ページにしようとか。
セルに色を付けて、マーカー代わりにしようとか、そういう意図だ。

それから、変な顔文字はやめろ!キモい
37ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 22:34:25.41
>>36
お詫び申しあげましゅ(^▽^)
3826:2013/05/22(水) 22:39:55.28
だからぁあああああああああああああああああああああああああああああああああああああああああああああ

変な顔文字はやめろ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 22:45:22.85
>>38
帝京様に尋ねてきました(^▽^)

あなたの希望することはできないそうでしゅ(^▽^)

ぴころの顔文字は(^▽^)で固定でしゅ(^▽^)

スレが荒れるので(^▽^)への苦情は下記のスレへお願いしましゅ(^▽^)


ぴころまいう137
http://ikura.2ch.net/test/read.cgi/denpa/1367580125/
40名無しさん@そうだ選挙にいこう:2013/05/22(水) 22:46:12.85
こういうの?
VBAコードHTML変換
ttp://www.vector.co.jp/soft/win95/net/se265977.html

べつになんらかのエディタでいい気がするけど
41ぴころ ◆lHG3Yzo0a6 :2013/05/22(水) 22:52:32.35
bykinさんのソフトキタ━━━━(。A。)━(゚∀゚)━(。A。)━(゚∀゚)━(。A。)━━━━!!!!
42ぴころ ◆lHG3Yzo0a6 :2013/05/23(木) 00:17:40.79
みんなで精進すべきでしゅ(^▽^)
43ぴころ ◆lHG3Yzo0a6 :2013/05/23(木) 00:27:02.96
このスレは良スレでしゅ(^▽^)

そろそろ寝ましゅ(^▽^)

ε=ε=ε=ε=┏( `0´)┛
44名無しさん@そうだ選挙にいこう:2013/05/23(木) 00:29:24.11
>>34
> Visual Basicのエディタのままでも印刷できましゅ(^▽^)
> ファイル→印刷(^▽^)

その方法だとカラー印刷にならないでしゅよ(^▽^)
45名無しさん@そうだ選挙にいこう:2013/05/23(木) 00:54:03.88
vba2htmlってWin7/64bitで使えないんだよな
4628:2013/05/23(木) 01:25:37.86
>>31
何度か試しているのですが、
私のパソコンがおかしいのか、
ダウンロードをクリックしてもページが更新されるだけです。

よかったらもう一度アップしてもらえませんか?
47名無しさん@そうだ選挙にいこう:2013/05/23(木) 01:27:24.62
>>46
operaじゃ出来なかったけどクロームで出来たぞ
4828:2013/05/23(木) 01:50:56.90
>>47
DLできました!ありがとう。

そしてすごく便利です!!>>31さんありがとうございます!
49名無しさん@そうだ選挙にいこう:2013/05/23(木) 13:54:34.46
【1 OSの種類         .】 WindowsXP SP3
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

【やりたいこと】
名前定義で定義した1列のリストを、
配列のように扱う方法が知りたい

【経緯】
チェック表を作成していて、どこまでチェックが終わったかによってステータスを変化させたい.
A列にチェック項目、B列にチェック欄があり、別シートのステータス一覧を名前定義.
チェック数とステータスが連動しており、2つチェックならステータスの2番目が取りたい

添字を含めた2列のリストとして名前定義してVLOOKUPすれば出来そうなのですが、
もっと簡便なやり方があれば教えてください
50名無しさん@そうだ選挙にいこう:2013/05/23(木) 14:57:36.96
ようわからんけど、A1:A10に「おとまりスケベ」て名前付けてあったとしたら、
index(おとまりスケベ,2)で2行目の値ひっぱれるとかそういうの?
51名無しさん@そうだ選挙にいこう:2013/05/23(木) 18:07:19.50
>>50
なんでおとまりスケベなのかわかりませんが教えていただいた方法でやりたいことが実験出来そうです
ありがとうございました
52名無しさん@そうだ選挙にいこう:2013/05/23(木) 23:17:34.18
エクセル2010を使ってるんだけど、テキストの改行ができない・・・・
一応調べたらテンキーじゃない方のエンターを使えとなってるけど、そもそもノーパだからテンキーのエンターが存在しないわけなんだけどどうすればいいの?
53名無しさん@そうだ選挙にいこう:2013/05/23(木) 23:20:35.46
>>52
Alt+Enter
54名無しさん@そうだ選挙にいこう:2013/05/23(木) 23:21:13.40
>>53
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
マジでthx
55名無しさん@そうだ選挙にいこう:2013/05/24(金) 00:01:30.48
自演乙w
56名無しさん@そうだ選挙にいこう:2013/05/24(金) 00:09:10.82
>>52
シフトエンターでも、編集状態にしてから貼り付けてエンターでもええんやよ
57名無しさん@そうだ選挙にいこう:2013/05/25(土) 00:04:19.29
Excel2003で表に時間をいっぱい入力しています。
入力する値は分:秒です(分秒をコロンで区切り)。それで
305→3:05
1510→15:10
のように表示できるような書式を教えてください。
5857:2013/05/25(土) 00:08:50.93
すいません。表示と書きましたが、あとで、集計等処理があるので
値そのものも分:秒であることが必要です。
59名無しさん@そうだ選挙にいこう:2013/05/25(土) 00:36:24.20
>>57
111の場合、
1:11か11:1かわからないので無理

頭に必ず0を付け、書式を文字列にして0111と入力する
a1=0111
b1=TIMEVALUE("00:"&LEFT(A1,2)&":"&RIGHT(A1,2))
これなら可能
あとはB1で集計すればok

入力する行をそのまま計算できるようにするのはやめておいたほうがいい。
6057:2013/05/25(土) 02:49:11.38
>>59 ありがとうございます。
できました。 m(_"_)m

言い訳。秒は必ず2桁で、
1:11→111 11:1→1101 にしています。
61名無しさん@そうだ選挙にいこう:2013/05/25(土) 07:00:47.22
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
以下のようなデータシートがあります。
   A B C
1日 1 2 6
2日 1 5 1
3日 1   .4
4日 5 6 1
ここから「1〜5までの数値」という検索条件で、「項目名(ABC)」と「数値自体」を抜き出すには
どうすれば良いでしょうか。また実際にはABCの間には文字列等の別データがあります。
それらを無視して抽出する事は可能でしょうか。無理であれば別にそれ専用の表を作るつもりです
62名無しさん@そうだ選挙にいこう:2013/05/25(土) 07:33:07.51
>>61
結果をどういう風に出したいかがよくわからない
63名無しさん@そうだ選挙にいこう:2013/05/25(土) 12:15:25.78
A列のセルに数式を入れたら、B列のセルに( )で表示できますか?

こんな感じ
A列の入力    A列の表示      B
=100+200         300         (100, 200)
=50+120        170       (50, 120)
=1500+900     2,400       (1500, 900)
=70               70          
1550            1,550

※下の2行のB列は表示なし
64名無しさん@そうだ選挙にいこう:2013/05/25(土) 12:17:17.95
誤 A列のセルに数式を入れたら
正 A列のセルに "+" を含む数式を入れたら
65名無しさん@そうだ選挙にいこう:2013/05/25(土) 13:05:13.34
何がしたいんだ?
Aに100、Bに200入力して、Cに=A+Bじゃだめなのか?
6663:2013/05/25(土) 13:21:21.28
何がしたいって・・・
>>63に書いてあるのに読めないバカですか?
6763:2013/05/25(土) 13:29:15.94
>>65のバカでもわかるよーに書くとだな、
A1に =100+200 と入力したら B1セルに (100, 200) と表示させたい。
6863:2013/05/25(土) 13:30:55.78
ちょっと出かけてくるから、夕方までに答えを出しとけよ。
69名無しさん@そうだ選挙にいこう:2013/05/25(土) 13:31:18.67


711 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2013/05/22(水) 00:20:45.51
http://www.amazon.co.jp/o/ASIN/B0076ECI5I/amazon.usa.com-22

MSoffice2010 並行輸入=正規≠海賊

195 名前:[Fn]+[名無しさん][sa
70名無しさん@そうだ選挙にいこう:2013/05/25(土) 14:27:17.46
win7 excel2010 VBA無

ABCDEと5項目あるデータに
70項目分くらいソートをかけると(かけなければいけない)
3行〜20000行くらい変動するのですが
(A3までのデータならB3 C3 D3 E3までデータがある)

上記データにたいして2種類の計算が必要です。
・A1〜A3の合計値(B〜Eも同じ)
・合計値を項目数で割った平均値(例 =A4/3)(B〜Eも同じ)

これを自動で合計値を計算し
さらに項目数をカウントして
合計値をわるような関数はないでしょうか?
2種類の関数が必要になると思うのですが

ヒントだけでもいただけますと幸いです。
よろしくお願い致します。
71名無しさん@そうだ選挙にいこう:2013/05/25(土) 15:22:37.62
ソート?フィルタじゃなくて?
72名無しさん@そうだ選挙にいこう:2013/05/25(土) 16:05:23.99
2つの関数てそれただ平均出してるだけじゃないの?
普通ならaverageで済むしフィルタ視点ならsubtotalでいいんじゃないの?
73名無しさん@そうだ選挙にいこう:2013/05/25(土) 16:29:40.31
>>62
わかりにくくてすいません。簡単に図表にしました
ttp://www.dotup.org/uploda/www.dotup.org4222124.jpg

左上の表が入力で、右上の表が時間の対応表です。
「○日の」「A班が誰で」「時刻がこの時間」という風にして結果を下の表に落としこみたいのです。
ISERROR、FIND、COUNTIFの組み合わせで判定はなんとかなりそうなのですが
該当した人の名前を抜き出す方法が分からない点と
その判定を日毎に表にする=31日x2班分の表が出来てしまう?というネックをどうにかしたいです。
マクロを使えば簡単そうですが、マクロを使えない環境で使いたいので…
7463:2013/05/25(土) 17:49:20.97
ただ今帰宅〜
今日は無能の先生しかいねーのか?
75名無しさん@そうだ選挙にいこう:2013/05/25(土) 17:50:18.74
+だけでいいなら簡単だが
7663:2013/05/25(土) 18:56:32.56
+だけ とは?
77名無しさん@そうだ選挙にいこう:2013/05/25(土) 20:15:57.19
Excel中級者ですがシートは最大何枚まで増やすことが出来るのでしょうか?
78名無しさん@そうだ選挙にいこう:2013/05/25(土) 20:26:21.11
・Excel中級者ならヘルプを読む
・2ch中級者ならテンプレを使う
・PC中級者ならググる

∴どの点で見ても中級者以下
7963:2013/05/25(土) 20:58:22.30
A1セルに =123+1
B1セルに =FIND("+",A1) と入力すると #VALUE! になります。

A1セルを '=123+1 にすると 5 になりますが、 =123+1 の数式で 5 を
出すにはどうすればいいですか?
80名無しさん@そうだ選挙にいこう:2013/05/25(土) 21:06:57.97
2013ならformulavalueで式の文字列取れるからそっから削ってけばいけんじゃない?
古いのは知らん
81名無しさん@そうだ選挙にいこう:2013/05/25(土) 21:15:02.21
>>73
すまん、ちょっと変則すぎて出来そうにない。
どうしても楽したいなら正規化した方がいいと思う。
マクロが使えるならマクロのほうが早いだろう、環境を変えてみたほうが良さげ。

>>79
2013で追加されたformulatext関数でいけるはず
b1=FIND("+",formulatext(a1))
2010以前は知らね。vbaならcells(1,1).formulaで取れる。
82名無しさん@そうだ選挙にいこう:2013/05/25(土) 21:15:18.52
カブッタ/(^o^)\
8363:2013/05/25(土) 21:22:11.53
>>80-81
2010だと #NAME? になりますた。

というわけで、終了・・・ ヲワタ・・・ orz
84名無しさん@そうだ選挙にいこう:2013/05/25(土) 21:26:16.36
おまえってばほんと終わってんな
8535歳の高校生:2013/05/25(土) 21:29:55.72
はぁ? 意味不明
86名無しさん@そうだ選挙にいこう:2013/05/25(土) 21:41:50.87
>>81
そうですか、ありがとうございます
よく見かける感じのシフトチャートを真似て作ってるんですが
やはり1箇所の入力でズボラしようと思うのがダメなんですかねー。
残念ながら環境のほうはどうにもならないので
表記と入力を極力分離して、作業用シートを駆使してやってみようと思います
87名無しさん@そうだ選挙にいこう:2013/05/26(日) 01:43:15.99
>>65
「・・・・・」
88名無しさん@そうだ選挙にいこう:2013/05/26(日) 05:47:37.47
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000&2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

任意のbookから特定の範囲のデータを取得してコピペ(集計)する場合は

・読み込ませたいbookを特定のフォルダ内に置く
・ダイアログを開いてフォルダを選択する

といった感じになるかと思いますが、いずれの場合でもワンアクションが必要になってしまいます
殆どの場合は新規フォルダを作成し直ぐにコピペ(集計)するので、
一番最近に作成されたフォルダを選択したいのですが可能でしょうか?
選択したいフォルダはEドライブ内の「○○年度日報」という大元のフォルダがあって、
その中に入っています
89名無しさん@そうだ選挙にいこう:2013/05/26(日) 08:34:15.48
>>88
何を言ってるのかよくわからないけど
たくさんあるフォルダの中から作成日時が最新のフォルダを特定したいってことなら
フォルダ 作成日時 filesystemobject
でググればいいと思うけどたぶん目的に対する手段が間違ってると思う
90名無しさん@そうだ選挙にいこう:2013/05/26(日) 14:25:12.35
>>86
一応キャプに近いものはできたけど
91名無しさん@そうだ選挙にいこう:2013/05/26(日) 15:27:18.30
>>86 一応書いとくけど、そもそもの入力データをもっと整理することをすすめる

キャプの上の表をSheet1、下の表をSheet2に、仮にあ、い、う、え、おの5人、対応表は適当な位置に例えば
>>Sheet1
W1:#、X1:班、Y1:開始、Z1:終了
W2:1、X2:A、Y2:8:00、Z2:17:00
以下キャプと同様の値

B1:あ、C1:1、D1:2、E1:3
A2:日付、B2:#、C2:班、D2:開始、E2:終了
A3:2013/5/1、B3:1、C3:=OFFSET($W$1,OFFSET(C3,,-C$1),C$1)
D3〜E3:C3をコピーしてセルの書式を時刻"hh:mm"などに設定
B1〜E3をコピーして、F1、J1、N1、R1にはりつけ、名前い、う、え、おを入力
行3を選択して下方向にコピー
A4:2013/5/2、B4:5、、などキャプと同様の値を入れる

>>Sheet2
A1:日付、B1:班、C1:氏名、D1:8:00
A2:2013/5/1、C2:あ
B2:=OFFSET(Sheet1!$A$1,MATCH(Sheet2!$A2,Sheet1!$A:$A,)-1,MATCH(Sheet2!$C2,Sheet1!$1:$1,))
D2:=AND(OFFSET(Sheet1!$A$1,MATCH(Sheet2!$A2,Sheet1!$A:$A,)-1,MATCH(Sheet2!$C2,Sheet1!$1:$1,)+1)<=D$1,OFFSET(Sheet1!$A$1,MATCH(Sheet2!$A2,Sheet1!$A:$A,)-1,MATCH(Sheet2!$C2,Sheet1!$1:$1,)+2)>D$1)
行2を選択して下方向にコピー
C3〜C6:い、う、え、お入力
D列を選択して右側に連続コピー
以降も同様に日付と名前を入力
条件付き書式でTRUEを拾う

オートフィルタでもかけとけば、日付や班、名前でフィルタリング出来る
92名無しさん@そうだ選挙にいこう:2013/05/26(日) 16:57:48.88
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

  A   B   C   D
1 テス1 8:00 10:00 2:00
2 テス2 9:00 12:00 3:00

上のような時刻のテーブルからD列の数字を取ってきたいんですが
 =VLOOKUP(1,テーブル名,5,FALSE)
と入力した場合0になってしまいます。時刻のデータが小数点の状態(0.71643…のような)でも構わないのですが
0になってしまうのがよくわかりません。
試したこととしてはテーブルの中のデータを検索値と揃えるように
標準、文字列、数値、時刻など変更してみる。列番号を色々変更してみる。
fxボタンから値の中身を確認するなどです。この場合1、テス1、0、0、0となっており
やはり望む状態にはなっていませんでした。よろしくお願いします。
93名無しさん@そうだ選挙にいこう:2013/05/26(日) 17:25:02.63
>>92
セルの書式を時刻"h:mm"などに設定
94名無しさん@そうだ選挙にいこう:2013/05/26(日) 17:33:42.43
>>92 数式を入れたセルの書式が「数値」とかになってるんじゃない?
95名無しさん@そうだ選挙にいこう:2013/05/26(日) 18:47:13.32
>>92
実際のデータ範囲はどこよ
=VLOOKUP("テス1",A1:D2,4,FALSE) とやりたかったとエスパーしてみる
96名無しさん@そうだ選挙にいこう:2013/05/26(日) 19:14:34.83
>>92
VLOOKUPの式がおかしいよ
9792:2013/05/27(月) 06:58:20.29
みなさんありがとうございます
>>93
その状態になっています
>>94
数値等も試してみましたがダメでした
>>95
失礼しました、アルファベットの位置がおかしいのと
検索範囲は名前じゃなく番地で書くべきでした
 A B C D E 列
1 1 テ1 8 10 2
2 2 テ2 9 12 3

で、行番号の他にIDが用意してあります。なので=VLOOKUP(1,テーブル名,5,FALSE)で
テーブル名の所が$A$1:$E$2ということです。VLOOPUPの検索値の「1」は
他の場所の値を参照しているのですが、そのあたりが原因なのでしょうか
一応その場所の値の形式も対応するよう色々変えてみたりはしたのですが…
98名無しさん@そうだ選挙にいこう:2013/05/27(月) 07:54:11.56
>>97
テーブル名が間違ってるか、検索する値がなにかおかしい
まず
=VLOOKUP(a1,a1:e1,5,FALSE)
これはいけると思う。これで無理なら範囲の指定が間違っている。別のシートか?

=VLOOKUP(a1,テーブル名,5,FALSE)
テーブル名が合っていればこれも通る。ここでつまずいたらテーブル名が間違っている。
カンで答えると挿入や削除でテーブルの位置がずれていると思う。

=VLOOKUP(1,テーブル名,5,FALSE)
ここまでくれば検索する値しかない。恐らく書式設定か、A1の値が文字列になっている。
A1=F1
で、文字列の設定になっているなら
A1=F1*1
としてみて
99名無しさん@そうだ選挙にいこう:2013/05/28(火) 16:29:34.40
>>98
亀レスすみません。回答ありがとうございます。
3パターンともテストしてみましたが、得られる回答が一様におかしなことになります。
おそらく検索値、範囲、型はあっていて列番号でおかしいデータが入ってきています。
列番号が「1」=「1」で正解。「2」=「テ1」で正解。「3」=「0」。「4」=「0」。「5」=「8」で3列目が。「6」=「0」。
念のため非表示列がないかの確認はしましたが当然ありません。
さっぱりわけがわからない状態です・・・
10092:2013/05/28(火) 16:40:39.55
書き込みを見直してようやく理由がわかりました
実際の行番号が数百番台なので自分でもすっかり忘れていましたが
A列が3セルをマージ、B列が2セルをマージしていたんです。
VLOOKUP関数では表示上のセル数ではなく厳密な列数を見ていると言うことなんですね・・・

マージしてるかどうかなんて回答して下さってる皆さんには分かるはずがない
大変失礼しました。ご回答下さった皆さんありがとうございました
これですっきり作業が出来ます
101名無しさん@そうだ選挙にいこう:2013/05/28(火) 20:31:06.05
一つのセルに2行のデータがあります。
これを1行のデータに直すにはどうすればいいですか?
エクセル2010です。
102名無しさん@そうだ選挙にいこう:2013/05/28(火) 20:47:22.68
clean
103名無しさん@そうだ選挙にいこう:2013/05/28(火) 21:23:26.17
>>101
対象のセルをダブルクリック(またはセルを選択した後にF2キーを押下)
改行の位置までカーソル移動
Deleteキーを押下
Enterキーを押下
104名無しさん@そうだ選挙にいこう:2013/05/29(水) 20:18:22.88
【1 OSの種類         .】 Windows7
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否 

Sub DRINK()
'
' zaiko Macro

ActiveCell.FormulaR1C1 = "='zaiko'!R[142]C[658]"
Range("J5").Select
Selection.AutoFill Destination:=Range("J5:J71"), Type:=xlFillDefault
Range("J5:J71").Select
ActiveWindow.SmallScroll Down:=-27
End Sub

よろしくお願いいたします。
zaiko'!R[142]C[658]
(セルYR147YR213)に集計した数値があり、今日はJ5からJ71に張り付けました。
明日は("K5:K71")明後日は(&rdquo;L5:L71&rdquo;)で同様のオートフィル&値の貼り付けを行いたいのですが
相対参照ですと、固定の集計セル位置zaiko'!R[142]C[658](セルYR147YR213)が
1行ずれて貼り付けされてしまい困っております。
105名無しさん@そうだ選挙にいこう:2013/05/29(水) 20:32:01.14
>>104です。
excel2010です。
アドバイス宜しくお願いいたします。
106名無しさん@そうだ選挙にいこう:2013/05/29(水) 23:50:05.33
またおまえかw
107名無しさん@そうだ選挙にいこう:2013/05/30(木) 00:07:49.70
>>104
値の貼り付けなら相対参照とかにならんのでは?
108名無しさん@そうだ選挙にいこう:2013/05/30(木) 12:15:44.35
mac excel2011で質問ですが
行と列ごとの数字(Aや1など)が表示されなくなったんですが、元のように表示させるにはどうしたらいいんでしょうか?
109名無しさん@そうだ選挙にいこう:2013/05/30(木) 15:36:50.82
>>108
当方Win版Excel2010なので違ってるかもしれないけど
リボンインターフェースならば、リボンのファイルタブ、オプション、
詳細設定、「次のシートで作業するときの表示設定」のところで
「行列番号を表示する」のチェックを入れる
を、試してみてください。
110名無しさん@そうだ選挙にいこう:2013/05/30(木) 20:00:54.64
>>57さんとよくにた質問です
EXCEL2007を使用してます。
BIからB30ぐらいまでに分:秒を入力します(ただ結果は時間分秒をコロンで区切りたいです)。
B1 0312と入力したら→00:03:12というように表示され
B2 5900→00:59:00
それが40行ぐらい入力して
B41に 足した結果を01:02:12というように合計が表示される方法はないでしょうか?

ですので、A1に数値。B1には計算結果という方法ではなくBだけですべて処理できる方法はないでしょうか?
説明べたですいませんがお願いします
111101:2013/05/30(木) 20:39:56.15
>>103
レスありがとうございます。
セル1つならそれでいいですが、元の資料からデータを
更新するたびに、500ヶ所くらい直さなければなりません。
関数とかで出来ませんか?
112名無しさん@そうだ選挙にいこう:2013/05/30(木) 20:57:22.63
>>111
http://trendy.nikkeibp.co.jp/article/tec/excel/20040308/107599/
まず、セル内の改行をセル内で使われていない記号などに変換する
スペースでもカンマでも良いし○とか■でも何でも良い

http://www.becoolusers.com/excel/text-to-columns.html
次に、変換した文字を区切り文字に指定して、データを区切る

区切ると2列になるので、ソート用の数字を入れる列を足して
こんな感じで数字を入れてオートフィルする
(C列は数式でA列に+1にしてもいいかもしれない)
10  あ 11 い
20 か 21 き
30 さ 31 し

C列とD列をカットして、A列とB列の下にペーストして、A列でソートする
113名無しさん@そうだ選挙にいこう:2013/05/30(木) 21:00:26.38
>>111
あああ
いいい

となっているのを

あああいいい

にしたいだけなら、改行を置換する文字は何も指定せずに置換すればいい
114名無しさん@そうだ選挙にいこう:2013/05/30(木) 21:02:14.63
115名無しさん@そうだ選挙にいこう:2013/05/30(木) 21:06:48.65
>>110
時刻は時刻として入力する
03:12
59:00
・・・
=SUM(範囲)
116名無しさん@そうだ選挙にいこう:2013/05/30(木) 22:56:59.01
>>111>>102
のcleanとは、clean関数の意味
117名無しさん@そうだ選挙にいこう:2013/05/30(木) 23:01:02.62
作業セル使えよ
なんおためのワークシートだよアホくせえなあ
118名無しさん@そうだ選挙にいこう:2013/05/30(木) 23:08:42.43
>>115
難しいことができないので、その方法がかしこいですね。
ありがとうございました。
119名無しさん@そうだ選挙にいこう:2013/05/31(金) 00:45:13.01
>>101
単純に(文字検索機能の)文字置き換えを使用する
検索文字に部分には、ctrl+j を押して
置き換え文字には何もいれない(null) あるいは スペースで全置換えすればいい
120名無しさん@そうだ選挙にいこう:2013/05/31(金) 00:49:35.79
>>110
シート全選択して全置換えすれば、5秒でおわるからやってみて。
投稿見たときから、書いてあげようと思ったんだが、
書き込みはじかれて、書き込めなかったんだよ。
121名無しさん@そうだ選挙にいこう:2013/05/31(金) 19:05:55.47
ベストと思える回答が出てるのに、遅出しで、しかも手間が掛かるやり方を書いてるバカって何なの?
 
122名無しさん@そうだ選挙にいこう:2013/05/31(金) 20:25:13.83
>>121
ポリモーフィズム
でぐぐれば
123名無しさん@そうだ選挙にいこう:2013/05/31(金) 20:59:52.58
>>121
・俺みたいに代筆してもらっていれば時間差で後から残念な回答をレスすることもあるし同じ回答をしてしまうこともある
・また外野の判断ではなく質問者の環境に一番マッチする答えがベストであるともいえる。
 それには色々な答えを出して選択させてやるのも良いだろう
124名無しさん@そうだ選挙にいこう:2013/06/01(土) 03:30:44.05
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010・2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

[状況]
CSVで定期的に吐き出されるデータを、Excelシートに落とし込みたいと思っています。
ググってVBAが必要な事を知り、適当なソースをコピーしてテストしてみたところ
最終列の折り返しが位置が行ごとに一つずつズレる、または一行終わった所で終了します。
これは改行がLFであるせいだと判明しました。次いでLF改行に対応したソースで行ったところ
余計なダブルクォーテーションが入ります。これは抽出データの扱い方とカンマ区切りの相性によるものと判明しました
さらにダブルクォートの排除コードを追加した結果、データ型がおかしいとエラーを吐いてしまいます。
宣言が万能型でもストリング型でもエラーを吐きます。

[知りたい事]
CSVをシートに流し込む方法。もしくは後述ソースが何故エラーを吐いてしまうのか?という問題点
また、抽出にやや時間がかかるためもっとうまいやり方等がありましたら…。
なおCSVは9列、LF改行、カンマ区切りです。

長いので続きます。
125124:2013/06/01(土) 03:34:23.16
ソースコードはこんな感じです。

Private Sub Workbook_Open()

Set csvws = Worksheets("抽出") '対象ワークシートの変数定義
csvws.Activate 'ワークシートをアクティブに
ChDir ThisWorkbook.Path 'ファイルのあるフォルダをカレントフォルダに

Dim buf() As Byte
Dim tmp As Variant, tmp2 As Variant, tmp3 As String, tmp4 As Variant
Dim i As Long

Open "cashbook.csv" For Binary As #1
ReDim buf(1 To LOF(1))
Get #1, , buf
Close #1

tmp = Split(StrConv(buf, vbUnicode), vbLf)
For i = 0 To UBound(tmp) - 1
tmp2 = Split(tmp(i), ",")
Cells(i + 1, 1).Resize(1, UBound(tmp2) + 1).Value = tmp2
tmp3 = tmp2 ←試しに宣言を変えてみたがダメ。Cstrも試したがダメ。
tmp4 = Replace(tmp3, """", "") ←これがエラーを吐く
Next i

End Sub


以上、長くなりましたがよろしくお願いします。
126名無しさん@そうだ選挙にいこう:2013/06/01(土) 06:55:15.18
自分でsplitしといて文字列扱いすりゃそらエラーになるよ
splitする前にreplaceすればいいんじゃないの
127名無しさん@そうだ選挙にいこう:2013/06/01(土) 09:50:21.39
>>125
Splitの結果は文字列じゃなくて配列
あとセルにデータを入れてから置換してどうすんの
128名無しさん@そうだ選挙にいこう:2013/06/01(土) 10:22:47.94
excelにリレーショナルデータベースの機能を付加したりする仕組みはないのでしょうか。
例えばある列を選択して他のシートとリレーションさせるみたいなメニュー選べるとか、、。
129名無しさん@そうだ選挙にいこう:2013/06/01(土) 10:24:46.37
ない
130名無しさん@そうだ選挙にいこう:2013/06/01(土) 10:31:36.67
>>128
VBA
131名無しさん@そうだ選挙にいこう:2013/06/01(土) 12:21:29.13
vbaで誰か作ってないかなとか、、、。
132名無しさん@そうだ選挙にいこう:2013/06/01(土) 12:58:45.67
ACCESSつかえばいいじゃん
133名無しさん@そうだ選挙にいこう:2013/06/01(土) 18:00:47.56
【1 OSの種類     】 WindowsXp home
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか   】 いいえ
【4 VBAでの回答の可否 】 否

検索したら似たような質問があったのですが、解決してなさそうだったので
ここで教えていただきたいです。

シート内に大きな表があります(見出し、数値、数式で埋まっています)
A2セルにその表でのsum関数の数
B2セルにその表でのcount関数の数
C2セルにその表でのif関数の数を表示したいのですがどうやってもうまくいきません

関数を何個使用しているかを表示させていのです
よろしくお願い致します。
134名無しさん@そうだ選挙にいこう:2013/06/01(土) 19:19:35.11
http://excel-qa.up.seesaa.net/image/1kimatu_siken.gif
このような定番の表で国語とかそれぞれの項目に
国語1 国語2 ・・・ 国語50 と50項目のバリエーション情報を記録する必要がある場合
どのように並べるといいのでしょうか?

国語・算数それぞれの箇所の左に50種横並びに列を追加するのが定番でしょうか?
そうすると表がとんでもなく横長になります 
時には国語500まであるような場合もあり表があふれたりしないか心配です。

国語 算数それぞれを別表にする手も考えましたが
入力に時間がかかりミスも起こりそうです。

プロの方宜しくお願い致します。
135名無しさん@そうだ選挙にいこう:2013/06/01(土) 19:30:24.64
入力と出力を同時にやろうとするからいけない
入力は 氏名、科目、点数の3列
出力はピボットテーブルで
136134:2013/06/01(土) 19:33:36.06
>>134
>それぞれの箇所の左に→右でした。

>>135
ピボットキタ−!
使ったことが無いのですが挑戦してみます。 ありがとうございます。
137124:2013/06/01(土) 21:54:31.25
>>126-127
プログラムのプの字も分からない素人なもので、すみません
なるほどと思うばかりです。
スプリットの位置を変更し文字列の型に変更してみたのですが、今度は「配列がありません」となります
これはつまりどこかで入れ込みに失敗するか分割に失敗しているのでしょうか

〜略〜
Dim buf() As Byte
Dim tmp As String, tmp2 As String, tmp3 As String
Dim i As Long

Open "cashbook.csv" For Binary As #1
ReDim buf(1 To LOF(1)) '---(1)
Get #1, , buf '---(2)
Close #1

tmp = Replace(buf, """", "")
tmp2 = Split(StrConv(tmp, vbUnicode), vbLf) '---(3)
For i = 0 To UBound(tmp2) - 1
tmp3 = Split(tmp2(i), ",")
Cells(i + 1, 1).Resize(1, UBound(tmp3) + 1).Value = tmp3
〜略〜
138名無しさん@そうだ選挙にいこう:2013/06/01(土) 22:14:25.39
>>133
2013ならtextformura関数でいけるんだけどな
今考えた手順は回りくどいけど、これでいいなら使って
1.表を範囲選択
2.置換(ctlr+h)で、sumなどをsumに置換
これでポップアップで置換された個数が出る
>>137
配列わからんか。タブンぐぐって勉強した方がいい
Sub W()
Dim tmp As Variant
tmp = Split("a,i,u,e,o", ",")
For i = 0 To UBound(tmp)
MsgBox tmp(i)
Next
end sub
簡単に言うと、こんな感じなんだけどな。難しいかな。
139124:2013/06/01(土) 22:23:46.76
>>138
配列というのはA、B、C、Dのように分割したデータを
一括りにしたものという考え方で合ってますよね?
ソースでやっていることなどはなんとなくわかるのですが
自分の環境に置き換えた時エラーが起きてる原因がよく分からないという感じです…
ご指摘いただいた点はtmpの中身を適宜書き換えていって良いという事なんですかね
140名無しさん@そうだ選挙にいこう:2013/06/01(土) 23:10:10.25
>>138
FORMULATEXT関数使えば一気に解決みたいですが、2003しか持ってないんで無理ですね。

置換でなくても検索でも個数は出てきますが、いちいち関数名を入れて検索結果を確認する
という作業になるので、一気にセルに表示させられないかなと思っています
やはり2003までの関数の組み合わせでは無理なのでしょうか、VBAを使えば可能なのかな?
141名無しさん@そうだ選挙にいこう:2013/06/01(土) 23:19:50.87
>>139
>>125の元のプログラムをできるだけ活かして、最小限の修正をするとこうなるはず
変数の型と関数の順番をよく見て
検証してないから動かんかったらすまん

Private Sub Workbook_Open()
  Set csvws = Worksheets("抽出") '対象ワークシートの変数定義
  csvws.Activate 'ワークシートをアクティブに
  ChDir ThisWorkbook.Path 'ファイルのあるフォルダをカレントフォルダに
  
  Dim buf() As Byte
  Dim tmp As Variant, tmp2 As Variant, tmp3 As Variant, tmp4 As Variant
  Dim i As Long

  Open "cashbook.csv" For Binary As #1
  ReDim buf(1 To LOF(1))
  Get #1, , buf
  Close #1

  tmp = StrConv(buf, vbUnicode)
  tmp2 = Replace(tmp, """", "")
  tmp3 = Split(tmp2, vbLf)

  For i = 0 To UBound(tmp3) - 1
    tmp4 = Split(tmp3(i), ",")
    Cells(i + 1, 1).Resize(1, UBound(tmp4) + 1).Value = tmp4
  Next i
End Sub
142名無しさん@そうだ選挙にいこう:2013/06/01(土) 23:21:19.71
tmpとtmp2はStringだったわすまん
143名無しさん@そうだ選挙にいこう:2013/06/01(土) 23:31:59.61
>>139
そうなんだ。あってる。
そして型がなにより大事
tmp(0) はstring型
tmp はstring型の配列
string型と、string型の配列。これは別のデータ型で、互換性は無い。
細胞と、人間、なんて置き換えてもいいかもしれないな。

一応行っておくと、文字列をsplitで分割したものをvariant型に代入するとstring型の配列になる。
144124:2013/06/02(日) 00:59:41.60
>>141
Stringに修正して走らせてみたところReDimのところで「インデックスが有効な範囲にありません」となります
>>143
ありがとうございます!

頂いたアドバイス元にしてもう少し頑張ってみたいと思います
145名無しさん@そうだ選挙にいこう:2013/06/02(日) 01:54:29.69
Excelの関数を2つ覚えると前に覚えた関数の2つはすっかり忘れてしまっていて
なにやら堂々巡りをしているようなのですが一体どうすれば良いのでしょうか?
146名無しさん@そうだ選挙にいこう:2013/06/02(日) 02:24:42.72
>>144
先頭からCloseのところまではオリジナルのままだから、
ReDimでエラーになるってことは最初からおかしいってことじゃ
147名無しさん@そうだ選挙にいこう:2013/06/02(日) 02:44:14.67
>>145
病院いったほうがいいんじゃ
148101:2013/06/02(日) 10:40:20.43
>>116
無事にできますた!
102は最初からそう書けばいいのに。
114も同様で、111の時点で理解してないことを察してくれればねぇw

んで、マクロでやってみましたが、4行目でコンパイルエラーになり
Cleanのところが反転しました。
Cleanはマクロで使えないんですかね?

Sub 改行を削除()
i = 1
Do While Cells(i, 1).Value <> ""
Cells(i, 2).Value = Clean(Cells(i, 1).Value)
i = i + 1
Loop
End Sub
149名無しさん@そうだ選挙にいこう:2013/06/02(日) 10:45:20.85
>>132
大げさだし小回りが効かないし表が使いにくい。
150名無しさん@そうだ選挙にいこう:2013/06/02(日) 11:16:23.54
>>148
ワークシート関数はこんな感じで使うの
Sub a()
Cells(1, 1) = Application.WorksheetFunction.Clean(Cells(1, 1))
End Sub
151101:2013/06/02(日) 11:36:31.01
>>150
できた!
ありがとございます。
152名無しさん@そうだ選挙にいこう:2013/06/02(日) 23:29:59.88
在庫管理試行錯誤
発注日付、品名→janで割り当て
購入単価のチェックをjanで、抽出して目視
自動で入庫単価のエラーチェック
何かアイデアありますか?
品目数は1000前後です
153名無しさん@そうだ選挙にいこう:2013/06/03(月) 02:20:37.79
access
154名無しさん@そうだ選挙にいこう:2013/06/03(月) 20:31:11.62
A列B列の文字列の中で、半角のカタカナがあったら全角カタカナにしたいんだけど
パイパンにバイブ が パイパンにバイブ になってしまいます。
これを パイパンにバイブ にするにはどこをイジればいいでしょうか?

Sub hankaku()
  a = Range("A1").SpecialCells(xlLastCell).Row
  For j = 1 To 2
    For i = 1 To a
      Cells(i, j).Select
      For K = 1 To Len(ActiveCell.Value)
        If Mid(ActiveCell.Value, K, 1) Like "[ア-ン]" Or Mid(ActiveCell.Value, K, 1) Like "ー" Then
          MOJI = MOJI & StrConv(Mid(ActiveCell.Value, K, 1), vbWide)
        Else
          MOJI = MOJI & Mid(ActiveCell.Value, K, 1)
        End If
      Next K
      ActiveCell.Value = MOJI
      MOJI = ""
    Next i
  Next j
End Sub
155名無しさん@そうだ選挙にいこう:2013/06/03(月) 20:52:45.66
>>154
http://hanatyan.sakura.ne.jp/vbhlp/HanToZen.htm
これみて解んなかったら、解らんところを質問すればいいと思う
156名無しさん@そうだ選挙にいこう:2013/06/03(月) 21:07:18.53
さっぱりワカランw
どこが分からないかって、ほとんど全部がワカランw
そもそも Private Function って何?とかね
157名無しさん@そうだ選挙にいこう:2013/06/03(月) 21:17:59.06
それは基礎から勉強していただかないと、どうしようもないわ
158名無しさん@そうだ選挙にいこう:2013/06/03(月) 21:24:30.26
今宵は低レベルな先生しかいないようでw
159名無しさん@そうだ選挙にいこう:2013/06/03(月) 21:47:00.23
160名無しさん@そうだ選挙にいこう:2013/06/04(火) 00:00:49.68
>>154
jis関数で解決すると思う
161名無しさん@そうだ選挙にいこう:2013/06/04(火) 00:03:10.36
Sub a()
MsgBox Application.WorksheetFunction.Jis(Cells(1, 1).Value)
End Sub
はエラーが出た。
Jis関数って元々アドイン関数かなんかだったのかな。
162名無しさん@そうだ選挙にいこう:2013/06/04(火) 00:44:54.34
jis関数はdbcs関数の日本向けのエイリアスだから、vbaからならdbms関数でいけんじゃない?
163名無しさん@そうだ選挙にいこう:2013/06/04(火) 00:45:49.24
dbmsじゃねーや。dbcs。
164名無しさん@そうだ選挙にいこう:2013/06/04(火) 05:52:35.96
jis関数は半角英数字まで全角にするw
154は、わざわざ1文字ずつ判定してることに気づけば半角カナだけ全角にしたいという意図が読み取れるわけだが・・・
低レベルな先生にレスされると苦労するわなw
165名無しさん@そうだ選挙にいこう:2013/06/04(火) 10:31:37.74
意図も何も、質問にカタカナって書いてるし
ソースもそうなってるやん
166名無しさん@そうだ選挙にいこう:2013/06/04(火) 11:45:41.53
めんどくさい連中だな
>>159にA,B列だけ指定してやればよくね?
試したら>>154お好みの゛ブ゛に変更してたし。
167名無しさん@そうだ選挙にいこう:2013/06/04(火) 19:50:50.76
「パイパン」ってなぁに?
168名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:30:12.68
よろしくお願いいたします

【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

A列に「東京」か「大阪」か「名古屋」を含む20文字ほどの文字列が入力されています
3つの都市名はランダムに各セルに一つずつ、セル内でも決まった位置にはなくいろいろな位置にあります
ここで、A1に東京がある場合B1に東京と、大阪がある場合は大阪と入力されるようにしたいのですが、
どんな関数でどのようにしたらよいでしょうか?
169名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:39:21.16
=IF(IFERROR(FIND("東京",A1),FALSE),"東京",IF(IFERROR(FIND("大阪",A1),FALSE),"大阪",IF(IFERROR(FIND("愛知",A1),FALSE),"愛知","該当なし")))
170名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:39:57.02
愛知じゃなくて名古屋だったな
そこは自分で変換してくれ
171名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:46:24.52
>>170
ありがとうございます
172名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:48:54.07
【1 OSの種類         .】 WindowsXPSP3
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

=A1
=B1
=A2
=B2
=A3
=B3



という感じで、データ参照したいのですが、セルを複数選択して連続データをつくろうとしてのも、思い通りの連続データが生成されません
ご教授頂ければ幸いです
173名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:51:31.99
INDIRECT()
174名無しさん@そうだ選挙にいこう:2013/06/04(火) 21:55:01.05
>>165
お前、バカだなw
175名無しさん@そうだ選挙にいこう:2013/06/04(火) 22:31:51.44
>>172
>>30の式を参照
COLUMN → ROW へ変更すれば使えます
176名無しさん@そうだ選挙にいこう:2013/06/04(火) 22:37:10.78
>>172
C1:=IF(MOD(ROW(),2),OFFSET($A$1,QUOTIENT(ROW()+1,2)-1,),OFFSET($B$1,QUOTIENT(ROW()+1,2)-1,))
下にコピー
177154:2013/06/04(火) 23:21:53.86
>>159


>>160
解決しません。

>>164
そうですね。

>>166
そうそう、それそれ。
で、ttp://excel-ubara.com/EXCEL/EXCEL108.htmlをA〜B列でやるには、どう改造すればいいの?
178名無しさん@そうだ選挙にいこう:2013/06/05(水) 00:40:49.87
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
タイムに関する質問です
あるサイトから 「1:13:2」( *注 1分13秒2です) というタイムをA1に貼り付けB1で秒数に変換したいのですが、
A1に貼り付けた時点で「1:13:02」になってしまいます
これだと1時間13分2秒になっていると思われうまくいきません
B1の秒数の表示は73.2でも732でも構わないので上手く変換する方法を教えて下さい
よろしくお願いします
179名無しさん@そうだ選挙にいこう:2013/06/05(水) 00:43:32.67
表記が悪いだろそれ
1:13:2じゃ誰が見たって1時間13分2秒だ
180名無しさん@そうだ選挙にいこう:2013/06/05(水) 01:44:33.90
>>178
区切り位置で、:を指定してiroiro変換した方がいい気がする
181名無しさん@そうだ選挙にいこう:2013/06/05(水) 02:02:25.41
>>178
たとえば「1:13:2」と「1:13:02」はコピペした時点でどちらも「1:13:02」になってしまう
つまり、そのままだと0.2秒と0.02秒が区別できないい

対策としては、まず区切り位置で区切り記号を : に設定、次にA〜C列の書式を文字列に変更、
次にA列にタイムのデータを貼り付けると、余分なゼロが付かず、そのままA〜C列に元のデータが貼り付く
そしてD列に
=TIMEVALUE("0:"&A1&":"&B1&"."&C1)*24*3600
という数式を入れれば、目的の秒単位のデータ、この場合は73.2に変換できる
182名無しさん@そうだ選挙にいこう:2013/06/05(水) 02:52:56.43
>>177

Sub hankaku()
a = Range("A1").SpecialCells(xlLastCell).Row
For j = 1 To 2
For i = 1 To a
Cells(i, j).Select
For k = 1 To Len(ActiveCell.Value)
If Asc(Mid(ActiveCell.Value, k, 1)) >= 161 And _
Asc(Mid(ActiveCell.Value, k, 1)) <= 223 Then
tmp = tmp & Mid(ActiveCell.Value, k, 1)
If k = Len(ActiveCell.Value) Then
MOJI = MOJI & StrConv(tmp, vbWide)
End If
Else
MOJI = MOJI & StrConv(tmp, vbWide) & Mid(ActiveCell.Value, k, 1)
tmp = ""
End If
Next k
ActiveCell.Value = MOJI
MOJI = ""
Next i
Next j
End Sub


初心者なんで間違えてたらごめんなさい。
最近覚え始めて、ここ見てコード書く練習してます。
183名無しさん@そうだ選挙にいこう:2013/06/05(水) 09:39:27.80
パイパンなら性器表現でもいいいんじゃね

Dim target, reg, rng, result, str, mc

Set target = range("A1:B" & range("A1").SpecialCells(xlLastCell).Row)
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = "([。-゚]+)|([^。-゚]+)"
reg.Global = True

For Each rng In target
 Set result = reg.Execute(rng.Value)
 str = ""
 For Each mc In result
  str = str & StrConv(mc.SubMatches(0), vbWide) & mc.SubMatches(1)
 Next
 rng.Value = str
Next
184名無しさん@そうだ選挙にいこう:2013/06/05(水) 11:32:23.91
>>181
>>180
ありがとうございました
185名無しさん@そうだ選挙にいこう:2013/06/05(水) 17:53:51.22
以下のようなことをしたい時、どのようにエクセルを使えば良いですか?

・会社の海外送金において、通貨別の合計額を集計したいです。
・最終的には、月単位と年単位の通貨別の合計額を集計したいです。
・送金は毎日あり、通貨と送金額を都度記録しています。


以上になります。
日々の送金記録を行うだけで上記2種類の集計表を作ることは可能でしょうか?
アドバイスお願いします!
186名無しさん@そうだ選挙にいこう:2013/06/05(水) 19:04:05.86
>>182
お前は帰化鮮人か。
正式な日本文は句読点の位置が厳格に決まっている。
岡崎洋三 『日本語とテンの打ち方』 を読め。
187名無しさん@そうだ選挙にいこう:2013/06/05(水) 19:31:13.26
>>185
そんな貴方にピボットテーボー
188名無しさん@そうだ選挙にいこう:2013/06/05(水) 22:50:22.25
>>185
sumifを使ってみては
189154:2013/06/05(水) 23:01:55.39
>>182
えーと、試しにやってみましたか?

>>183
どこが性器表現なのかワケワカメですが、うまくいきました。
Set targetは分かるけど、Set reg以下がワカラン・・・
190名無しさん@そうだ選挙にいこう:2013/06/06(木) 00:27:36.09
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

複数のセルにコメントがあります。
これらの表示・非表示を列ごとにできますか?
191名無しさん@そうだ選挙にいこう:2013/06/06(木) 17:32:25.35
>>190 自分のPC(Win7pro Excel2010)で試してみた
いくつかのセルにコメントを設定しておいて
列選択状態で右クリックメニューには「コメントの表示・非表示」メニューなし
列選択状態でリボンの校閲タブには「コメントの表示」はあるものの、
これはシート内のすべてのコメントの表示なので列単位ではない。
列選択ではなく、範囲指定ならいけるか?と思ったけど、範囲選択の最初の
セル(※)だけしか処理対象にならないようだ。
※範囲選択したうち、白いままとなっているセルのこと
以上のことから、VBAで1セルずつ設定していくほかないと思う。
192名無しさん@そうだ選挙にいこう:2013/06/09(日) 16:32:45.51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel203
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否】 できれば不可

次の値を入力したとき、日付と認識されるのはaですが、
全て日付と認識させる方法がありますか?
a 5/5
b 2013/5/25
c 5.5
d 2013.5.5
193名無しさん@そうだ選挙にいこう:2013/06/09(日) 16:35:14.41
え?bも日付になるでしょ?
194名無しさん@そうだ選挙にいこう:2013/06/09(日) 16:43:52.86
>>192
Private Sub Worksheet_Change(ByVal Target As Range)
If InStr(Target.Value, ".") > 0 Then
Dim a
a = Split(Target.Value, ".")
Target.Value = a(0) & "/" & a(1)

End If
End Sub

関数だと作業列になるかね
195名無しさん@そうだ選挙にいこう:2013/06/09(日) 20:18:30.23
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 WindowsXP〜7
【2 Excelのバージョン   】 Excel2007〜2010
【3 VBAが使えるか    .】 初心者です
【4 VBAでの回答の可否】 可


1┃年  代┃月日┃2┃3┃4┃5
A┃昭和50年┃0115┃F┃K┃O┃W
B┃昭和55年┃0515┃F┃K┃O┃E
C┃平成10年┃1123┃G┃K┃O┃R
D┃平成23年┃1205┃H┃L┃T┃Y
E┃平成23年┃0531┃J┃L┃T┃U

上のようにデータベースがあって、それぞれの項目ごとにデータを複数条件で検索するフォームを作成し
抽出したものを別のシートに作成したいです

ご教授ください
196名無しさん@そうだ選挙にいこう:2013/06/09(日) 20:48:31.83
>>195
>それぞれの項目ごとにデータを複数条件で検索するフォームを作成し
>抽出したものを別のシートに作成

をすればいいだけだからな
どこがわからんのか具体的に教えてもらわんとなんとも言えん
まずはマクロの記録から始めてみては?
197名無しさん@そうだ選挙にいこう:2013/06/09(日) 22:39:25.89
>>195
丸投げしたいならVBAスレがおすすめだよ
コーディング代行してる暇な人がいるから
http://toro.2ch.net/test/read.cgi/tech/1370088822/
198名無しさん@そうだ選挙にいこう:2013/06/09(日) 23:52:01.90
セルにコメントがあって、1〜6行に改行されたとき、それぞれの行の内容を
変数に入れるにはどうすればいいですか?

例えば、A1セルにあるコメントが
ABC
あああ
012345
だったら、a = "ABC"、b = "あああ"、c = "012345"と入れたい。

コメントは1〜6行あります。
199名無しさん@そうだ選挙にいこう:2013/06/10(月) 00:15:15.95
改行コードを区切り文字にしてsplitすれば配列が返るだろう
ただし、改行コードが混在している場合もあるので、予め改行コードを統一しておいた方が良いかもしれない
200名無しさん@そうだ選挙にいこう:2013/06/10(月) 00:16:25.48
アタイ阻止
201名無しさん@そうだ選挙にいこう:2013/06/10(月) 01:02:22.41
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

a1のセルに別のsheet名が入力されていてb2にa1を利用してリンクを
張ろうとしています。

=HYPERLINK(INDIRECT("'"&amp;A1&amp;"'!a1"),A1)

と入力しましたが「指定したファイルは開けません」と出てしまいます。
b2をクリックするとリンク先のsheetに飛ぶようにお願いします。
202名無しさん@そうだ選挙にいこう:2013/06/10(月) 01:08:17.60
嫌です
203名無しさん@そうだ選挙にいこう:2013/06/10(月) 01:17:45.33
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

別ファイルの表からセル内容を検索して、そこから左へ列をオフセットさせたセルの値を
表示させたいです。

vlookupだと検索する値が左端にないとだめだと思うのですが、右端にあります。
そこで、match関数とindex関数で式を組み立てたのですが、
外部参照になるためか、match関数がエラーを返してきます。

=index(ファイルA!a1:a100,match(z1,ファイルA!a1:a100,0))

上記のmatch内がエラーとなります。

ファイルAは同時に開いた状態で、同じディレクトリに保存されているファイルです。
よろしくお願いします。
204名無しさん@そうだ選挙にいこう:2013/06/10(月) 01:36:28.26
>>201
http://www.relief.jp/itnote/archives/000998.php
#を頭につけるんだってさぁ
>>202
まぁまぁそう言わず
>>203
シート名が抜けてる気がします
205名無しさん@そうだ選挙にいこう:2013/06/10(月) 01:49:53.50
>>204
すいません、範囲の選択は、直接ファイルAのセルを選択して指定しているので、
シート名もはいっています。
説明が足りなかったです。
206203:2013/06/10(月) 01:55:03.91
>>204
=IF(C10="","",INDEX('C\xxxxxxxx\[xxxxx.xls]xx'!$A$5:$A$10000,MATCH(C10,'C:\xxxxxxxxx\[xxxxxx.xls]xxx'!$AE$5:$AE$10000,0)))
こんな感じです。
C10の値をae列で検索して、該当した行のA列の値を返したいのです。
その参照先が外部参照だとmatch内がエラーとなります。
207名無しさん@そうだ選挙にいこう:2013/06/10(月) 07:27:52.68
自分なら1列右にシフトしてA列にキーを再掲するな
208名無しさん@そうだ選挙にいこう:2013/06/10(月) 11:15:50.29
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

シート上のデータを元にcsvファイルを作りたいんですが
一部で "A","B","C" というようなデータが存在します。
chr(34)とchr(44)を&していけば出来るのですがsplitの逆で
一連の文字列を "(文字列)", で繋ぐような関数や方法って
ありませんか?

よろしくお願いします。
209208:2013/06/10(月) 11:17:40.95
そういえばVBAスレがありましたよね(汗
そっちで質問させていただきます。
210名無しさん@そうだ選挙にいこう:2013/06/10(月) 16:25:19.29
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

縦で印刷すると文字も罫線も印刷されるけど
横で印刷すると罫線しか印刷されません
どんな現象なんでしょうか?

よろしくお願いします。
211名無しさん@そうだ選挙にいこう:2013/06/10(月) 17:29:03.35
>>210 プリンタドライバがおかしいのでは?
すべてのBook、Sheetで同じ症状か
印刷プレビューではどうなるか
印刷の倍率を変えたらどうなるか
文字のフォントを変えたらどうなるか
プリンタドライバは古くなってないか(プリンタメーカーのサイトに新しいものがあるか)
他のアプリケーション(Wordなど)ではどうか などなど
いろいろ試してみてください
212名無しさん@そうだ選挙にいこう:2013/06/10(月) 21:56:02.15
>>210
縦書のこと?
縦書だと2003で文字が消えたりするみたい
http://forums.adobe.com/thread/405372
2010はよく知らない
213198:2013/06/10(月) 22:19:11.15
>>199
色々とググってやってみましたが、コメントが配列にならず、
2つ目のMsgBoxでエラーになります・・・

Sub test()
Dim コメント As Variant, a1 As String
a1 = Range("A1").NoteText
コメント = Split(a1, vbCrLf)
MsgBox コメント(0)
MsgBox コメント(1)
MsgBox コメント(2)
End Sub
214名無しさん@そうだ選挙にいこう:2013/06/10(月) 23:10:25.80
>>213
改行はvblf (文字コード10)
vbcrlfを入力してもvblfに変換されてしまうようだ。
理由は知らんが、セル内改行も確かこれなんだよな。なんだろうな。なんでもいっか。

Sub a()
Range("A1").Comment.Text Text:="a:" & vbCrLf & "ghg"
a1 = Range("A1").NoteText
コメント = Split(a1, vbLf)
End Sub
215198:2013/06/11(火) 18:39:58.12
>>214
それだとエラーが出るけど、vbLfなのはわかった。
んで、コメントが1〜6行あるので動作確認のため書き直したんだけど、
コメントが3行だった場合、4回目のとき矢印の行で
「インデックスが有効範囲にありません」というエラーが出ます。

Sub test()
Dim コメント As Variant, a1 As String
a1 = Range("A1").NoteText
コメント = Split(a1, vbLf)
For i = 0 To 5
If コメント(i) <> "" Then     ←ここでエラーになって止まる!
MsgBox コメント(i)
End If
Next i
End Sub

コメントが3行だったら、こんな感じを想定してるんですが・・・
コメント(0) = "ABC"
コメント(1) = "あああ"
コメント(2) = "012345"
コメント(3) = ""
コメント(4) = ""
コメント(5) = ""
216名無しさん@そうだ選挙にいこう:2013/06/11(火) 19:56:06.36
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

VBAでデータを参照して自動挿入する際
$B$1の形で参照にするようにした時でも計算式が追加分ズレます。
で、名前を定義すれば良いか?とも思ったんですが
次々追加される行(セル)に名前をつけていくのも現実的ではありませんし
列・行に名前をつけてもそこから名前,1のような指定の仕方も出来ないっぽいので意味がなさそうです
どうすればよいでしょうか
217名無しさん@そうだ選挙にいこう:2013/06/11(火) 20:46:04.07
仕様です
諦めてください
218名無しさん@そうだ選挙にいこう:2013/06/11(火) 20:58:40.26
そうですか…
いったん別のシートで計算して、計算結果を元のシートで表示して
対応することにしようと思います。ありがとう。
219名無しさん@そうだ選挙にいこう:2013/06/11(火) 21:11:37.27
何をやりたいのかワカランから答えラレン
220名無しさん@そうだ選挙にいこう:2013/06/11(火) 22:09:30.40
よろしくお願いします。

在庫表に関してです。

シート1に自社の商品在庫一覧があります。


  A      B      C        D
1     商品名    商品名     商品名
2 6/1    50個    100個        70個
3  6/2     -1個     -1個      -2個
4

20合計数



シート2〜10位まで卸先別に同じ商品一覧表があります。

  A     B      C        D
1     商品名    商品名     商品名
2 6/1     3個    5個          7個
3 6/2     -1個      -1個      -2個
4 


卸先の在庫数の変動を、自社の在庫一覧表の合計欄にリンクさせる計算式を教えてください。

自社の抱える在庫数と卸先の抱える在庫数、どちらも管理する表にしたいのです。

シート例がきれいに揃っていなくて見ずらいかもしれませんが、どうかよろしくお願いします。
221名無しさん@そうだ選挙にいこう:2013/06/11(火) 22:14:35.62
>>215
改行の数で配列の要素数が決まるので、こんな感じ
最終的に何がしたいのかよく分からんので書いてほしいものだが
あと、on error resume nextというものもある。場合によってはこれでもよい

Sub test()

Dim a1 As String
a1 = Range("A1").NoteText
コメント = Split(a1, vbLf)

For i = 0 To UBound(コメント)
If コメント(i) <> "" Then '←ここでエラーになって止まる!
MsgBox コメント(i)
End If
Next i
End Sub
222名無しさん@そうだ選挙にいこう:2013/06/11(火) 22:16:33.33
>>220
くしざし計算でいいのかな
http://hamachan.info/excel/kusizasi.html
こんな感じでできるよ
223198:2013/06/12(水) 21:28:51.76
>>221
dくす。
配列自体、普段使わないのでUBoundを初めて知ったw
最終的にやりたいのは、コメントを内容別に書き出すことですが、
それは何とか自力で頑張ってやってみます。

んで、UBoundをヘルプで見たら、次のよーな例がありました。
Dim A(1 To 100, 0 To 3, -3 To 4)

Dim A(1 To 100)なら、変数はA(1)〜A(100)という意味ですよね?
Dim A(1 To 100, 0 To 3, -3 To 4)はどういう意味なんでしょう?
224名無しさん@そうだ選挙にいこう:2013/06/12(水) 22:16:16.36
多次元配列じゃね
225名無しさん@そうだ選挙にいこう:2013/06/12(水) 22:19:54.43
>>223 3次元の配列です。(立方体を連想してください)
ヘルプで「配列−多次元配列の使い方」から一部引用
多次元配列の使い方
Visual Basic では、最大 60 次元までの配列を宣言することができます。
たとえば次のステートメントは、2 次元の 5 x 10 の配列を宣言します。
Dim sngMulti(1 To 5, 1 To 10) As Single
配列を行列とすると、最初の引数は行、2 番目の引数は列を表します。

>>223の「Ubound」の解説部分から引用
次のような配列が宣言されている場合、UBound 関数からは下の表のような値が返ります。
Dim A(1 To 100, 0 To 3, -3 To 4)
ステートメント 戻り値
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
の説明のあるページの先頭部分に
「配列の指定された次元で使用できる添字の最大値を、長整数型 (Long) の値で返します。」
と書いてあるように、1次元部分、2次元部分、3次元部分それぞれの添え字の最大値を戻り値
としているわけです。
なお、添え字の最大値と要素数は異なります。0 To 3−>4個、-3 To 4−>8個なので、
Dim A(1 To 100, 0 To 3, -3 To 4)での要素数は100×4×8=3200個になります。
226名無しさん@そうだ選挙にいこう:2013/06/15(土) 14:15:51.53
来月にマイクロソフトスペシャリストの資格を取ろうと少しずつ勉強してるのですが、
Excel Web Appの利用も試験に出るのでしょうか?
227名無しさん@そうだ選挙にいこう:2013/06/15(土) 14:17:18.31
でない
228名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:24:51.44
>>227
教えていただきありがとうございます。
それなら後は模擬試験の問題集などやれば合格できるかもです!
229名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:44:28.98
Excelのセルに =F35-F29 と言うような数式が書かれたセルをそのまま選択し
違う箇所へ貼り付けようとするとセル番地が自動的にずれますが

これを$をつけずに 値をずらさずにまとめてコピーペーストする方法はないのでしょうか?
値の貼り付け数式を選んでもずれますね。。
230名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:48:00.23
なぜ$をつけないの
231名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:49:00.95
=を’=に置換して文字列として扱えばそのままコピペできそうだ
232名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:50:31.72
>>229
Ctrl+Shift+@ で数式表示させてコピーしメモ帳にはりつけ。
それを再度コピーしてExcelに貼り付け。
233229:2013/06/15(土) 15:51:00.99
もらったデーターが付いていない状態でコピーペーストで複製したい箇所が数百箇所程度あるからです。
>>230
234名無しさん@そうだ選挙にいこう:2013/06/15(土) 15:54:26.12
>>229
数式バーに表示されている「=F35-F29」をドラッグしてコピー

Escキーを押す

貼り付けたいセルを選択してペイスト
235229:2013/06/15(土) 15:59:49.30
>>234
>>232
ありがとうございます。
ひょっとしたら簡単にできる方法があるかと思って聞いてみましたが
無さそうですね、、、
あきらめて$をつけたりしながら1つ1つやってみます。
236ぴころ ◆lHG3Yzo0a6 :2013/06/15(土) 16:03:29.54
ふ〜(^▽^)
237名無しさん@そうだ選挙にいこう:2013/06/15(土) 17:23:01.49
>>229
そういうの、たまにありますよね。

元のセルを右隣にコピー。
今コピーしたセルを右隣に移動。
今移動したセルを左隣にコピーすると、
元のセルと同じ数式に。
238名無しさん@そうだ選挙にいこう:2013/06/15(土) 18:51:22.85
10ケタの注文番号を入力するとき、最初の数ケタは共通しているため
書式のユーザー定義で100000000#と設定しました。
10000000101なら101と入力しています。

101と入力されたセルに、10000000101と値を残すには
どうやればいいでしょうか?
239名無しさん@そうだ選挙にいこう:2013/06/15(土) 19:35:35.68
別のセルで足し算
240名無しさん@そうだ選挙にいこう:2013/06/15(土) 20:23:22.61
単純な小数点の引き算で

1.000001-0.21375 
このぐらいの桁数があり

桁が不揃いな物を計算させていると
で答えの欄にちょくちょく 1E-05 とかとErrorになっている箇所があるのですがこれは一体何なのでしょうか?何故起きるのでしょうか?
241名無しさん@そうだ選挙にいこう:2013/06/15(土) 21:58:11.56
仕様です
諦めてください
242名無しさん@そうだ選挙にいこう:2013/06/16(日) 06:23:14.53
なかっち 動画
http://www.youtube.com/watch?v=z2qK2lhk9O0s



みんなで選ぶニコ生重大事件 2012
http://vote1.fc2.com/browse/16615334/2/
2012年 ニコ生MVP
http://blog.with2.net/vote/?m=va&id=103374&bm=
2012年ニコ生事件簿ベスト10
http://niconama.doorblog.jp/archives/21097592.html


生放送の配信者がFME切り忘れプライベートを晒す羽目に 放送後に取った行動とは?
http://getnews.jp/archives/227112
FME切り忘れた生主が放送終了後、驚愕の行動
http://niconama.doorblog.jp/archives/9369466.html
台湾誌
http://www.ettoday.net/news/20120625/64810.htm
243名無しさん@そうだ選挙にいこう:2013/06/16(日) 12:31:39.72
日々更新される数百行ある以下のようなリストから
A1 10 11 33
A2 12 50 31
A3 11 12 13
 ・
 ・
 ・
別表で任意の1行を引用したい場合

別表に抽出するときに
=A2 を入れるとその後ろの3セルも自動的に
反映されるように仕組むことはできないのでしょうか

=A2 | =B2 | =C2 | =D2 | ←自動反映

元データは日ごとに更新されるため必ず =XY で抽出したいのですが
このように作る事は可能でしょうか?
244名無しさん@そうだ選挙にいこう:2013/06/16(日) 12:54:27.97
むしろ、=A2を入れるんじゃなくて、データのある行番号(この場合"2")を入力すれば
INDIRECTでかんたんにできる
245名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:14:30.24
本当に=A2とかそんなめんどくさい入力するのか?
実際にはデータが入っていてそれを参照したい訳じゃないの?
246名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:35:05.80
>>244
>>245
ありがとうございます
A列のタイトルの項目の数が多く任意でころころ変化する場合があるため
INDIRECTを調べてみましたがざっとみたところでは難しいように見えました、、、
ただ横並びにデータが入力されていると言うルールは絶対なため>>243
の方法をとっていますが
変更回数が多い場合意外と骨の折れる作業であるため質問した次第です。
247名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:49:42.26
>>246
ちょっと待ってろ
248名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:51:00.57
具体的なデータを書いてみ
249名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:58:00.53
>>246
http://www.dotup.org/uploda/www.dotup.org4277138.xlsx.html
こんな感じかな
入力するのは黄色の部分だけ
250名無しさん@そうだ選挙にいこう:2013/06/16(日) 13:59:07.78
行を指定するならG7セルに直接行の数値を入力すればok
(この場合はG6セルは消したほうが良さそう)
251246:2013/06/16(日) 14:49:50.00
>>249
>>250
おおお!やりたい処理はまさにこれです!!ありがとうございますm(_ _)m
完全にあきらめてVBAのコードを書いていましたが、関数の方が全然速いですね。
本当にありがとうございました。


みかんX 10 33 45
りんご2P 11 33 54
タマゴZ 12 22 12
オレンジM 121 22 33

--------------------
Sub Macro1()
Dim 行番号
行番号 = Range("G1").Value

Range("H1").Value = Range("A" & xx).Value
Range("I1").Value = Range("B" & xx).Value
Range("J1").Value = Range("C" & xx).Value
Range("K1").Value = Range("D" & xx).Value
End Sub
--------------------
参考まで。。G1に行数を入力して実行すると行番号のデータを自動記載。
252246:2013/06/16(日) 14:52:58.00
>>251
オット!ミスりました正常に稼動するコードは下記となります。。
Sub Macro1()
Dim 行番号
行番号 = Range("G1").Value

Range("H1").Value = Range("A" & 行番号).Value
Range("I1").Value = Range("B" & 行番号).Value
Range("J1").Value = Range("C" & 行番号).Value
Range("K1").Value = Range("D" & 行番号).Value
End Sub
253名無しさん@そうだ選挙にいこう:2013/06/16(日) 15:18:33.08
>>249
MATCH関数とINDIRECT関数の組合せは色々と便利な応用がききそうですね
仕組みがま完全に理解出来ていませんが勉強してみます。ありがとうございました。
254名無しさん@そうだ選挙にいこう:2013/06/16(日) 21:53:58.47
よかったね
255名無しさん@そうだ選挙にいこう:2013/06/16(日) 22:08:41.29
よかったよ
256名無しさん@そうだ選挙にいこう:2013/06/16(日) 23:11:50.88
質問者じゃないんだけど興味があったので249をDLしたらZIPになってて、
それを解凍するとフォルダが出来てエクセルファイルが無いんだけど、
どうすれば見れるの?
257名無しさん@そうだ選挙にいこう:2013/06/16(日) 23:16:55.66
>>256
自分もなった Excel2003のインストールされたPCでダウンロードするとそうならずに落ちてきて見れた。
258名無しさん@そうだ選挙にいこう:2013/06/16(日) 23:19:48.01
xlsxの実態は中身がxmlのzipだから、どっかで誤判定されたんだろ
たぶん拡張子変えれば普通に開けるようになる
259名無しさん@そうだ選挙にいこう:2013/06/16(日) 23:22:09.90
>>249ですが、>>258さんが正解だと思います。
xlsxの容量が大したことなかったので圧縮せずに上げました。
今後は念のため圧縮してから上げることにします。
260257:2013/06/16(日) 23:22:19.33
>>256
もしくはIE以外のブラウザを使ったのがよかったのかも知れないIEで見た時になった。
261198:2013/06/17(月) 20:56:50.90
>>224-225
dくす。
実際の使用方法が思いつかないけど、言いたいことは分かりました。
262名無しさん@そうだ選挙にいこう:2013/06/18(火) 11:49:54.84
Excel あるある はやく言いたい
263名無しさん@そうだ選挙にいこう:2013/06/18(火) 18:48:30.08
エクセルの練習問題で答えの通りに、
セルK5の数式をセル範囲K6〜K24にフィルハンドルでコピーしたらセルK5はしっかり数字が出てるのに他がアルファベットとか出て文字化け?みたいになってエラーになります。
こういう時はどうしたら正しく数式をコピーできるのでしょうか?対処方法はありますか?
264名無しさん@そうだ選挙にいこう:2013/06/18(火) 19:20:26.71
>>263
まずは下記をご回答ください。
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows**
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード     】 Googleやヘルプでの検索キーワード
>エクセルの練習問題
練習問題の具体的な設問内容など
265名無しさん@そうだ選挙にいこう:2013/06/18(火) 20:28:52.06
>>264
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    】 .いいえ
【4 VBAでの回答の可否】 否

「よくわかるMicrosoft Excel 2010 基礎」と言う本に付属しているCD-ROMあるブックの練習問題をやっています。
そこで問題文に、

「セル【K5】にFCドラゴンの勝点を求めましょう。勝点は[勝利数×勝利ポイント+引分数×引分ポイント]で求めます。
なお、勝利ポイントはセル【J2】、引分ポイントはセル【K2】をそれぞれ参照して数式を入力すること。
次に、セル【K5】の数式をセル範囲【K6;K24】にコピーしましょう。」

と書かれていて、【K5】をアクティブセルにして「=」を入力してからそれぞれのセルをクリックしていき「=D5*J2+E5*K2」でEnterして、
セル範囲【K6;K24】をオートフィル右下ダブルクリックしたら他範囲内のセルが化けました・・・

画像うまく貼れているかわかりませんが・・・
http://uproda11.2ch-library.com/391301fnB/11391301.png
266名無しさん@そうだ選挙にいこう:2013/06/18(火) 20:38:37.34
A1セルに数字の12345があったとき、B1セルに'12345と入れるにはどうしればいいですか?
=CONCATENATE("'",A1)でいけると思ったらダメぽですた・・・ orz
267名無しさん@そうだ選挙にいこう:2013/06/18(火) 20:45:40.15
>>265
自力でやれ(マジで
268名無しさん@そうだ選挙にいこう:2013/06/18(火) 20:52:00.62
>>265
絶対参照
269名無しさん@そうだ選挙にいこう:2013/06/18(火) 20:58:36.84
>>266
="'"&A1
270名無しさん@そうだ選挙にいこう:2013/06/18(火) 21:00:14.23
>>265
=D5*J$2+E5*K$2

J2とK2は参照するとき固定させる必要があると思うのでそういうときは$を入れて固定させます

>>266
じゃ、これで
="'"&A1
271266:2013/06/18(火) 21:05:50.89
>>269,270
書き方がマズーだったかな?
B1セルの書式を標準のまま、文字列の数字にしたいんです。
272名無しさん@そうだ選挙にいこう:2013/06/18(火) 21:17:44.12
>>271
TEXT関数
273266:2013/06/18(火) 21:27:11.48
>>272
=TEXT(A5,"'#") も =TEXT(A5,"'"&A5) もダメぽですた・・・
274名無しさん@そうだ選挙にいこう:2013/06/18(火) 21:41:20.93
>>269でいけるじゃん
275名無しさん@そうだ選挙にいこう:2013/06/18(火) 21:47:21.97
>>271
意味がわからん
単純に文字列に変換したいだけなら =A1&"" みたいなのでもいけるけど

キーボードから '12345 と入力した状態 (確定すると頭の ' が見えなくなる) を数式で再現したいってこと?
それは不可能だけど、根本的に何かExcelの使い方を勘違いしてるとしか思えん
なんのために?まずは理由とか目的を書け
276名無しさん@そうだ選挙にいこう:2013/06/18(火) 22:03:09.39
>>263
練習問題の答えのとおりにやってエラーがでるなら
練習問題に問題があるんだろ
練習問題作ったやつに聞けよアホかw
277名無しさん@そうだ選挙にいこう:2013/06/18(火) 22:04:28.94
>>273
セルの書式は標準、数値は文字列へという条件
=TEXT(A5,0)
でとりあえず小数点以下の数値を扱わない場合はいいと思う(’←これ不要)
表示形式についての細かい事はまずヘルプを参照してください
278名無しさん@そうだ選挙にいこう:2013/06/18(火) 22:04:50.08
つ 牛乳
279名無しさん@そうだ選挙にいこう:2013/06/18(火) 22:16:16.63
別に数値とか文字列とかいちいち変換しなくてもそのまま計算できちゃうし
280名無しさん@そうだ選挙にいこう:2013/06/20(木) 23:49:14.18
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セル一つ一つの中に以下のような記述がされており、この中の数字だけを合計したいと思っています。
各セル毎に、数字が何回出てくるかはバラバラであり、数字は最大で10回出てきます。
数字は必ず半角スペースで挟まれています。

A1 中野 150 新宿 150 中野
A2 新宿 190 東京 190 新宿 代々木 130 千駄ヶ谷
A3 新宿 160 巣鴨 170 板橋 170 巣鴨 150 高田馬場 140 中井 170 新江古田 170 東中野



一発で出すのは不可能と思ったので半角スペースで区切られてる部分だけを
まず別セルにどんどん抽出しようと考えたのですが、
一個目
 =MID(E5,SEARCH("-",E5,1)+1,SEARCH("-",E5,SEARCH("-",E5,1)+1)-(SEARCH("-",E5,1)+1))
二個目
 =MID(E5,SEARCH("-",E5,SEARCH("-",E5,1)+1)+1,SEARCH("-",E5,SEARCH("-",E5,SEARCH("-",E5,1)+1)+1)-(SEARCH("-",E5,SEARCH("-",E5,1)+1)+1))
三個目…で数式の文字数オーバーで駄目になりました。五個も十個もとなると入れ子構造も膨大になりそうです。

「○個目のスペースから○個目のスペースまでを抽出する」
ような方法はありますでしょうか?
或いは、ほかにうまい合計の算出方法がありましたら教えてください。
281名無しさん@そうだ選挙にいこう:2013/06/21(金) 00:27:50.59
>>280
区切り位置→スペースで全データがバラバラになってくれる
282名無しさん@そうだ選挙にいこう:2013/06/21(金) 00:34:22.93
>>281
>「○個目のスペースから○個目のスペースまでを抽出する」
>ような方法はありますでしょうか?
>或いは、ほかにうまい合計の算出方法がありましたら教えてください。
283名無しさん@そうだ選挙にいこう:2013/06/21(金) 00:45:06.96
バラバラにしたあと
=SUM(A1:Z99)
とでもすれば文字セルは無視されて数字セルだけの合計が出る
284名無しさん@そうだ選挙にいこう:2013/06/21(金) 01:56:23.35
285名無しさん@そうだ選挙にいこう:2013/06/21(金) 18:52:26.40
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
VBA初心者です。
テキストファイルからデータを読み込んで
区切り文字で分割するマクロを作りたいのですが
「エラー'62' ファイルにこれ以上データがありません。」が出ました。
ググってOfficeTANAKAの
ttp://officetanaka.net/excel/vba/error/execution_error/error_62.htm
のページにある、以下のソースを試した所エラーが出ました(エラーを試すためのサンプルということですか?)
LoopのあとのLine〜の行をコメントアウトしてみると、エラーは出なくなりますがデータも読み込みません。
テキストファイルの内容に不備がある以外に、考えられるエラーの原因はありますか。

Sub Sample1()
Dim buf As String
Open "C:\Sample.txt" For Input As #1
Do Until EOF(1)
Line Input #1, buf
Loop
Line Input #1, buf
Close #1
End Sub
286名無しさん@そうだ選挙にいこう:2013/06/21(金) 19:44:54.03
>>285 ちゃんとかいてあるでしょ。

テキストファイルを開いて、すべてのデータを1行ずつ取得するには、
┌──────────┐
│Do Until EOF(1)     │
│ Line Input #1, buf  │
│Loop            │
└──────────┘
とします。
287名無しさん@そうだ選挙にいこう:2013/06/21(金) 21:35:04.14
>>286
ありがとうございます。>>285で書いた通り、Loop後のLine Input〜
の行をコメントアウトしたんですが、それだとデータを読み込んでくれないんです。
ご指摘いただいた書き方はこの一行をコメントアウトした時と同じ・・・で合ってますよね?
288名無しさん@そうだ選挙にいこう:2013/06/21(金) 21:41:11.53
もしかしてそれだけのコードで読み込んだ内容がワークシートに反映されるとか思ってない?
そのコードはファイルの内容を変数bufに入れてるだけだよ?
289名無しさん@そうだ選挙にいこう:2013/06/21(金) 22:00:12.72
>>281 >>283
テンプレ埋めても日本語通じない馬鹿ばっか。
まぁ自己解決したから良いです。
290名無しさん@そうだ選挙にいこう:2013/06/21(金) 22:39:48.89
>>288
もちろんその後に区切ってセルに読み込む動作は入れています。
ということは>>286の書き方をしていれば少なくとも
「ファイルにこれ以上データがありません。」エラーには対処できていると考えて良いのですか
でもって別の箇所にデータを読み込まない原因があると
291名無しさん@そうだ選挙にいこう:2013/06/21(金) 23:18:19.04
>>290
これなら分かるかな。テキストファイルを一行読みこむごとにA列に表示させている。

Sub Sample1()
Dim buf As String
Dim a As Long
a = 1
Open "C:\Sample.txt" For Input As #1
Do Until EOF(1)
Line Input #1, buf
Cells(a, 1).Value = buf
a = a + 1
Loop
Close #1
End Sub
292名無しさん@そうだ選挙にいこう:2013/06/21(金) 23:23:00.19
Dim a As Integer ではなく Dim a As Long にしてる理由は?
293名無しさん@そうだ選挙にいこう:2013/06/21(金) 23:56:56.89
Excel2003で扱える行数が65,536行
Excel2007以降なら1,048,576行
それに対してIntegerは-32,768〜32,767
Longなら-2,147,483,648〜2,147,483,647
294名無しさん@そうだ選挙にいこう:2013/06/21(金) 23:57:38.09
>>292
キータイプが少ない。
integerに比べ桁数を気にしなくて良い。
Cと共通。

むしろintegerを使う理由ってあるの?
295294:2013/06/22(土) 00:10:44.03
質問しておいてなんだけど、ぐぐってみた。
http://www.banana-juice.com/VBA/Performance/Statement/IntLong.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1114523041
http://officetanaka.net/excel/vba/variable/03.htm

大きな多次元配列を使う場合に差が出る、と。なるほど。
そんな場面を想像できないけど。
実質integerを使うメリットは、どこにも無いと思う。
296名無しさん@そうだ選挙にいこう:2013/06/22(土) 06:15:43.32
>>291
おはようございます。アドバイスありがとうございます
試した所読み込まない→ファイルパスが通っていないのが原因だと判明しました
適切にパス関係を直したところきちんとデータを読み込みました
とてもデバッグに便利で分かりやすかったです。ありがとうございました。
297名無しさん@そうだ選挙にいこう:2013/06/22(土) 08:15:47.92
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


別シートにある数列を参照し、そこからSUMIFSで数字を合算させいたいです。
現在、ある月の数字の集計をしたく、

=IF($A7="","",SUMIFS('G351(D84)'!$K:$K,'G351(D84)'!$L:$L,">=2013/4/1",'G351(D84)'!$L:$L,"<=2013/4/30"))
のような関数を組みました。
(K列に数字が入っており、そこから必要な部分(4月)を抜き出し合算させる方法を取っています)。

正直、関数に直接年月を打ち込むのも不格好ではあったのですが、
一応数式として成り立っていたので目をつぶっていました。

が、しかし、同じ関数式で、別シート参照バージョンを多数作ることになり、シート名参照を行う関数をここに加えようと思います。
INDIRECTとADDRESSを使用し試行錯誤はしているのですが、どうしても列参照(上の関数式で言いますと、K:KやL:Lです)が出来ません。

どのような関数を使用すればよいでしょうか。
宜しくお願いします。
298名無しさん@そうだ選挙にいこう:2013/06/22(土) 14:00:28.04
よく分からんが別シート参照するだけなら
指定するときに直接そのシートの範囲を選択するか、Sheet2!A:Aのようにシート名入れればいいだけだけど
299名無しさん@そうだ選挙にいこう:2013/06/22(土) 14:02:11.30
あと直接年月入れるぐらいなら
=SUBTOTAL(9,K:K)
とでもして4月でフィルタリングした方が楽
300名無しさん@そうだ選挙にいこう:2013/06/22(土) 14:07:19.76
いまどき構造化参照つかわないのって頭どうかしてるんじゃないの
301名無しさん@そうだ選挙にいこう:2013/06/22(土) 17:53:19.14
>>298
シート名が多数あるので、関数を利用しセル名から参照できるようにaddressを使用したいのです。
ただ、addressで列全体を指定する方法が分からず……

>>299
年と月を指定しなければならないんですが、それを使用すればできるんですね。試してみます、ありがとう
302名無しさん@そうだ選挙にいこう:2013/06/22(土) 18:11:06.74
各シートの内容をもう少し具体的に書いてくれ
303名無しさん@そうだ選挙にいこう:2013/06/22(土) 18:25:45.42
>>301
・どこが可変になるのか。関数で参照する値は何なのか具体的に
・作業列一切使えないのか、配列使えないのか
・参照と演算を切り離してはいけないのか
ex.データシート内で変動する値の方を参照し演算を完結させてから表示シートから参照など
304名無しさん@そうだ選挙にいこう:2013/06/22(土) 18:50:38.83
>>302
参照したいシートには、商品が出荷された日と数量が列に表示されています。

それを月毎の出荷数量の合計を、別シートにある一覧表に表示させたいのです。
商品毎にワークシートがわかれているため、address関数でワークシートひっぱりsumifsで必要月の出荷をひっぱってきたいのです。
が、address関数を使用した列全体の参照の仕方が分かりませんでした。
(別ワークシートをセル名から指定し列全体を参照する方法があればaddressでなくとももちろん構いません)。

ワークシート参照がひとつふたつなら直接指定でもいっこうに構わないのですが、量が多いもので……
305名無しさん@そうだ選挙にいこう:2013/06/22(土) 18:56:15.07
>>303
参照する列は、出荷日と出荷数量です。
出荷日から、出荷月毎の数量を合算した数字をひっぱってきたいのです。

作業列はアリです、失念しておりました……。
仮にもし1つのセル内で完結できるなら……よろしくお願いします。


> >>301
> ・どこが可変になるのか。関数で参照する値は何なのか具体的に
> ・作業列一切使えないのか、配列使えないのか
> ・参照と演算を切り離してはいけないのか
> ex.データシート内で変動する値の方を参照し演算を完結させてから表示シートから参照など
306名無しさん@そうだ選挙にいこう:2013/06/22(土) 19:14:38.66
は?
307名無しさん@そうだ選挙にいこう:2013/06/22(土) 21:02:07.67
>>305
各シート名:Sheet1,Sheet2,,,
参照範囲はどのシートでもB列とする
集計シート
A列にシートの名前を入力
Sheet1,Sheet2,,
B1:=SUM(INDIRECT($A1&"!$B:$B"))
下にコピー
sumifsでも同様にできる

が、
悪いこと言わんから1シートにしとけ
日付 商品1 商品2 商品3
1/23 100   200   300
...

はるかに楽だし、いろいろ柔軟に対応できる
308名無しさん@そうだ選挙にいこう:2013/06/22(土) 21:44:27.83
集計なんかピボットテーブルでやるのがいちばんラクに決まってる
ピボットテーブルつかえないデータにしてるのが間違い
309名無しさん@そうだ選挙にいこう:2013/06/22(土) 23:15:19.43
>>307
ありがとうございます!!
試しにして見ましたら出来ました。

>>308
Excelでの提出の形が決まっており、ピポットテーブルは使えないのです。
元々手打ち電卓集計をしていたものを関数により省略化することが目的でした。データ表の融通はきかないのです、申し訳ありません。


現在、月毎の集計を出すために、2013/04/1以上2013/04/30以下、というように条件を手打ちしているのですが、こちらは解決方法ありますでしょうか。
フィルタでというアドバイスは頂きましたが、最終紙媒体に出力するため難しいです。
310名無しさん@そうだ選挙にいこう:2013/06/23(日) 00:16:40.37
>>309
集計用、印刷用のブックを用意しれ
別のブックからでもデータは参照できる
その中なら数式とか作業列とかやり放題だろ
311名無しさん@そうだ選挙にいこう:2013/06/23(日) 04:54:21.80
>>309
条件選択するセル作ってそこ参照すればいいだろ
データ表がいくら融通利かなかろうと、データである限りいくらでも捏ね様ある
>>310のやり方もそうだし非表示列を作業用に使うなり
もっと知恵絞れ
312名無しさん@そうだ選挙にいこう:2013/06/23(日) 13:15:36.81
特定の数値に
別セルへあらかじめ設定した対応する文字を表示させたいのですが

例)
A列 B列
001→ 開始
002→ 処理中
003→ 処理2作動中


100→ すべて終了!

このような処理を実現することは可能なのでしょうか?
313名無しさん@そうだ選挙にいこう:2013/06/23(日) 13:17:52.93
vlookupでいいんじゃない
314312:2013/06/23(日) 13:27:15.56
>>313
まさにこれで実現できますね
ちょっと難しそうな関数ですがトライしてみます
ありがとうございました。
315名無しさん@そうだ選挙にいこう:2013/06/24(月) 07:41:01.80
マイクロソフトスペシャリストの試験に「表の印刷」ってやりますか?
316名無しさん@そうだ選挙にいこう:2013/06/24(月) 19:24:59.60
試験の内容を公開するのは禁じられてるから書けません。
317名無しさん@そうだ選挙にいこう:2013/06/25(火) 01:33:11.55
裏の印刷もあるのか?
318名無しさん@そうだ選挙にいこう:2013/06/25(火) 01:41:01.65
裏マイクロソフトスペシャリスト試験…
表の試験に受かったものにだけ、その存在が知られるという
319名無しさん@そうだ選挙にいこう:2013/06/25(火) 01:43:26.41
中二っぺぇ。
320名無しさん@そうだ選挙にいこう:2013/06/25(火) 02:06:03.23
ラスボスはゲイツ、全財産を賭けて戦う
321名無しさん@そうだ選挙にいこう:2013/06/25(火) 04:10:00.36
ひと昔前にMOS2003の資格を取ったけど、
試験の程度を知ってるヤツからは「ふ〜ん」レベルだが
知らないヤツからは「凄いね」と神扱いされるw
322名無しさん@そうだ選挙にいこう:2013/06/25(火) 05:01:20.51
menu.xlsにマクロを書き、B2セルに開きたいシート名を書きます。

list.xlsのA列・B列には、それぞれ保存したブック名とシート名の一覧を書きます。
(シート名は重複しません)
ブック名  シート名
青森.xls  AMR1
青森.xls  AMR2
青森.xls  AMR3
秋田.xls  AKT1
秋田.xls  AKT2
愛知.xls  AIC1
愛知.xls  AIC2
愛知.xls  AIC3

menu.xlsのB2セルに書いたシート名を呼び出すマクロを書きましたが、
オートフィルタを使わず、findでやるにはどうすればいいですか?

Sub 検索1()
 awp = ActiveWorkbook.Path
 key = Range("B2").Value
 Workbooks.Open Filename:=awp & "\list.xls"
 Range("A1:B1").AutoFilter
 Range("A1:B1").AutoFilter Field:=2, Criteria1:=key, Operator:=xlAnd
 book_name = Range("A65536").End(xlUp)
 sheet_name = Range("B65536").End(xlUp)
 Workbooks.Open Filename:=awp & "\" & book_name
 Sheets(sheet_name).Select
End Sub
323名無しさん@そうだ選挙にいこう:2013/06/25(火) 09:30:19.11
>>322
俺だとワークシート関数のcountifを使うかな
findはわかんね
324名無しさん@そうだ選挙にいこう:2013/06/25(火) 16:30:06.17
よろしくお願いします

【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

例えばデータが
30,30,30,29,29,29,29,28,28,27,26,26,26というデータがあったとして
それぞれの数字の個数を数え上げて表示するようにって数式とかでできますか?
30 3
29 4
28 2
27 1
26 3
という感じで
できるならやり方を教えていただければと思います
325名無しさん@そうだ選挙にいこう:2013/06/25(火) 16:33:06.50
VBAじゃないと無理
諦めろん
326名無しさん@そうだ選挙にいこう:2013/06/25(火) 17:06:59.66
>>324
A1に入力、
区切り位置でカンマを指定、
A2=COUNTIF(1:1,A1)
A2を右にオートフィルタ
すべて範囲選択して、コピー

別の場所に値で貼り付け+行列の入れ替え
後はフィルタで重複の無視
327名無しさん@そうだ選挙にいこう:2013/06/25(火) 18:27:54.87
>>326
ありがとうございました
ちょうどいい関数あったのですね
おかげで出来ました
328名無しさん@そうだ選挙にいこう:2013/06/25(火) 22:13:02.58
ピボットテーブルで
329名無しさん@そうだ選挙にいこう:2013/06/26(水) 12:43:56.84
よろしくお願いします。

【1 OSの種類         .】 WindowsXp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

sheet1にシステムから自動出力されたデータを貼り付けて、
それをsheet2で
カテゴリ、商品名、売単価、仕入単価、売上数量、売上金額等必要なデータだけを参照してます。
その後の列に粗利(売上金額-(仕入単価×売上数量))と売上ランキング(Rank関数)など計算させて、
sheet3ピボットテーブルにてカテゴリ、ランキング順にソートしてます。

このピボットテーブルで、売上金額がカテゴリ毎の集計の合計金額の30%に満たした分のみ
条件付き書式でセルの色を黄色にするということは可能でしょうか?

具体的には次レスに書きます。
330329:2013/06/26(水) 15:11:23.89
<Sheet1>
カテゴリ JAN 商品名 売単価 仕入単価 売上数量 売上金額 仕入数 ・・・他データ
01 111 A商品 100 90 200 20000 300
01 112 B商品 150 70 100 15000 200
01      490 C商品 130   80      200     26000   250   
02 311 D商品 120    20 150 18000  10
など(カテゴリとJANの重複はなし)
大体1000〜2000行(最大)

<Sheet2>※セル番地で参照しているだけ 
カテゴリ JAN 商品名 売単価 仕入単価 売上数量 売上金額 売上ランク 粗利   粗利ランク 原価率
01 111 A商品 100 90 200 20000 2     1000   4 90%
01 112 B商品 150 70 100 15000  4     8000   3 46,6%
01      490 C商品 130   80      200     26000   1       10000  1       61.5%
02 311 D商品 120 20 150 18000 3     15000  2 16,6%

粗利は売上金額-(仕入単価×売上数量)
ランキングはそれぞれ売上金額・粗利金額をRANK関数にて順位づけ
原価率は仕入単価÷売単価で計算
参照式・数式は3000行まで入ってます。
331329:2013/06/26(水) 15:13:00.97
続きます。
<Sheet3> ピボットテーブル

<行フィールド>カテゴリ 粗利ランク JAN  商品名 売単価 仕入単価 原価率 <データフィールド> 売上ランク 売上数量 売上金額  粗利 
          01 1     490  C商品  130   80     61.5%                 1      200    26000   10000
              3       112  B商品  150   70     46,6%                 4      100    15000    8000
              4       111  A商品  100   90     90%                  3      200    20000    1000
          02   2       311  D商品  120   20     16,6%                 4      150    18000    15000

となっています。

商品の売上数量・売上金額・粗利がそれぞれのカテゴリの合計の50%を満たす分のに色をつけたいのです。

カテゴリ01の売上数量(200+100+200)×50%=250 で 売上ランキング順で (この場合C商品とA商品)
カテゴリ01の売上金額(26000+15000+20000)×50%=30500 で 売上ランキング順で (この場合C商品とA商品)
カテゴリ01の粗利金額(10000+8000+1000)×50%=9500 で 売上ランキング順で (この場合C商品)

判りづらくてすみません。
どなたかご助力お願いいたします…
332名無しさん@そうだ選挙にいこう:2013/06/26(水) 19:05:00.54
狩野舞子
333名無しさん@そうだ選挙にいこう:2013/06/26(水) 20:07:16.04
>>329
マジでわかりにくいな…
そのテストデータが入ったエクセルのファイルをどこかにアップロードできない?
334329:2013/06/26(水) 20:46:26.27
>>333
ありがとうございます。
仕事のデータなのでそのままはまずいので
あした加工してアップしてみます。
335名無しさん@そうだ選挙にいこう:2013/06/26(水) 20:51:25.18
・グラフ(散布図)の要素を動的に取得する
・空白を0としない

この2つを合わせたいのですがうまくできませんでした、アドバイス等頂けると幸いです

それぞれ単独でならばできました

一つ目の動的に要素を取得(入力したところまでを範囲としてグラフ作成、更新)は、
offset($A$1,1,0,match(max($A:$A),$A:$A)-1,1)
これで行いましたcountaは

A B
1 2
2
3 6
このようなときに正しくできなかったのでmatchを使いました

二つ目の空白を0としないというのは、たとえば上記でいうB列に
if(C1="","",C1*10)
このような式が入っている場合、0となってしまい、グラフの0/空白の扱いでも解決できませんでした
しかしこれ単独であるならばNA()+条件で文字色白で解決できました

この2つを合わせたとき、NA()ではどうしても参照先エラーを起こしてしまい、解決できませんでした

何か良い関数等ありましたらよろしくお願いします
336名無しさん@そうだ選挙にいこう:2013/06/26(水) 22:21:04.90
まずどこかの列に絶対に空白を入れない列を作ったほうがいい(通し番号とかでいいので)
その列をカウントする
match(max($A:$A),$A:$A)-1とか明らかに周りくどい処理
337329:2013/06/27(木) 10:58:15.36
テストデータをアップしてみました。
本物は列項目はもっとあります。

http://www.dotup.org/uploda/www.dotup.org4301644.zip.html

本当にわかりづらくてすみません(´;ω;`)

理想はピボットテーブルに直接色付けしたいのですが、
無理な様であれば別シートなどに数値などでできれば…

最終的にはユーザーはシステムからのデータを貼り付けるだけで
最新の情報に反映されるというのが目標なのです。
338329:2013/06/27(木) 10:59:49.25
>>337
パスを書き忘れました。すみません(´;ω;`)

パスは名前の「329」です。
339名無しさん@そうだ選挙にいこう:2013/06/27(木) 13:45:23.96
>>329
vbaの領域だが、うーん
そうだねぇ

・新しいシートを3つ作り、シート2からAABBCCそれぞれを分ける
AA用シート A2=if('Sheet1(データ貼付)'!A2="AA",'Sheet1(データ貼付)'!A2,""
BB用シート A2=if('Sheet1(データ貼付)'!A2="BB",'Sheet1(データ貼付)'!A2,""
CC用シート A2=if('Sheet1(データ貼付)'!A2="CC",'Sheet1(データ貼付)'!A2,""
こんな感じ。
・で、それぞれの項目でランクを付ける
・その順に並び替え
・累計を出す
・合計を超えるか判定
・最後にピボットテーブルのシートに戻って条件付き書式、index+matchで判定
保存の時に言われた
2003だと他のシートを条件にして条件付き書式を設定できない/(^o^)\
・2003用に作りなおし。
・最後の判定部分をピボットテーブルのシートに持ってきた。
ttp://www.dotup.org/uploda/www.dotup.org4301845.zip.html
売上数しか作っていないが、まぁ頑張れ。
indirectも使いこなせばもっと楽になるぞ、頑張れ
340名無しさん@そうだ選挙にいこう:2013/06/27(木) 13:47:15.03
でも、こんなクソややこしい計算式作るぐらいならvba覚えたほうが早いよ。
341329:2013/06/27(木) 17:22:39.96
>>339
ありがとうございます。
サンプルまで!

ぜひ試してみます!!
助かります( ;∀;)
342名無しさん@そうだ選挙にいこう:2013/06/28(金) 18:50:37.77
どなかか教えて下さい。

同じ原典のExcelファイルが多数あります。
このExcelはマクロを使用しています。

このマクロにバグがあることが判明しました。

で、すべてのファイルのマクロを修正したいのですが、
一括で修正する方法はないでしょうか?
343名無しさん@そうだ選挙にいこう:2013/06/28(金) 18:56:42.83
方法があったな、どうやるんだっけ。忘れた。
単純なブックなら、
マクロのバグを取り除いたブックを先に用意、
そこにデータを移す(シートをコピー等)という方法があるな。
344名無しさん@そうだ選挙にいこう:2013/06/28(金) 22:00:48.55
f2キーを押す機会がかなり多いんだけど、
ノートだとf2キーなんて見ないと押せない

なんとか別のキーにアサインできない?
345名無しさん@そうだ選挙にいこう:2013/06/28(金) 22:54:27.20
マクロでSendKeys "{F2}"を登録しておいて、そのマクロをショートカットに登録すればいいんじゃね
346名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:01:05.20
>>345
試しにやってみたら、なんか印刷画面が開くんだけど
もちろんキーボードのF2を押したら編集モードになる

Sub F2()
  SendKeys "{F2}"
End sub

たったこれだけの物をシートモジュールに書いてショートカットキー登録しただけ
347名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:20:47.23
同じだ。excel2010 win7 64bitで確認
ショートカットにはctrl+q、ctrl+uで登録してみたけど両方なる
348名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:22:58.37
印刷画面が開くってことはショートカットキーをCntl+Pにしたとか?
Excel側で設定済みのキーは上書きできなかったと思うけど
349名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:40:18.23
>>348
自分で試してみればいいよ
Excel2010だとなぜか印刷になる
350名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:47:49.83
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_5574_0.html
F2をsendkeysする前にキーバッファをクリアしてみるとか
351名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:49:48.62
352名無しさん@そうだ選挙にいこう:2013/06/28(金) 23:52:35.15
http://support.microsoft.com/kb/138624
マイコーソフトもApplication.Waitしろっつってた
353名無しさん@そうだ選挙にいこう:2013/06/29(土) 00:15:21.71
ctrl+F2が印刷画面の表示で、仕様上そちらが優先されるということね。
勉強になります。
354名無しさん@そうだ選挙にいこう:2013/06/29(土) 00:30:35.40
へぇ
355名無しさん@そうだ選挙にいこう:2013/06/29(土) 07:28:02.70
1秒も待たないといけないの?
356名無しさん@そうだ選挙にいこう:2013/06/29(土) 11:21:44.04
行の最後の句点"。"を削除したいのですが、何か方法はないでしょうか?
例)
↓二つ目の句点のみ削除したいの
・あいうえお。かきくけこ。
357名無しさん@そうだ選挙にいこう:2013/06/29(土) 11:26:28.16
作業列を作って、=IF(RIGHT(xx.1)="。",LEFT(xx,LEN(xx)-1),xx)
358名無しさん@そうだ選挙にいこう:2013/06/29(土) 12:09:41.99
実際、F2の代用として使うのには無理があるな
入力できるようになるまで1秒待つのは結構長い
359名無しさん@そうだ選挙にいこう:2013/06/29(土) 12:38:35.79
タイマーみたいな原始的な方法じゃなくて、Ctrlキーが押されてるかどうか直接調べて、
離された瞬間にF2を送ればいいんじゃね?と思って作ってみたけどダメだった
APIを使ったマクロにはショートカットが登録できないっぽい
これはもう、外部プログラムでやるしかなさそだな

Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Sub F2()
 While GetAsyncKeyState(vbKeyControl): Wend
 SendKeys "{F2}"
End Sub
360名無しさん@そうだ選挙にいこう:2013/06/29(土) 12:38:56.46
キーバッファをクリアすればいいんだろ
361名無しさん@そうだ選挙にいこう:2013/06/29(土) 13:40:58.28
>>356
他の関数式(最後の文字を削除するという式)
=REPLACE(A1,LEN(A1),LEN(A1),"")
362名無しさん@そうだ選挙にいこう:2013/06/29(土) 19:04:34.53
F2キーを多用するやつって、どんなときに使うんだ?
363名無しさん@そうだ選挙にいこう:2013/06/29(土) 19:11:23.14
セル内移動
364名無しさん@そうだ選挙にいこう:2013/06/29(土) 19:11:53.01
セルの編集以外にないと思うけど
365名無しさん@そうだ選挙にいこう:2013/06/29(土) 19:19:56.07
既に入力されたものを編集する時に、セルをダブルクリックするか、
fxのところをクリックすれば出来るのは判ってるけど、
キーボードからやる方法が必ずある筈だと、
ctrl-enterとか、alt-enterとかshift-enterとか、ctrl-tabとか試しても見つからなくて
仕方なく誰かに聞くとF2だと教えられる
そんなん判るかと思うととも、センスの無さに絶望する
366名無しさん@そうだ選挙にいこう:2013/06/29(土) 20:42:18.99
道具に合わせて立ち回れない自分を棚に上げて
愚痴るような香具師はしょせんその程度の器

俺がExcelをいじる時は、左手薬指がF1、中指がF2、
右手人差し指・中指・薬指がそれぞれカーソルキー
左・上・右に自然と来るように訓練済みだ
これくらいできるように努力してから愚痴を言え
367名無しさん@そうだ選挙にいこう:2013/06/29(土) 20:49:34.07
>>366
どうがんばっても改善できないなら慣れるしかないけど、
たぶん簡単な常駐プログラムで解決できる
ぐぐると同じような質問が出てくるから需要はあるはずだし
すでに誰かが作ってる可能性もある
368名無しさん@そうだ選挙にいこう:2013/06/29(土) 21:00:55.40
vbaではバッフャクリアは難しいようだけれど、チャタリング防止することはできる。
369名無しさん@そうだ選挙にいこう:2013/06/29(土) 21:53:48.10
>>366
人や環境によるんじゃないかなぁ。そこは強制してはいけないと思う。
私はシステムから出てくるデータをEXCELにほおりこんで、ボタンを押せば完了なのでマウスがメインだ。
ブラインドタッチも出来ないよ。ちなみに私は>>339であり、>>291だ。
変な回答と思うなら、適切な回答をして上げてくれよ。
>>367
yamyとかかなぁ、と思ったけど結構難しいと思う。
APIのフックがいる。あまりよくわかっていないけど、恐らくOSの機能にアタッチするんだろう。管理者権限とかどうなるんだろうな。
しかし、それをクリアしても結局EXCELの問題に行きあたるわけで・・・
やはりF2押すほうが早いんだろうなぁ
そんなにキーボードみるのって不都合というか、仕事が遅くなるのかな
キーボード見ていいと思うんだけどなぁ
盲目の方だったら、すいません。
370名無しさん@そうだ選挙にいこう:2013/06/29(土) 22:29:15.16
>>369
慣れろという回答が不適切だとでも言うのか
左薬指でESCとF1を探って位置を確保し
中指でF2を押すだけのことじゃん
アプリ作ってCtrl+なんとかキーに割り当てて
押すのと何が違うんだよ
371名無しさん@そうだ選挙にいこう:2013/06/29(土) 22:33:16.19
F2で編集って別にExcelに限ったことじゃないよね
372名無しさん@そうだ選挙にいこう:2013/06/29(土) 23:39:21.36
>>370
さぁ?不適切と言い切る自信は私にはない。
PCを触って10年、EXCELを本格的に触って5年ぐらいかな。
キーボードを触ってブラインドタッチが出来ない、しかしマクロはそこそこできるという私なりの意見だ。

>>291.339上記の答えを出せるレベルにはある。
両方共一時間以内だね。別にわざと抽出したわけではないが、だいたい日常業務でも1時間以内に業務を省略(マクロを組むなり、なんなり)している気がする。

私の口からホームポジションを変えろとはいえない。当人にとって楽な方法が一番だ。

私が、キーボードを見ながら打ったほうが早いと思うからそう言っただけだ。
もしF2キーを見てから打つほうが遅いなら、謝るよ。
しかし、まずはあくまでひと通り自動化するのが先決と思うんだ。
それは私の中では素早いキー入力よりも重要と思っている。よって、外部アプリを検討に入れる。

アプリケーションを作るのも難しいと思う。
もちろん、.netは触れるよ。
VB・C#、C++は趣味でやったけど、OS(API)にフックとかは難しいと思う。
この一連の問題を解決するexeなりdllなりを、できるor誰かが用意してくれるなら別にいいと思う。

最終的に作業が正確で、早くなるなら、何も問題はないよ。
これは質問者も回答者も、全員の同意とするところだろう。
373名無しさん@そうだ選挙にいこう:2013/06/29(土) 23:58:13.52
家でやるなら確実にyamy使うと思うけど、
会社のPCはプレーン環境が強制させるんだよな
だからマクロでカスタマイズするしかない
374名無しさん@そうだ選挙にいこう:2013/06/30(日) 00:27:18.47
ブラインドタッチなんて言葉使ったら、乙竹がツイッターで激怒するぞ。
375名無しさん@そうだ選挙にいこう:2013/06/30(日) 00:42:18.29
>>374
しないだろw
あれ、障害者バカにしてるし。
376名無しさん@そうだ選挙にいこう:2013/06/30(日) 13:39:31.07
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

「条件付書式:指定の値より大きい」を利用してセル内の数値を赤太字で表示させたいのですが、
選択したセルに「=SUM」などの数式が含まれていると、数式セルの数値だけ「######」と文字化けしてしまいます。
プルダウンメニューから選択可能な書式では文字化けはしないのですが、「ユーザー設定の書式」から「太字」を選択すると
上記のような文字化けが起こってしまいます。

文字化けを回避する方法を教えて下さい。よろしくお願いします。
377名無しさん@そうだ選挙にいこう:2013/06/30(日) 13:40:26.41
セル幅
378名無しさん@そうだ選挙にいこう:2013/06/30(日) 13:47:32.36
を広
379名無しさん@そうだ選挙にいこう:2013/06/30(日) 14:12:35.50
くしてあげてください。
380名無しさん@そうだ選挙にいこう:2013/06/30(日) 16:33:40.25
太字にすると幅が広くなるので起こりますん
列幅ダブルクリックで自動変更されますん
381名無しさん@そうだ選挙にいこう:2013/06/30(日) 18:19:17.06
セルの高さが自動調節されないことがあるのは何なんだ
382名無しさん@そうだ選挙にいこう:2013/06/30(日) 18:57:36.96
セル内改行とか変な書式とかセル結合とかしてると自動調整が狂う
383名無しさん@そうだ選挙にいこう:2013/06/30(日) 21:06:30.68
>左手薬指がF1

ヘルプ厨?
384名無しさん@そうだ選挙にいこう:2013/06/30(日) 21:24:15.58
>>383
薬指をF1の左横に当ててガイドにすると
F2の上に中指を固定しやすいってだけの話だよ
385名無しさん@そうだ選挙にいこう:2013/06/30(日) 23:45:03.29
F1はESCとくっついてるからF1に指を乗せること自体が困難
386名無しさん@そうだ選挙にいこう:2013/06/30(日) 23:48:40.08
欠陥キーボード愛好家の方かな?
387名無しさん@そうだ選挙にいこう:2013/06/30(日) 23:59:22.64
俺のノーパソ(ダイナブック)は、[ESC]の隣が[半/全]で、その隣が[F1]だ。

あ、そんだけw
388名無しさん@そうだ選挙にいこう:2013/07/01(月) 00:16:01.64
↑キーの右がshiftだったりするな
389名無しさん@そうだ選挙にいこう:2013/07/03(水) 18:10:18.81
tes
390名無しさん@そうだ選挙にいこう:2013/07/03(水) 18:22:36.43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい(簡単なもの)
【4 VBAでの回答の可否】 否

お願いします。シート1のセルA1に式を入れます。その式はシート2とシート3とシート4のA1からA30にとある値が
入っていたら100とセルA1に表示させるような式です。ある値は23個あるのですが名前をつけてMATCH関数やLOOK関数を
用いても、検査値も検索範囲もそれぞれが複数のためか、うまく行きません。
どのような方法がありますでしょうか。よろしくお願いいたします。
391名無しさん@そうだ選挙にいこう:2013/07/03(水) 18:29:34.95
ファイルを開いてから何も弄ってないのに
終了しようとすると「変更を保存しますか?」と聞いてきてウザいのですが
これをOFFにする方法は無いでしょうか?
392名無しさん@そうだ選挙にいこう:2013/07/03(水) 18:30:59.77
391です。テンプレ忘れてました
【1 OSの種類         .】 Windows7 Home Premium
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 NO
【4 VBAでの回答の可否】 NO
393名無しさん@そうだ選挙にいこう:2013/07/03(水) 19:44:06.40
>>390
3D参照でCOUNTIF関数が使えれば楽なんだけど使えないので(↓参照)
http://office.microsoft.com/ja-jp/excel-help/HP010102346.aspx

なので以下のような形でやってみたらどうだろうか
シート1
A1 =IF(SUM(Sheet2:Sheet4!B1)>0,100,0) ---最後の0はとある数字が無い場合は0表示ということ
B1 ---とある数値を入力
シート2〜シート4
B1 =IF(COUNTIF(A1:A30,Sheet1!B1),1,0)
394名無しさん@そうだ選挙にいこう:2013/07/03(水) 20:09:54.81
>>393
さっそくの回答をありがとうございます!実は、とある数値が23個くらいあるんです。
それは4桁のコードなのですが、それをシート1のセルB1にすべて入力する方法がありますか?
別シートにその4桁のコードを並べてその範囲に「名前」をつけてみたりしたのですが、うまくいきません。
もしかしてVBAでないとできないのでしょうか。
395名無しさん@そうだ選挙にいこう:2013/07/03(水) 20:24:18.83
今ためしにB1の下に向かって値を入れ、シート2〜シート4のセルB1に入れる
式の「Sheet1!B1」のところを「Sheet1!B1:B23」みたいにしてみたのですが、拾ってこない?
複数対複数、が無理なのですかね
396名無しさん@そうだ選挙にいこう:2013/07/03(水) 21:09:15.98
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010

新規のブックを立ち上げ、マイナスの数値(たとえば-1)を入力したら赤くしたいんだけどできますか?
397名無しさん@そうだ選挙にいこう:2013/07/03(水) 21:11:01.79
>>391
「弄らない」ではなく「変更しない」ようにすれば良いだけ
弄らなくても内容が変更される要因はいくつもあるからな
398名無しさん@そうだ選挙にいこう:2013/07/03(水) 21:12:25.98
>>396
テンプレート使え
399名無しさん@そうだ選挙にいこう:2013/07/03(水) 21:21:01.79
>>391
CELL、INDIRECT、INFO、NOW、OFFSET、RAND、RANDBETWEEN、TODAY関数を使ってると、
ファイルを開いただけで「変更した」と見なされてしまうので「保存しますか?」と聞いてくるようになる

一番はまりやすいというか、何気なく使ってしまって気付かないのがINDIRECT、OFFSETあたりだと思う

数式を修正するか、自動再計算をoffにするぐらいしか方法はない
400名無しさん@そうだ選挙にいこう:2013/07/03(水) 21:56:50.31
>>399
ありがとうございました。理解しました
OFFSET、INDIRECTは使ってる使ってないどころか
超多用してました

非常に複雑なイレギュラー計算連発のブックで、
自動再計算OFFとか関数使わないってのは無理なので
ウザいけど諦めて毎回「いいえ」をポチることにします
401名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:08:39.45
>390ですが、VBAでの回答の可否、を「はい」にしたらできますでしょうか?
402名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:13:22.71
>>401
たぶんできる、けど、ぶっちゃけ質問の意味が、何をやりたいのかがよくわからない
403名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:34:04.59
えええええ????本当ですか?わかりにくい文章ですみません。
つまりフォーマットのシート2やシート3や、時にはシート4のA列に、4桁のコードを入力
するのですが、その時、200個くらいあるコードのうちの23個にひっかかるならば
シート1に「23個にひっかかってます!!」という結果が欲しいわけです。
その23個のどれかにひっかかるなら、100円になります!という表示がおこって欲しいのです。
A列に入るコードも200個のうちのどれかです。どのようでしょうか・・・
404名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:37:07.17
出来ます
405名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:42:47.73
ぜひともお願いします!
406名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:44:20.57
>>403
「200個くらいあるコード」はどこに書いてあるの?
その中から23個を選ぶ方法(法則)は?
407名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:48:26.07
コード表は、全く別のシートです。23個は1010、1020、1030、1031、1050、1060
みたいな不規則なのです。なので別にリストみたいなのを作って「名前」をつけるしかないのかな?と思っていました。
また、コードではなく商品名でAAで始まる、BBで始まる、CCで始まる、みたいに凡そ3種類には分けられるのですが
その中に4個くらい例外があるのです(DDという単語を含む商品のみ、23個には入らない)
その例外のせいで、コードも途中がとびとびになってしまうのです。
408名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:52:08.72
>>403
200個ぐらいあるコード
がシート1のC列にでもあるとして、
シート2のB1=countif(シート1!c1:c200,a1)
これをシート2からシート4まで、四桁のコードの横に書く
つまり、該当してるかどうかの判定だな。

それで、a1=if(sum(シート2:シート4!b1:b30)>=23,"23個にひっかかってます!!","ひっかかってない")

こんな感じだと思う
>>407
そんな例外はEXCELでは処理不可能なので、
大人しくシート1のC列にでも新しく作って下さい。
まぁそのうち判定もできるようになるだろう。
409名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:54:18.40
>>390
データA1:A30をA2:A31に移動してもよければ A1に DATA とでもタイトル名を付けて
DCOUNT関数を利用すれば複数条件を記述できる。研究してみたら。
=DCOUNT(Sheet2!A1:A31,"DATA",E1:E24)のような感じ
A2:A31に記載されているデータ内に条件E2:E24に該当するデータがあればその個数を抽出できる。
410名無しさん@そうだ選挙にいこう:2013/07/03(水) 22:55:34.78
>>407
ちょっと箇条書きにしてくんない?

シート名「シート1」、内容「A列=4桁のコード番号、B列=品名、全部で30項目」
シート名「コード表」、内容「A列=コード番号、B列=品名、C列=値段、全部で200項目」

みたいな感じで
411名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:09:20.75
>>398
テンプレートを使えば、新規のブックを立ち上げ、マイナスの数値(たとえば-1)を入力したら赤くなりますか?
412名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:12:36.17
みなさん、沢山の回答をありがとうございます。
>>409
今ヘルプで見てきたのですが、アクセスみたいなかんじにしていくのですかね。
データベースということで複数と複数なのですね、ちょっとじっくり読んでみます。
>>408
3行目の式の「c1:c200」のところを、23個の参照先として「c1:c23」にしてではなく?
今ちょっとやってみます;
413名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:19:28.08
すみません。
シート名「シート1」内容「100、と表示されるか空白かになるセルが一つ」
シート名「シート2」内容「A列=4桁のコード番号を受注に従って入力する、B列=品名、C列=値段、行は30行くらい」
シート名「シート3」内容「A列=4桁のコード番号を受注に従って入力する、B列=品名、C列=値段、行は30行くらい」
シート名「シート4」内容「A列=4桁のコード番号を受注に従って入力する、B列=品名、C列=値段、行は30行くらい」
シート名「CODE」内容「A列=4桁のコード、200行くらい、B列=品名、C列=単価」

シート2か3か4に「CODE」シート内の23件ある特定の番号と同じコードの受注が一件でもあれば「シート1」に「100」と表示される
414名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:23:21.29
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
それまでExcel97を使っていたのですが、Excel2010にしたら
チェックボックスを使っているシートでセキュリティエラーが出て
編集不能になってしまいます
xlsファイルのままで編集可能にする方法はないでしょうか?
415名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:37:21.71
>>390です。皆さん、ありがとうございます。>>408さんのCOUNTIFでできました。
あとは、フォーマットなので、シート1,2,3,4内には、この式を持ってこれないので
別シートを後ろの方にたてて、そこで参照先(23件)から合致すれば「1」をたてる方法でやってみたいと
思います。もう、複数対複数しか頭になく、カウント関数での処理は思いもつきませんでした。。

お知恵を下さった皆様、ありがとうございました。データベース関数も、明日職場で見てみます。
飲み込みが悪いので、すっかり疲れてしまいました。教わった身ですみません。
もう寝ますね。皆様も夏ばて食中毒にはくれぐれもお気をつけてください。おやすみなさい
416名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:38:51.58
あ、シート1の100を表示したいセルだけには、こっそり式を入れます!

ありがとうございました!!
417名無しさん@そうだ選挙にいこう:2013/07/03(水) 23:55:05.95
>>411
テンプレート EXCEL 作り方
でぐぐって頑張れ。
多分、最初から用意はされてないから自分で作るしか無い。
>>414
開発、マクロのセキュリティ

・すべてのマクロを有効にする
>>415
418414:2013/07/04(木) 00:46:35.27
>>417
ありがとうございました
419名無しさん@そうだ選挙にいこう:2013/07/04(木) 01:16:29.61
イミディエイトウィンドウで
selection.setphonetic
を100万件に対して実行しおやすみなさい

明日の朝には終わってるかな?

マシンスペックは
第2世代 Corei7 メモリ8G
420名無しさん@そうだ選挙にいこう:2013/07/04(木) 01:29:57.45
>>419
自動計算等を切っててもフリーズすると思う。
余裕があるなら10万行ずつぐらいで区切ったほうがいいと思う。
特に、selectionなどは使わずにforeach、もしくはfornextで回したほうがいい。
やってみないとわからないけどね。
個人的に興味あるので、結果出たら教えてほしい。
421名無しさん@そうだ選挙にいこう:2013/07/04(木) 01:45:21.76
>>419
俺なら念のため1000件の所要時間を測って全体の時間を予想する
もし5秒で終わったんなら100万件でも5000秒、1時間半で終わる計算
422名無しさん@そうだ選挙にいこう:2013/07/04(木) 06:54:40.78
>>420-421
2時間で終わってました
423名無しさん@そうだ選挙にいこう:2013/07/04(木) 10:20:48.46
つーか、2時間も掛かったのかよ
第2世代Corei7の最底辺モデル?
もしくはシステム腐って全体の動作が遅くなってる?
424名無しさん@そうだ選挙にいこう:2013/07/04(木) 12:26:46.27
>>423
シート内容と環境によるっしょ
あと寝てる間にすますならコードの最適化も必要ないし
pen4なら部屋が熱くなるから早く済ませたいところだがなw
>>422
thx
425名無しさん@そうだ選挙にいこう:2013/07/04(木) 23:24:33.26
>pen4なら部屋が熱くなる

え゙ !?
426名無しさん@そうだ選挙にいこう:2013/07/05(金) 00:15:35.37
>>425
実話。
と言っても後期のpen4はそれほどでもないのね。これは知らなかった。
しかし初期に出たpen4は冬に暖房いらなくなるんだぜ。
誇張でも何でもなくね。もちろん夏は死ぬ。
427名無しさん@そうだ選挙にいこう:2013/07/05(金) 01:46:26.84
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
データ>入力規則>リスト>元の値「=INDIRECT(セル番号)」
当該セル番号を可変するセルにして、リストの内容も可変できるようにするという手法が
Excel2010では使えるのですが、これはどの年代バージョンのExcelから使えるようになったものでしょうか?
Excel2003やExcel97でも同じように、リスト>元の値「=INDIRECT(セル番号)」が使えますか?
428名無しさん@そうだ選挙にいこう:2013/07/05(金) 07:22:43.32
>>426
最上位同士で比べたら、Pen4よりCore_i7の方が煖房能力優秀wだぞ
ただCore_i7の最上位(Extreme Edition)はCPUだけで10〜15万円と目茶苦茶高いから、
普通の人は縁がないだろうけどね

まあ、ある一定の処理を終らせるまでに発熱する量ということで見たら
Core_i7が100の発熱で1時間で終るところ、Pen4は90の発熱で2時間以上掛かるから
Pen4の方が最終的な発熱量は大きいってことになるが、例えば2chのトリップ検索のように
PCじゃ実質的に永遠に終らないような処理を同じ時間回すとと、Core_i7の方が発熱量は大きい


>>427
少なくともExcel2000からは使えるが、Excel95以前は確か入力規則自体が無かったと思う
その間のExcel97は、入力規則もINDIRECT関数もあるが、その手法が有効かは解らん
429411:2013/07/05(金) 11:22:11.40
>>417
テンプレート EXCEL 作り方でぐぐってテンプレートをつくりました。
新規ブックを立ち上げましたが、書式は何も反映されていません。
どこがダメなんでしょうか?
430名無しさん@そうだ選挙にいこう:2013/07/05(金) 12:38:13.45
431名無しさん@そうだ選挙にいこう:2013/07/05(金) 14:20:20.02
>>429
ホーム

条件付き書式

ルールの管理

新規ルール

数式を使用して、書式を設定するセルを決定

で、数式と書式を指定すると、オラの場合反映されるぞ。w
432名無しさん@そうだ選挙にいこう:2013/07/05(金) 14:46:23.67
普通のユーザー書式(0;[赤]-0)でよくね?
と思ったけど、今は何個でも設定できるし、わかりやすい+汎用的な条件付き書式のほうがいいのかな
どっちがいいんだろう
そろそろ統合してほしい機能ではあるな
433名無しさん@そうだ選挙にいこう:2013/07/05(金) 14:59:11.71
質問者は新規ブックのデフォルトを変更したいと言っておるのだ
434名無しさん@そうだ選挙にいこう:2013/07/05(金) 15:15:03.60
【1 OSの種類.】 Windows 7
【2 Excelのバージョン】 Excel2010
【3 VBAが使えるか.】はい
【4 VBAでの回答の可否】 可

いくつかの変数からなる100レコードや1000レコードのローデータを
複数のグループに可能な限り均等に分けたいです。

例えば男性70人、女性30人のデータがあったとして、これを5グループに分けたい場合、
各グループとも男性14人、女性6人の20人×5グループ。

さらにある変数の値がAの人が50、Bの人が50ならば男性女性の均等配分をなるべく維持したまま
各グループとも男性14人、女性6人、A10人、B10人の20人×5グループ。

ただし、当然ながらクロスを取れば男女とABの偏りがあるはずなので、
この例のようにぴったりな配分にはなりません。

均等配分したい変数は5つの時もあれば7つの時もあり、
分けたいグループ数も3の時もあれば6の時もあります。

全ての変数を完全に均等になるようにグループ分けすることは不可能でも、
各グループの総人数はきれいに分けて、その内訳の変数の値は
可能な限り均等に近い最適化された分類にしたいです。

Excelの機能である程度可能であれば教えて下さい。
なければVBAで組みますが、どういうアルゴリズムを組めばいいかが思いつきません。

よろしくお願いします。
435名無しさん@そうだ選挙にいこう:2013/07/05(金) 15:51:22.54
>>396
ところで何を赤くするの?フォント?背景?罫線?ブック全体?
436名無しさん@そうだ選挙にいこう:2013/07/05(金) 16:14:37.73
>>396
新規ブックか
ではこれで
http://office.microsoft.com/ja-jp/excel-help/HP010197489.aspx
・Excel の起動時に特定のブックを自動的に開くには、XLStart フォルダにブックを配置します。また、XLStart フォルダ以外に、代替起動フォルダを使用することもできます。
この部分ね
437名無しさん@そうだ選挙にいこう:2013/07/05(金) 16:43:50.73
>>434
そるばーでできそうなきもする
438名無しさん@そうだ選挙にいこう:2013/07/05(金) 17:03:19.51
絶対的な解が定義できないものってのは
パソコンの苦手分野

アルゴリズムに関しては、手動で分けるとしたら
どうやったら効率良いかを考えて、それをコード化するだけの話だが
手動での解決法が見つからないようなものはどうにもならん
439名無しさん@そうだ選挙にいこう:2013/07/05(金) 18:08:24.22
>>434
なるべく維持したまま、というのが難解。
・男と女にまず分ける。
・変数の値の重みの合計のランク順でわける。
(単純にランク順にした際、2チームなら奇数番目と偶数番目にする)
というぐらいしかおもいうかばない。

例えば球技のチーム分けと仮定して、
投力=1倍、走力=0.8倍、持久力0.6倍の重要度。
A 投=100点、走=80点、持=20点 → 重要度合いをかけて → 100+64+12の合計戦力176点 (一位)
B 同上、合計 123点 (四位
C         150点 (二位
D         141点 (三位
AD、BCがそれぞれ同じチーム・・・と言った感じ。

この重みづけや「できるだけ男女均等」の許容範囲などがわからないと、作れないな。
440名無しさん@そうだ選挙にいこう:2013/07/05(金) 20:28:35.57
係数(重み)の判断がわかりかねるが、年令層や地域・趣味等が考えられるのか?
それらで一度分類し、

・男女の人数計(自動計算)
・グループの数(指定)

のセルを参照して、切り盛りをランダムに決めてたらいかがかな?w
441名無しさん@そうだ選挙にいこう:2013/07/05(金) 20:38:17.62
まず条件に使う変数で多重クロスを取って、各セルごとに集計結果をグループ数で割る。
次に均等にしたい項目の優先度を決める。

1.グループ1の1人目に割り振るレコードを全レコードから走査して決める。
2.グループ2の1人目に割り振るレコードを全レコードから走査して決める。
3.グループ3の1人目に割り振るレコードを全レコードから走査して決める。
4.グループ1の2人目に割り振るレコードを全レコードから走査して決める。
5.グループ2の2人目に割り振るレコードを全レコードから走査して決める。
6.グループ3の2人目に割り振るレコードを全レコードから走査して決める。

この際、優先度の高い変数から順に、集計結果/3の結果から外れないように
という条件を判定して、もっともよく当てはまるレコードを選んで決めていく。

これを最後まで繰り返す。というのはどうか。
VBAで組むにもすごい面倒そうだし処理できるのかわからんけど。
442名無しさん@そうだ選挙にいこう:2013/07/05(金) 21:05:28.80
別案
3グループだとしたらまず全レコードから条件に使われる変数が
もっとも近似している3レコードを抜き出し、1〜3に割り振る。
次に残った全レコードからもっとも近似している3レコードを抜きだし以下略
これをレコードが無くなるまで繰り返す。

1〜3のどこに割り振るかは、すでに割り振った結果を随時集計しながら偏らないように。
どうだろう。
443名無しさん@そうだ選挙にいこう:2013/07/05(金) 22:48:21.96
>>426
socket423なんて凄いことに・・・
444名無しさん@そうだ選挙にいこう:2013/07/05(金) 23:20:17.95
こんなんExcelとか関係ないアルゴリズムの問題じゃん
数学板とか行った方がいいんじゃねえの?

一番難しくて面倒なことだし、気軽に聞かれてもなかなか答えなんか出んだろ

まず平均値を計算して、目標(変数の値)と誤差を決めて、その範囲で解を探す
最初は誤差を0にして、解が無かったら誤差をちょっとずつ大きくする、みたいな方法になると思うけど

ナップザック問題の変形ってところだな
445名無しさん@そうだ選挙にいこう:2013/07/06(土) 01:19:02.69
Excel2007を使っています。
行の高さを広めに取りながらも、文字数(行数)が多い行は
自動調節する方法を探しています。入力しているデータは
下記のような英単語リストで、「英単語・日本語・注意事項」の
3つの項目があります。

go 行く
come 来る
run 走る 「経営する」という意味の場合もある



このうち「注意事項」の項目は単語によっては記述が長くなるので
折り返して複数行で表示するようにしています。

ここで困っているのが、行の高さを数値で指定すると一番大きい
ものに合わせれば間延びしてしまい、小さいものに合わせれば
折り返して複数行になっている行は切れてしまいます。
自動調節にすると上下がぎっちり詰まった感じになり、画面上や
印刷した時に見にくくなってしまいます。理想は「基本的に行の
高さは25(やや広め)とし、行数が複数行に及ぶものはすべて
表示される高さに自動調節する」という方法はありますでしょうか?
ご存知の方がいらっしゃいましたら教えて頂けますようよろしく
お願い致します。
446名無しさん@そうだ選挙にいこう:2013/07/06(土) 01:26:14.97
>>445
4列目を用意して、そこに高さ調節用のデータを入れる
内容は3列目をそのままコピーして、フォントサイズを少し大きくする
447445:2013/07/06(土) 11:59:00.91
>>446
回答して頂きありがとうございます。
なるほど、そのような手があるんですね。
その方法でやってみようと思います。
448448 ◆upmIvMVKO6 :2013/07/08(月) 16:59:46.68
【1 OSの種類         .】 WindowsXP・7
【2 Excelのバージョン   】 Excel2007・2010・2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

宜しくお願いします。
シフト表みたいな感じなのですが、文面だと表現が難しいので、
サンプルをつくりましたので恐縮ながら見ていただきますと幸いです。
sample.xls(マクロなし・ウィルスチェック済です)
ttp://www.dotup.org/uploda/www.dotup.org4323553.xls.html

<やりたいこと>
「黄色部分」に重複しないように値(くだもの)を取り出したいと思います。
時間軸(色ごとセル)とその他のくだもの(横軸)が重複した場合は、
赤文字で表示できるようにしたいです。
関数もしはくVBAの記述が可能でしたらご指導のほどお願い致します。
449名無しさん@そうだ選挙にいこう:2013/07/08(月) 18:10:10.27
>>448
J4 =LOOKUP("or(a,b,c,d,e)",B4:F4,B$3:F$3)
450449:2013/07/08(月) 18:57:21.55
>>448
>>449に文字色変更に関する追加作業
J4選択→条件付き書式→数式を用いた書式設定→ 以下数式入力↓
=COUNTBLANK(B4:F4)<4
文字色(フォントカラー)赤色を設定→OK

その後はJ4から下方向へコピペしてください
451448 ◆upmIvMVKO6 :2013/07/08(月) 21:38:58.55
>>449-450
ありがとうございます。願ったやり方になりました^^。
<(_ _)>
452448 ◆upmIvMVKO6 :2013/07/09(火) 14:36:53.56
追伸すみません、A〜Oまでは反応するのですが、P以降のアルファベットを入れると
反応しなくなります。
この場合はどうしたらいいでしょうか?
453名無しさん@そうだ選挙にいこう:2013/07/09(火) 15:19:04.69
>>452
独特の言葉が混じっていてよくわからないので、
またシートを上げていただけるとお互い助かると思います
454448 ◆upmIvMVKO6 :2013/07/09(火) 15:43:25.62
>>453 ありがとうございます うpしましたのでお願い致します。
(ファイル形式をxlsxに変更しております、ウィルスチェック済です)
ttp://www.dotup.org/uploda/www.dotup.org4325818.xlsx.html
455448 ◆upmIvMVKO6 :2013/07/09(火) 15:47:04.21
連投すみません、シフト表欄にアルファベット(a〜z)を入れていくのですが、
a〜oまで反応があるのですが、p以降を入れると反応しなくなってしまいます。
宜しくお願い致します<(_ _)>
456名無しさん@そうだ選挙にいこう:2013/07/09(火) 15:56:52.98
>>455
希望とする出力、つまり
・どのセルに何を入れると
・どのセルがどう変わるのか

現状の問題点、希望とする出力とどう違うのか
・どのセルに何を入れると
・どのセルがどう変わるのか

この四点が全てわからない。
とりあえずB4:F15にテキトーに文字を入れてみたけど、何も変わらず
457448 ◆upmIvMVKO6 :2013/07/09(火) 16:09:28.70
>>456 すみません、ありがとうございます。

C4にaといれるとR4の値が関数のとおり「りんご」に変わりますが、
C4にpを入れるとR4が変わらなくなります(空欄になります)。
aからoまでのアルファベットは反応をしますが、pからzに反応しない(空欄)となります。
LOOKUPの検索値の記述が間違っているのでしょうか?
458448 ◆upmIvMVKO6 :2013/07/09(火) 16:15:53.73
R4ではなく時間別担当表の担当欄です^^;
列を挿入してしまったのでUPし直します。
ttp://www.dotup.org/uploda/www.dotup.org4325861.xlsx.html

LOOKUP(ベクトル)の検索値はaからzの26文字に対応させたいと思います。
>>448,
459名無しさん@そうだ選挙にいこう:2013/07/09(火) 16:17:14.97
>>457
R4には数式も値も入ってないよ
あとlookupで検索したけどlookupはどのセルにも入ってない
460459:2013/07/09(火) 16:18:22.72
あ、ok。見直すわ
461名無しさん@そうだ選挙にいこう:2013/07/09(火) 16:26:25.88
>>458
http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyu9_9_6.htm
検査範囲は、1行または 1列のみでセル範囲を指定します。検査範囲の値は、文字列、数値、論理値のどれかでないと対象になりません。
また、その値は、昇順に並べておく必要があります。

昇順に並べていないと、予期しない動作になる。
まぁ今回は検索のアルゴリズムに引っかかったんだろう。わからなければ気にしなくていい。

とりあえず今回の件では、この数式は不適切。

配列の何個目にデータがあるか探る方法ってなんかあったかな。とりあえず一旦落ちるよ
462名無しさん@そうだ選挙にいこう:2013/07/09(火) 16:31:27.33
463名無しさん@そうだ選挙にいこう:2013/07/09(火) 16:31:46.50
>>452
一応思考錯誤してみた
O4 =IF(ISERROR(LOOKUP("Z",C4:I4,C$3:I$3)),"",LOOKUP("Z",C4:I4,C$3:I$3))
464448 ◆upmIvMVKO6 :2013/07/09(火) 16:45:29.99
>>461 >>463 ありがとうございます。
>>463さんの方法で解決しました^^
しかし、原因がよくわかりませんです・・・><;
検索値の問題?となるのでしょうか・・何かもっと別な方法があるのでしょうか・・
スレ汚し失礼致しました<(_ _I>
465名無しさん@そうだ選挙にいこう:2013/07/09(火) 21:37:47.80
1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ある日付(2013/7/9など)に最も直近の過去の年度末(この場合2013/3/31)を返す式はなんと入力すればよいでしょうか?
2013/3/31〜2100/3/31を入力した列をindexで参照させて…などとやってもうまくいきません
よろしくお願いします
466名無しさん@そうだ選挙にいこう:2013/07/09(火) 22:23:03.95
A列に日付として
B1:=IF(A1<DATE(YEAR(A1),3,31),DATE(YEAR(A1)-1,3,31),DATE(YEAR(A1),3,31))
下にコピー
467名無しさん@そうだ選挙にいこう:2013/07/09(火) 23:47:43.87
=DATE(YEAR(A1)-(MONTH(A1)<4),3,31)
468名無しさん@そうだ選挙にいこう:2013/07/10(水) 00:49:54.19
>>466,467
ありがとうございます
469名無しさん@そうだ選挙にいこう:2013/07/10(水) 01:06:47.34
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


エクセルの表示について教えて下さい。

ツールをクリックすると、全ての項目は表示されずに一部の項目のみ表示
されると思いますが、その中に表示されてる項目を表示されないようにし
たいのです。

ツールをクリックすると、「変更履歴の作成」と一番上に表示されます。

これを表示されないようにするには、どのようにすれば良いでしょうか?
よろしくお願いします。
470名無しさん@そうだ選挙にいこう:2013/07/10(水) 01:41:05.57
用事終わったら解決してた。
>>464
予期しない動作じゃなくてヘルプ通りの動作だった、スマン

検索値は"or()"という「文字列」。ほとんど"o"という文字で検索したのと変わらんね
or()という関数や命令ではなく、文字列なんだ。
そして、それをlookup関数の仕様通りに実現したのが>463
(恐らく文字コードでの検索値未満の数を検索している)

わからないなら、>>463の通りに式を作り、実行するといいと思う。
>>469
残念ながら、excel2kはフルすぎる。回答者も少ない。しばし、待て
471ぴころ ◆lHG3Yzo0a6 :2013/07/10(水) 06:34:34.00
>>467
おまえ偉い(^▽^)
472名無しさん@そうだ選挙にいこう:2013/07/10(水) 06:56:35.22
>>469
表示しないというのが、項目を削除するということなら
メニューバーで右クリックして「ユーザー設定」のダイアログを出した状態で
メニューから削除したい項目を右クリックして削除

ユーザー設定のオプションで「常に全てのメニューを表示する」のチェックを外し
メニュー下の下向き≫をクリックする前から常に表示する項目と、クリック後のみ表示する項目を
任意で設定したいということなら、その設定機能は無いので諦めよう
473448 ◆upmIvMVKO6 :2013/07/10(水) 09:04:18.04
>>470 ありがとうございます。
勉強になりました。
or() のoが検索値(アルファベットで最終)となっていたわけですね^^;
なのでpを入れても反応がなかった。
474名無しさん@そうだ選挙にいこう:2013/07/11(木) 02:12:08.66
>>472
回答ありがとうございます。
やってみたところできませんでした。

ユーザー設定のダイアログを出し、コマンドというタブを選択
(メニューというタブは存在なし)して、左側の「分類」の中にある、
ツールを選択。

「変更履歴の作成」という項目はなく、「変更箇所の表示」という
ものがありました。その上で右クリックすると、「説明の表示(W)」
が表示されます。

右クリックで削除することができません。それは他の項目も同じで、
どの項目を右クリックしても、「説明の表示(W)」しか表示されま
せん。

やり方が間違っているでしょうか?もしそうならご指摘頂けると幸
いです。よろしくお願い致します。
475名無しさん@そうだ選挙にいこう:2013/07/11(木) 08:14:54.92
>>474
傍目で見ると日本語読解力の不足か。
>>472 曰く
>メニューバーで右クリックして「ユーザー設定」のダイアログを出した状態で
>メニューから削除したい項目を右クリックして削除
どこにもユーザー設定のダイアログをクリックしろとは書いてない。
強いて文言修正するなら、

>メニューバーを右クリックして「ユーザー設定」のダイアログを出した状態で
>メニューバーのの削除したい項目を右クリックして「削除」(元に戻すには「リセット」)

お礼するなら >>472 に言ってくれ。
476名無しさん@そうだ選挙にいこう:2013/07/11(木) 21:57:04.52
>>475
削除できました。
ありがとうございました。

>>傍目で見ると日本語読解力の不足か。

そうかも知れません(笑)
477名無しさん@そうだ選挙にいこう:2013/07/13(土) 01:17:29.72
D:\DATAに複数のブックを入れ、menu.xlsmにマクロを書きます。
menu.xlsmのB列にブック名、C列にシート名を書き、
オートフィルタでシート名を抽出した後にマクロを実行して
該当のブックを開きます。

Sub test1()
 フォルダ名 = "D:\DATA"
 シート名 = Range("C1048576").End(xlUp)
 ブック名 = Range("C1048576").End(xlUp).Offset(0, -1)
 Workbooks.Open Filename:=フォルダ名 & "\" & ブック名
 Worksheets(シート名).Select
End Sub
478名無しさん@そうだ選挙にいこう:2013/07/13(土) 01:24:27.07
ひでぇw
なんじゃこりゃ?
479名無しさん@そうだ選挙にいこう:2013/07/13(土) 02:53:56.66
>>477
ふむ
で、何を相談したいのかな
480名無しさん@そうだ選挙にいこう:2013/07/15(月) 12:28:33.27
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
6種のキーワードを6行分ほどFINDして、FIND結果のフラグを表示するよう関数を組んだら
「FIND対象の行」のどこか1行に入力しようとしただけで1秒くらい待たされる重いものになってしまいました
代替案はないでしょうか

=IF(AND(ISERROR(FIND(CM120,C100)),ISERROR(FIND(CM120,C102)),ISERROR(FIND(CM120,C104)),ISERROR(FIND(CM120,C106)),ISERROR(FIND(CM120,C108)),ISERROR(FIND(CM120,C110))),0,CO120)
C100から1行おきに6行FINDしています。検索キーワードがCM120(他計3箇所)に格納してあり、CO120がどれか1行でもFIND成功時の結果フラグが隠してあります。
CM120から6行ほど(いずれも日本語数文字)に6種のキーワードで、1セルに付き上の式が1つ、6セルです。別のセルでその6セルのSUMを出して、検索ヒットかどうかを判定してます。

その式で、C100からC110のどこかに入力をしようとすると、1秒くらい待たされます。
481480:2013/07/15(月) 12:30:35.41
ちなみに検索語句によって、フラグの数値が変わるので、
CO120(CO120から6行)は変更できません。
(TRUEかFALSE(ERROR)、0か1かってことにするような変更は出来ません)
482名無しさん@そうだ選挙にいこう:2013/07/15(月) 12:40:37.82
2007で未と打ったセルをドラッグでオートフィルしたら甲と続いてマジびびった
済に対しての未だったんだがw
そのくせ明治とか大正とか打ってドラッグしても同じ値のままなのな
あと干支(壬午とか戊申とか)でも駄目だった
483名無しさん@そうだ選挙にいこう:2013/07/15(月) 13:02:54.16
↑甲じゃなくて申の間違いだった
十二支(子丑寅卯辰巳午未申酉戌亥)と
十干(甲乙丙丁戊己庚辛壬癸)はそれぞれいけるけど
混ぜると駄目だね
484名無しさん@そうだ選挙にいこう:2013/07/15(月) 13:32:32.57
>>480 入力したセル全部選択してDel。
スッキリするよ
485名無しさん@そうだ選挙にいこう:2013/07/15(月) 20:06:01.01
>>480
先に文字列を結合させれば一回のfindで済む。多分こっちのほうが軽い
find(cm120,c100&c102&104&106)

あとは多分ブックが重くなってるので作り直したほうがいい気もする。
作り直しと言ってもコピーするだけ
486名無しさん@そうだ選挙にいこう:2013/07/15(月) 20:40:55.61
シートへの入力は右方向につかわずに出来るだけ下方向へ使う方が重くならないらしいよ
だからレイアウト自体も出来れば見直した方が良いね
487名無しさん:2013/07/15(月) 21:06:43.75
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

EXCELとBASE64について質問です

とある英字をBASE64で変換した結果が次のようになったとします。
「VGl0ZWNo」(Gの次は小文字のL、Lの次はゼロ。最後は小文字のO)

この英字を、逆変換(EXCELを用いて)して、元の文字を求めるにはどうればいいか?
答えとやり方を教えてください
488名無しさん@そうだ選挙にいこう:2013/07/15(月) 21:28:46.25
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

よろしくおながいします
なんかヘンなデータもらっちまって困りますた
助けてください
材料をいつ、だれが、何を、どれくらい買ったのか、のファイルなんですが、
CSVファイルを変換しないでエクセルにベタコピー?したのか、
セルひとつに空白で区切られたデータが何個も入ってます
なぜか日付や購入者名はセルひとつずつに収まってるんですが
材料名が、

ネジ4個 防水シールド1個 ガスケット1個 脚立1台 蛍光灯10W1本

みたいに、ひとつのセルの中にに空白で区切られながらまとまって入ってます
これを、セル1個につき材料名1個みたいにバラしたいのですが、
何の関数使ったらいいんでしょうか
作業列の用意はできます

でも、
あとで材料ごとにどれくらい買ってるかを集計しなくちゃならんのですが、
(vlookupを使うつもりでいますた)
ここはバラさない方がいいでしょうか
なんかとにかく見づらいヘンなデータで・・・
489名無しさん@そうだ選挙にいこう:2013/07/15(月) 21:48:25.39
>>487
Excel不要
答え・・・ Titech
やり方・・・BASE64 変換 で検索→それ用サイト発見

>>488
1セル1材料化 ・・・ データ→区切り位置

材料ごと集計 ・・・ COUNTIF関数
490487:2013/07/15(月) 21:51:27.28
>>489
すいません、Excelを用いて16進法とかコード表照らし合わせてやるやり方を教えて欲しいです。
491名無しさん@そうだ選挙にいこう:2013/07/15(月) 21:51:44.10
ピボットテーブルで
492488:2013/07/15(月) 22:04:04.29
>>489
その手があったあぁぁぁぁ
どうもありがとうございますた!
493名無しさん@そうだ選挙にいこう:2013/07/15(月) 22:08:28.34
>>486
初めて聞いた
ソースってあります?
>>487
やってる人いるみたい。「EXCEL bace64」などで頑張って検索して!
http://www.ken3.org/vba/backno/vba160.html
vba使わない回答は、諦めたほうがいいと思う。
俺は不毛すぎるのでちょっとやる気が起きないなぁ。
494名無しさん@そうだ選挙にいこう:2013/07/16(火) 00:02:41.09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
入力規則リストですが、255文字の文字制限があります
別ワークシートや非表示セル(同シートの表示セルはもってのほか)を
使うなという指定がある状態で
入力規則のリストだけで400文字分のリストを作らなければいけません
どうにかして、入力規則リスト同士を結合するとか、入力規則リストから
INDIRECTっぽいもので更なる入力規則を呼ぶなどの方法はないでしょうか?
495名無しさん@そうだ選挙にいこう:2013/07/16(火) 00:31:36.98
>>494
ないです
496名無しさん@そうだ選挙にいこう:2013/07/16(火) 00:32:21.37
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 多少は
【4 VBAでの回答の可否】 可

Excelを開いたときにWindowsのタスクバーの表示で単体だと
「Microsoft Excel - ファイル名」となり、複数開くと
「ファイル名」になります。

これを、常に「ファイル名」だけにしたいのですが、何か方法はないでしょうか?
497名無しさん@そうだ選挙にいこう:2013/07/16(火) 06:32:50.54
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

下の図で、
■に数字などを入力すると
◆のセルにも同じものが入力されるようにする方法はありますか?
一発でできないとしても、より簡単にする方法があれば教えて頂きたいです
よろしくお願いします

■□◆□◆□◆……
□◆□◆□◆□
◆□◆□◆□◆
□◆□◆□◆□
:
:
498名無しさん@そうだ選挙にいこう:2013/07/16(火) 07:38:59.68
>>497
A3,B2へ以下の式を入力
=IF($A$1="","",$A$1)

A2:B3を選択し下方向へコピペ

そのまま右方向へコピペ

B3から右方向任意のセルをコピーしB1へペースト(貼り付け)

以降A1入力すればご希望のようになります
499498:2013/07/16(火) 08:38:16.38
>>497
第2案(式の軽量化=シートの軽量化案)
A3,B2,C1へ以下の式を入力
=IF(A1="","",A1)

B1:C1を選択し右方向へコピペ

A2:B3を選択し下方向へコピペ

そのまま右方向へコピペ
500名無しさん@そうだ選挙にいこう:2013/07/16(火) 08:56:31.38
>>497
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  If Target.Address = "$A$1" Then
    w = Range("A1").Text
    For i = 4 To 200 Step 2
      For j = 1 To i - 1
        Cells(i - j, j) = w
    Next j, i
  End If
  Application.ScreenUpdating = True
  Application.EnableEvents = True
End Sub
501名無しさん@そうだ選挙にいこう:2013/07/16(火) 10:37:37.27
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

MIN(INDEX((A2:A10=A1)*B2:B10,))
とやったときに「A2:A10」の中で「A1」と同じ列の「B2:B10」を参照して最小を返す
というものを作りたいのです。(「A2:A10」には複数の「A1」の数値がある)

マイナス値で一番大きいものはちゃんと表示されるのですが、
参照先の数値がプラス"のみ”になったときには数値が「0」になってしまいます。
どのような状態でも最小値を返したいのですが、どのようにすればよろしいですか。
ご教授ください。
502501:2013/07/16(火) 11:41:33.92
>>501
すみません追記ですが、「A2:A10」「B2:B10」ともに昇順ではなく、ランダムです。
503名無しさん@そうだ選挙にいこう:2013/07/16(火) 12:55:44.58
>>498,499,500
お三方、有難うございます!

初歩的な質問で大変恐縮ですが
>>500がVBAというやつですか?
excel使い始めたばかりなもので…
後学のために教えて頂けたらと思います
よろしくお願いします
504名無しさん@そうだ選挙にいこう:2013/07/16(火) 19:24:34.42
質問です。
CSVファイルの中にある電話番号等(最初に「0」
がある数字列)が、数字項目として認識され、
ファイルを開くとリーディング0がなくなります。
CSVファイルを開く時、全ての項目を文字列として認識させるようにするには、
どうすれば良いのでしょうか?
505名無しさん@そうだ選挙にいこう:2013/07/16(火) 21:56:49.33
>>504
拡張子をtxtに変更
テキストを読み込む際のウィザードでカンマ区切りを選択
データの先頭が0の列を文字列に変更
506名無しさん@そうだ選挙にいこう:2013/07/16(火) 21:58:07.67
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

基本的なことだと思いますが、Excelでセルに001と入力したいんですが、実際に入力してEnterをおすと「1」のみの表示になってしまいます
どうしたら「001」と表示できますか?
507名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:11:06.86
>>506
1、書式設定→表示形式をユーザー定義→「000」に
2、表示形式を文字列に→関数に組み込む時VALUE関数で数値にするか*1
508名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:16:03.59
>>507
ありがとうございます
509名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:27:10.02
【1 OSの種類         .】 Windows8
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelの関数の =CODE() の逆の関数はなんですか?教えてください
510名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:42:40.32
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

<やりたいこと>
商品1(B列)は0〜4個、商品2(C列)は0〜3個、商品3(D列)は0〜2個を、図の様に繰り返したいです。
図では商品は3種類、個数は最大4個ですが、実際は商品は約10種類、個数は最大50個あります。
VBAのFOR/NEXTを利用してできないかなと。
ttp://www.dotup.org/uploda/www.dotup.org4343273.jpg
511名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:53:00.03
>>509
=CHARかな
512名無しさん@そうだ選挙にいこう:2013/07/16(火) 22:55:30.66
>>506
イ、書式設定→表示形式を文字列へ
ロ、001の前に"'"を付けて'001と入力
513名無しさん@そうだ選挙にいこう:2013/07/16(火) 23:16:10.72
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

え゙?
514名無しさん@そうだ選挙にいこう:2013/07/16(火) 23:37:16.91
>>503
vbaの中でもちと特殊でな0
(プログラミング的にやや特殊という意味で、EXCEL限定なら逆に特殊でもないのだが・・・そこは自分の目で確かめてみてほしい)

マクロの自動記録から始める
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/index.html

このWorksheet_Change(ByVal Target As Range)
関数は、イベントに属するんだ
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_event.html

根っこの部分から理解していれば容易いんだけど、イベント(ワークシートクラスのメソッド)と普通の関数の違いは、
本当にややこしいと思う。
数行で教えきれるものではない。でもまぁ、使いこなせるようになればそこから理解できると思う。頑張って。
515名無しさん@そうだ選挙にいこう:2013/07/17(水) 00:08:49.74
>>513
もしかして → 丸投げ
516名無しさん@そうだ選挙にいこう:2013/07/17(水) 00:28:45.45
>>510
sqlの外部結合だっけ?なんかあったな。忘れた。
何とか結合がそのままそのテーブルになるはず。テーブルを頑張るといいと思う

fornextなら、うーん、なんだろう。俺なら作業列を作ってテキトーにカウントするけど
ねむたい
>>513
コードだけ貼って失せろってことだろ言わせんな。
517名無しさん@そうだ選挙にいこう:2013/07/17(水) 05:25:33.40
>>514
なるほど…
とても勉強になりました
ありがとうございます!
518504:2013/07/17(水) 09:14:01.78
>>505
レスありがとうございます。
519名無しさん@そうだ選挙にいこう:2013/07/17(水) 13:16:18.59
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
入力規則>リスト>セルの範囲を指定してリストを作ったのですが、例えばA5〜A21をリスト範囲にした時に、
A19とA17に空白があった場合、2つ空白が表示されてしまいます。
VBAを使わずにこの空白を詰める方法はないでしょうか?
520名無しさん@そうだ選挙にいこう:2013/07/17(水) 15:52:13.33
>>519
B5=IF(A5="","",MAX($B$1:B4)+1)
C5=INDEX(A5:A21,MATCH(ROW()-4,B5:B21,0))
C5:C21をリストに設定
521名無しさん@そうだ選挙にいこう:2013/07/17(水) 19:19:42.31
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

お疲れ様です
条件分岐の流れを、VBAが扱えない人が拡張できるように作ることはできないでしょうか?

コンボボックス1で『やさい』を選んだら、コンボボックス2は『キュウリ』『キャベツ』等を選べれる
これはVBAがわかる人なら、if文で簡単です
これにVBAがわからない人が
コンボボックス1で『さかな』を選んだら、コンボボックス2は『あああイワシ』『サバ』等を選べれる
を追加できるようにしたいのです
簡単な方法はないでしょうか?
522名無しさん@そうだ選挙にいこう:2013/07/17(水) 19:44:40.94
>>521
コンボボボックスじゃなく、リストじゃダメかな
http://www.relief.jp/itnote/archives/000822.php
サンプルファイル(シート2がメイン)
http://www.relief.jp/itnote/archives/files/000822.xls
523519:2013/07/17(水) 21:44:46.56
>>520
ありがとうございます。
ためしてみます。
524名無しさん@そうだ選挙にいこう:2013/07/17(水) 22:31:34.46
結果がすぐにわかるハズなのに、なんで「ためしてみます」って書くのかね。
もしかして、理解できなかったのかな?
525名無しさん@そうだ選挙にいこう:2013/07/17(水) 22:36:21.15
>>524
結果を見て褒めて欲しいのか?(´ー`)y−〜〜
526名無しさん@そうだ選挙にいこう:2013/07/17(水) 23:32:57.05
どういう教育受けたら「選べれる」なんて言葉が出てくるのかね
527名無しさん@そうだ選挙にいこう:2013/07/18(木) 00:15:50.69
電車の中でスマホで2ちゃんを見てるんだよ
528名無しさん@そうだ選挙にいこう:2013/07/18(木) 03:54:14.53
>>526
外国の人かも知れないし
小学生かも知れないだろ
些細なことばかり気にかけて
今自分のやるべきことが見えないようじゃ
立派な大人になれんぞ
529名無しさん@そうだ選挙にいこう:2013/07/18(木) 04:37:20.60
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
OSの地域の設定で並べ替え順を部首順にすると
通貨設定ボタンのドロップダウンリストから米ドルが消えてしまいます。
復活する方法はないでしょうか?
530名無しさん@そうだ選挙にいこう:2013/07/18(木) 14:39:17.93
>>529
http://www.dotup.org/uploda/www.dotup.org4347283.png
下の部分を変えるんだよね?
変えて再起動とか色々してみたけど、us$は消えなかった。他の部分の設定じゃないかな
531529:2013/07/18(木) 20:48:40.27
>>530
レスありがとうございます。が、上が違います。
下の部分を変えたら、リボン上にある通貨アイコンの▼を
クリックしてみてください。OSの再起動は不要です。
532510:2013/07/18(木) 21:39:50.11
>>516
こんな感じでなんとかならないかと思ったのですが…
アドバイスTHX。がんばってみる

bmin=0, bmax=4, cmin=0, cmax=3, dmin=0, dmax=2
for b=bmin to bmax
for c=bmin to cmax
for d=bmin to dmax
……
next
next
next
533名無しさん@そうだ選挙にいこう:2013/07/18(木) 22:59:10.40
>>530
これのことじゃね?
http://www.dotup.org/uploda/www.dotup.org4348289.jpg
でも結局はその他の通貨表示形式をクリックすれば>>530の上の画像が出てきてそこで$設定すれば済む話なん
だけどね
534名無しさん@そうだ選挙にいこう:2013/07/18(木) 23:06:48.26
>>531
なるほど。
その設定がそこと連動してるんだろうね。

ツールバーに新規で登録するか
http://allabout.co.jp/gm/gc/297785/

CTRL+1(書式設定が出せるらしい。俺の環境では無理だった)ってショートカットを試してみるか、かな。
535529:2013/07/19(金) 03:40:21.79
>>533
それです。そこに$を復活させたいというのが今回の相談事です。
>>534
ムリですかね。
ひと手間かけて書式設定ダイアログを出せばよいというのはおっしゃる通りです。
536名無しさん@そうだ選挙にいこう:2013/07/19(金) 23:02:23.89
▼━質問テンプレ (必ず使ってね) ━━━
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可(簡単な説明をつけていただければなお幸いです)

「ファイルを開く」ダイアログボックスを表示し、選択したエクセルファイルの指定したセル領域(範囲は固定、事前に指定済み)だけを抜き出してコピーするマクロを作成したいと思っています。
アドバイスのほどよろしくお願いいたします。
537名無しさん@そうだ選挙にいこう:2013/07/19(金) 23:08:14.03
>>536
ファイル指定で、
538名無しさん@そうだ選挙にいこう:2013/07/19(金) 23:34:23.59
>>537
ありがとうございます。
しかし、例えばvntFileNameに参照先ファイルパスが入っている場合
そのファイルのC4-C5領域を、読み出し元ファイルのD1-D2にコピーする方法が分かりません。
簡単な問題かもしれませんがアドバイスをいただけると助かります。
539名無しさん@そうだ選挙にいこう:2013/07/20(土) 10:14:18.59
>>538
Sub Sample1()
x = ActiveWorkbook.Name
Dim g
g = ActiveWorkbook.Path
Workbooks.Open g & "/b.xlsm"

Workbooks(x).Worksheets(1).Cells(1, 1) = _
Workbooks("b.xlsm").Sheets(1).Cells(1, 1)

End Sub
こんあ感じ
540名無しさん@そうだ選挙にいこう:2013/07/20(土) 10:37:13.09
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel97
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
EXCELは非表示/再表示でセルをまとめて隠すことが出来ますが
隠されたセルに更にもう1段階見えなくするセキュリティを施したいと考えています
なにか動作が軽くて手っ取り早くセルを纏めて1000〜5000セルくらい隠せる方法はないでしょうか?
(表示中のセルからその非表示セルを必要な時だけ参照できる事が前提で)

現在非表示状態の上にさらに全セルに条件式を入れて本当に必要な時しか
セル内の項目が現れないようにしてるんですが
(それでもカーソルをあわせれば式の中に個々のデータが見えてしまいますが
非表示になっている「参照するための表」の全体が見えなければ問題ないです)
それだとどうしても非表示項目が増えるたびに余計な手間がかかる上に
動作が重くなってしまって困っています

VBAを使うと「このシートはマクロを使っています。ウイルスの危険性があります」といった風なエラーが出て
自分だけ警告設定をOFFにすればいいのですが他の人が使うときは当然エラーが出てしまって都合が悪いので
VBAなしで非表示よりもう一段階上のセキュリティをかける方法があればご教示下さい
541名無しさん@そうだ選挙にいこう:2013/07/20(土) 11:11:46.52
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】否
A2〜l6を罫線で囲んでその外枠を太罫線で囲みたい場合は
Sub test()
With Range("a2:l6").Borders _
.LineStyle = xlContinuous
End With
Range("a2:l6").BorderAround Weight:=xlThick
end sub
では正しく引けません、これはどうやったらいいですか
542名無しさん@そうだ選挙にいこう:2013/07/20(土) 11:28:47.68
>>541
Sub test()
  With Range("A2:L6")
    .BorderAround LineStyle:=xlContinuous, Weight:=xlThick
  End With
End Sub

まずはコピペを覚えような
543名無しさん@そうだ選挙にいこう:2013/07/20(土) 12:33:03.90
>>540
非表示セルが簡単に再指示できてしまうのが嫌なのか?
それならシートの保護でなんとかなると思う。必要ならパスワード付で。
(または別シートにデータを移してそのシートを非表示にしてブック保護)

さすがにExcel97は忘却の彼方だな。
このあたりは変わっていないだろう・・・と思うが、Excel97は現在より保護できる項目が少なかったはず
またパスワード処理も現在のExcelより甘々の玩具だった。
544540:2013/07/20(土) 14:22:20.35
>>543
ありがとうございました!
545名無しさん@そうだ選挙にいこう:2013/07/20(土) 14:43:14.75
え゙?
543の回答で解決したの?www
546名無しさん@そうだ選挙にいこう:2013/07/21(日) 08:43:44.29
一番左のシートの セルA1 に 「左から2番目のシートのセルA1の数値」と「左から3番目のシートのセルA1の数値」の差を入れる記述は出来ますか?
シート名が固定なら ='シート2'!A1-'シート3'!A1 のように出来ると思いますが、
例えばシート名を日付にしてシートを追加・削除したりして、左から2番目と3番目のシートが頻繁に変わる場合どのようにすれば良いかお願いします。
547名無しさん@そうだ選挙にいこう:2013/07/21(日) 08:55:12.27
>>546
VBAを使えばSheets(2)、Sheets(3)のように名前関係なく並んでる順番で書ける
548546:2013/07/21(日) 10:28:39.64
>>547
ありがとうございます。
質問テンプレ使うの忘れてました(^^;
VBA一応使えますが、使わずできるかなと質問してみました。
549名無しさん@そうだ選挙にいこう:2013/07/21(日) 10:57:17.04
あげ
550名無しさん@そうだ選挙にいこう:2013/07/21(日) 11:28:03.24
最初からそれを書かないから望む回答が得られない
次からは気をつけよう、そしてさようなら
551名無しさん@そうだ選挙にいこう:2013/07/21(日) 13:48:22.30
>>546
indirect関数を使えばいいよ
20130721ってシートなら
=INDIRECT(TEXT(TODAY(),"yyyymmdd")&"!r1c1",0)
でok
もしくは、エクセル くしざし計算 でぐぐって見て
552名無しさん@そうだ選挙にいこう:2013/07/21(日) 15:19:14.93
Excelのシートを大量に増やす場合
関数が快適に動くのは何枚ぐらいまでとかあったりしますでしょうか?
関数は単純な合計や平均値程度ですセルも200列行以内です。
553名無しさん@そうだ選挙にいこう:2013/07/21(日) 15:29:44.52
>>552
式の内容やマシンのスペックによって大幅に変わるので「自分のマシンでやってみないとわからない」
554名無しさん@そうだ選挙にいこう:2013/07/21(日) 15:31:10.31
>>552
PCの性能に依存するし、バージョンにもよるのでそれだけだとなんとも言えない。

作ってみたら確実だと思う。
シートタブをshiftキー押しながら範囲選択で選んで、ctrlで移動させると一気に複製できる。
555552:2013/07/21(日) 15:39:22.15
>>553
>>554
ありがとうございます
>シートタブをshiftキー押しながら範囲選択で選んで、ctrlで移動させると一気に複製できる。
これは楽ちんですね。ありがとうございました。
556名無しさん@そうだ選挙にいこう:2013/07/21(日) 22:47:21.68
教えてください。

セルのA1からA100まで、先月来店したお客様のID(数字)が並んでいます。

そした、 セルのB1からB100まで、今月来店したお客様のお客様ID(数字)が並んでいます。


この両月のIDを突き合わせて、差分のID(先月来店して今月来なかったお客様を調べるなど)を抽出したいのですが、どうすれば良いですか?

vlookup?を使えば抽出できると聞いたことがありますが、やり方が全く分からず困っています。
明日までにやらなければならないんですが、全く作業が進みません。

どうか上記の関数式の記述までお願いしたく。

どうぞよろしくお願いいたします!!!
557名無しさん@そうだ選挙にいこう:2013/07/21(日) 22:57:06.95
>>556
C1に次の式を入れる
=IF(ISERROR(VLOOKUP(A1,B:B,1,FALSE)),"先月だけ","両方")

D1に次の式を入れる
=IF(ISERROR(VLOOKUP(B1,A:A,1,FALSE)),"今月だけ","両方")

C1〜D1をコピーしてC2〜D100へ貼り付け
558名無しさん@そうだ選挙にいこう:2013/07/21(日) 23:01:26.62
>>556
C1=COUNTIF(B:B,A1)
とifを組み合わせてもいけるけど、まぁ>>557
559名無しさん@そうだ選挙にいこう:2013/07/21(日) 23:10:19.44
>>557
>>558

神様ありがとうございます!!!
救われました(泣)

スレチ恐縮ながら、もう一つ教えてほしいんですが、Accessって簡単に言うとどういうものですか?
どんなことができるツールなのでしょうか?
具体例あれば、簡単にで構いませんのでご教示ください。
よろしくお願いいたします。の
560名無しさん@そうだ選挙にいこう:2013/07/21(日) 23:39:59.45
>>559
データベースを扱うソフト。Excelのデータ集積や表計算に近いけど
表の見かけなどが分離されていて、より純粋にデータとしてまとめる
サーバ用のSQLやSSHを知っているなら理解しやすいかと
561名無しさん@そうだ選挙にいこう:2013/07/22(月) 00:39:12.04
>>559
見た目は似てるけど、全然違うんだよなぁ
無料ならオープンオフィスのbaseを触ってみると、良い
accsessはやや特殊らしいので、この差は知らん
562名無しさん@そうだ選挙にいこう:2013/07/23(火) 00:09:30.12
【1 OSの種類         .】 Windows7(&XP)
【2 Excelのバージョン   】 Excel2010(&2000)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
こちらでWindows7+Excel2010で編集不能になるように保護したセルは
先方の使っているWindowsXP+Excel2000でも保護が動作するでしょうか?
こちらの作ったシートに対して先方が何も言って来ないので、
間違って編集不能項目を弄ってしまっていないか、
そもそもちゃんとファイルが読み込めているのかが不安です。

もし動作しないなら
・.xlsで保存したにも拘らずExcel2000でシート自体が読み込めないのか?
 読み込めはするが保護だけが効かないのか?
 あるいは別の不具合か?
・Excel2010で保護設定しつつ、2000でも同様の動作をさせる方法はないか?
を教えて下さい。よろしくお願いします。
563名無しさん@そうだ選挙にいこう:2013/07/23(火) 00:19:08.25
先方とやらと同じ環境を用意するなり、先方に出向くなりしろよ
仕事なんだからそれくらいやれ、甘えんな
ここで嘘教えられて真に受けて損害被ってもしらんぞ?
564名無しさん@そうだ選挙にいこう:2013/07/23(火) 00:28:21.46
むしろ先方にWin7か8に買い換えろって言えよw
565名無しさん@そうだ選挙にいこう:2013/07/23(火) 01:04:40.23
「先方」とさえ書かなければw
566名無しさん@そうだ選挙にいこう:2013/07/23(火) 01:17:49.49
>>562
そもそも2000以前の保護と2002以降の保護は仕様が違うため2010で保護されたファイルは2000では一切読み込めない
読み込めるようにするには保護を外すしかない保護したままで2000でも開けるようにと言うなら無理
567名無しさん@そうだ選挙にいこう:2013/07/23(火) 01:22:15.49
>>565
個人なら断れば良いだけの事、MSがサポート切ったソフトの面倒なんてお断りだ
568名無しさん@そうだ選挙にいこう:2013/07/23(火) 02:11:45.71
>>567
>>565>>562ではない
569名無しさん@そうだ選挙にいこう:2013/07/23(火) 08:17:38.74
だから何?
570名無しさん@そうだ選挙にいこう:2013/07/23(火) 09:59:26.72
>>569みたいのを「ゆとり脳」って言うんだな・・・
実在するとは思っても見なかった
571名無しさん@そうだ選挙にいこう:2013/07/23(火) 12:25:30.46
相手に根拠無くレッテル貼りすることでしか
自分の立ち位置や存在意義を確立できない子
572名無しさん@そうだ選挙にいこう:2013/07/23(火) 14:21:16.85
>>569
つまんねーこと聞くなよ!
573名無しさん@そうだ選挙にいこう:2013/07/23(火) 14:27:21.58
私の赤ちゃんはどこー?
574名無しさん@そうだ選挙にいこう:2013/07/23(火) 15:12:10.56
【1 OSの種類         .】 Windows7(&XP)
【2 Excelのバージョン   】 Excel2010(&2000)
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

複数のエクセルファイルからデータ取得するために
ExecuteExcel4Macroを使ったのですが
ローカルで使っていた分には早かったのですが
ネットワーク上で使ったらうんこみたいに遅くなりました

普通にブックを開いてデータ取得をしようとしたら、
一部のブックでデータがどこか破損しているのか、エラーが出てしまうので
ExecuteExcel4Macroで取得したいのですが、解決の方法はありますか?
575名無しさん@そうだ選挙にいこう:2013/07/23(火) 15:16:07.40
>>574
原因は多すぎてどれか分からん
ネットワーク vba 遅い
でぐぐって調べてみて

俺の時はtempファイルが大きすぎてスワップしていた
もしかするとカレントフォルダをローカルに移せば解決するかも知れない
なんにしろ、ローカルで使うほうがいいと思う
576名無しさん@そうだ選挙にいこう:2013/07/23(火) 15:34:51.11
>>574
可能なら、まずファイルをローカルにコピーしてから開く
577名無しさん@そうだ選挙にいこう:2013/07/23(火) 16:00:27.31
>>575
>>576

対象をローカルに移したら早くなるのですが、
色んなPCから使用可能にしなければいけないので、
ネットワーク上じゃないとダメなんですorz
一時的にファイルをローカルにってのも考えたんですが、
あまりローカルのPCを触る方向にはしたくなくてですね。
使用するのが僕だけならいいのですが。。。

とりあえずexcel4がネットワーク上でデータ取得しようとしたら遅い
しか今わかってないですorz

素人過ぎてすんませんorz
578名無しさん@そうだ選挙にいこう:2013/07/23(火) 17:22:34.14
>>577
カレントフォルダは変えてみた?

あとこの2つをためしてみるか
http://support.microsoft.com/kb/833041/ja
http://turedure.cocolog-nifty.com/log/2011/07/excel-0014.html

それかマクロ4をvbaに一度書きなおしてみるか
(これで治る可能性は低そうだけど)

でなければ.NETでプログラムを作るか
579名無しさん@そうだ選挙にいこう:2013/07/23(火) 17:32:17.93
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 いいえ

所得区分別に所得税額を計算する表を作成したのですが、
それを従業員の所得一覧表に自動的に当てはめて、
従業員それぞれの税額を自動的に算出したいのです。

所得税額の計算表を関数みたいにして、従業員の所得一覧表の中で
呼び出す方法はありますでしょうか。
580名無しさん@そうだ選挙にいこう:2013/07/23(火) 17:36:31.17
>>579
vlookup関数
581名無しさん@そうだ選挙にいこう:2013/07/23(火) 17:42:15.18
579です。早速の回答ありがとうございます。こちらの説明が不十分でした。
計算表は、所得金額を入れると税額が計算される仕組みになっています。
ゾーンによって、税額が決まるわけでないので、固定値を返す、Vlookupは使えないように思います。
582名無しさん@そうだ選挙にいこう:2013/07/23(火) 18:07:57.30
ん、ごめん、酔っ払ってていまいちイメージが出来ないw
複数の表、税区分か。それがあるなら、vlookupで出したものを足せばいいと思ったけど、
なにか違うのかな

できればシートごとアップしてもらえると助かります。
583名無しさん@そうだ選挙にいこう:2013/07/23(火) 18:12:04.29
>従業員それぞれの税額を自動的に算出したいのです。
>計算表は、所得金額を入れると税額が計算される仕組みになっています。

既にそうなっているならそれでいいと思う。
584名無しさん@そうだ選挙にいこう:2013/07/23(火) 18:19:26.57
USD
月次課税所得 税率 月額給与 1,300.00
0 〜 500万ドン以下     5% 基礎控除 428.6
500万ドン超 1000万ドン以下 10% 課税所得 871.4
1000万ドン超 1800万ドン以下 15% 所得税     95.7
1800万ドン超 3200万ドン以下 20%
3200万ドン超 5200万ドン以下 25%
5200万ドン超 8000万ドン以下 30%
8000万ドン超         35%

シートは直接アップできなくてすみません。表のイメージは、上記の感じです。
月額給与のところに数字を入れると、所得税が自動計算されます。
月額給与を所得一覧表の数字にそれぞれ置き換えて、所得税を計算したいのです。
585名無しさん@そうだ選挙にいこう:2013/07/23(火) 18:36:18.26
>>584
・最初に聞くけど、ドンってドル?
それとも万を生かして万円??

・あと、所得税の出し方がよくわからない。
累進課税?
なら500*5%で25、371.4*10%の37.1 を足して62.1だと思うけど違うかな。
・それと基礎控除って固定?その都度入力?

3つ教えてくれたら作ってあげる
586名無しさん@そうだ選挙にいこう:2013/07/23(火) 18:48:04.57
>585 ありがとうございます。

ドンはベトナムドンです。USDベースで給与、税金を計算します。
(1USD=21000ベトナムドンです。)
所得税は累進課税です。基礎控除428.6USDを引いた金額をベトナムドン標記
になおしたものに、累進課税されます。

基礎控除は固定です。

たすかります。ぜひお手本にさせてください。
587名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:05:45.76
>>586
okok
想像以上に難しいわw
588名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:12:56.94
>587
ありがとうございます。

ポイントは、税額計算のロジックよりも、税額を計算するルーチン(すでに表も含めて計算式として出来上がっている部分)を
所得一覧表の中に、うめこむところになりますので、そこを教えていただければありがたいです。
589名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:16:48.02
>>588
別シート使うが、良いかね
590名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:19:14.34
>589
大丈夫です。
591名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:27:55.58
俺も試しに作ってみた。
ttp://www.dotup.org/uploda/www.dotup.org4360754.xlsx.html

所得税95.7USD*21,000=2,009,700だが、シートで計算すると2,009,880VNDになる。これでいいのかは知らん。
592名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:28:28.48
うーん、ひどいのしかできそうにない。
他の回答者も、できそうならお願いします。
593名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:31:39.96
いや最終的に
       給料   税金    支払額
やまもと
わたなべ
さとう

で、累進課税はドンでの計算、
最終額ドル建て
の表がほしいんだよね?
594名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:42:09.70
>593
はい、そのとおりです。

表に税額計算のロジックを埋め込みたいのです。

>みなさま、
ありがとうございます。
HCMより感謝しております。
595591:2013/07/23(火) 19:44:15.27
>>593
なるほど。であれば、個人事に横に1次元で税率表を置いて同じ事をするだけだね
596名無しさん@そうだ選挙にいこう:2013/07/23(火) 19:50:14.74
>591
なるほど、そういう手もありますね。

一つの税率表を関数的に呼び出せる方法はマクロをつかわないと難しいのでしょうか。
597名無しさん@そうだ選挙にいこう:2013/07/23(火) 20:03:12.04
>>596
配列定数があるが・・・やめたほうがいい
598名無しさん@そうだ選挙にいこう:2013/07/23(火) 20:40:47.35
くっそだれも作らなかったか。誰かやれよw
>>584
http://www.dotup.org/uploda/www.dotup.org4360999.xlsx.html
まぁ、これ
最適化も何もしてないが怒るな

簡単に説明すると、まず10,11行目に税率の表を置く
変な色のセルに入力する
で、H1にレートを入れる
Q列にドン換算がわたって
R-X列でどん換算の税金計算

おそらくこれは見にくいだろうし、ここを覚えたいのだろうけど、エクセルだとこれが限界。
VBAならもっとスッキリ行くだろう。
この部分を頑張って作ろうと思うとマジでしんどいので、放置

で、それを最後にP列でsumして、K列で受け取る
最後に引き算して、L列に結果が表示されるというわけだな

アホすぎwarotaw

まぁVBAでやっても内部的に同じ処理をするだけなので、処理自体は変わらん
599名無しさん@そうだ選挙にいこう:2013/07/23(火) 20:41:28.23
別シートといったが、アレは嘘だ
全部seet2にまとめた。
飽きたからな
600591:2013/07/23(火) 20:51:36.97
ユーザー定義関数をつくってもメンテが面倒だったり再計算の挙動が不審だったりで
あんまし使い勝手がよくない 最近はどうかしらんけど昔はそうだった

というわけで改良版 さっきのを横に伸ばしただけ
ttp://www.dotup.org/uploda/www.dotup.org4361069.xlsx.html
601596:2013/07/24(水) 10:44:51.87
おはようございます。
税率表について、お尋ねしたものです。

今回のようなケースであれば、一行づつ税率を埋め込んだ方が
結果的に早そうですね。

いろいろと案をいただきましてありがとうございました。
602名無しさん@そうだ選挙にいこう:2013/07/24(水) 14:36:05.67
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2023
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ハイパーリンクを押すとエラー表示されます
「このコンピュータに設定されている制約のため、この操作は中止されました。システム管理者に問い合わせてください。」

ネットで調べた所
・プログラムのアクセスとコンピューターの既定の設定→カスタム→Internet Explorer 選択
・インターネットオプション→詳細設定→リセット 

などのやり方は書いてありましたがそれでも解決しませんでした
上記解決方法とは違う解決方法はありますか?
603名無しさん@そうだ選挙にいこう:2013/07/24(水) 15:03:02.98
すごい
未来のエクセルだ
604名無しさん@そうだ選挙にいこう:2013/07/24(水) 16:50:30.07
605名無しさん@そうだ選挙にいこう:2013/07/25(木) 09:29:56.79
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

例えば、列A・列Bにそれぞれ

AAAA  1
BBBB  3
AAAA  -2
CCCC  4
CCCC  5
  :

とある場合、

AAAA  -1
BBBB  3
CCCC  9
  :

のように、グループ表示(列Aは同じ名前でまとめて、列Bの数値は各グループの合計)と、
最初の個別表示をボタンなどを使いワンタッチで「交互に切り換え表示」する事は可能でしょうか?
606名無しさん@そうだ選挙にいこう:2013/07/25(木) 11:07:42.83
>>605
可能。
ラジオボタンにでも登録する
結構めんどくさいので詰まったらまた聞きに来て
607名無しさん@そうだ選挙にいこう:2013/07/25(木) 11:39:47.30
WindowsXPとEXCEL2002を使っています

エクセルで複数ファイルを開いているとき、
タスクバーでファイルを切り替えようとしても
1回のクリックでファイルが切り替わりません。
2回クリックすると切り替わります。

1回のクリックで切り替わるようにしたいのですが
どうしたらよいでしょうか
608名無しさん@そうだ選挙にいこう:2013/07/25(木) 11:51:09.38
>>607
タスクバーのプロパティでグループ化を解除
609名無しさん@そうだ選挙にいこう:2013/07/25(木) 13:49:24.70
>>605
シート1を上のような元データ
シート2を下のような集計にすれば良いだけでは?

あとはシートタブという名のボタンを押せば切り替わる

まあVBA使ってトグルボタン(チェックボックス)でやるにしても
A:Bに元データ、C:Dに集計を用意して
A:B表示&C:D非表示 <-> A:B非表示&C:D表示
を切り替えてやるだけだから簡単だがな
610名無しさん@そうだ選挙にいこう:2013/07/25(木) 14:05:03.73
>>608
駄目でした。
どうも、エクセルは タスクバー上でツールチップが出ていると
クリックしてもウィンドウが切り替わらないバグがあるようです。
マイクロソフトにバグ報告してみます。
611605:2013/07/25(木) 14:50:14.44
>>606
>>609
ヒントありがとうございます。
実際は列C以降にもデータがあって複雑な表になっているので、参考にして色々やってみます。
どうもでした!
612名無しさん@そうだ選挙にいこう:2013/07/25(木) 15:24:48.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
VBAなしで、特定範囲のセルがどれか一つでもNullではないと判別させる方法はないでしょうか?
判定式式をA1に入れるとして、A2〜C12までを検査して、全部NullならA1に0
どれか一つでも何か代入されているならA1に1を返す式が作りたいです
613名無しさん@そうだ選挙にいこう:2013/07/25(木) 15:36:09.02
>>612
=(COUNTIF(A2:C12,"")<33)*1
614名無しさん@そうだ選挙にいこう:2013/07/25(木) 15:37:34.00
>>613
ありがとうございます!
COUNTIFはいつも使ってるのに、度忘れしていました(´・ω・`)ショボーン
615名無しさん@そうだ選挙にいこう:2013/07/25(木) 15:43:19.19
>>613
COUNTBLANKのほうがよくね?
616名無しさん@そうだ選挙にいこう:2013/07/25(木) 15:50:39.77
こうか
=(COUNTBLANK(A2:C12)<>33)*1
617名無しさん@そうだ選挙にいこう:2013/07/25(木) 16:09:24.38
>>615-616
COUNTBLANKだと「計算の結果ブランクになったセル」が入力済みセルとカウントされるので、通常はCOUNTIFのほうがいい
まあ、>>612が「計算の結果のブランク」もブランクとしたいか、「完全なブランクのみ」をブランクとしたいかだな
618名無しさん@そうだ選挙にいこう:2013/07/31(水) 11:00:43.67
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

初めて質問させて頂きます。
最近会社のパソコンが変わりまして、
上記のOS、Excelのバージョンになった後に出る症状なのですが、
矢印キーでカーソルの位置を移動させると
急にシートが拡大し、直後に元のシート倍率に戻ります。

セルをコピーして貼り付けを行った後
矢印キーでカーソルの位置を移動させると
必ずこの症状がでます。

拡大した後元に戻るので、業務に大きく支障はないのですが、
操作していてとても気持ち悪いです。
なんとか、直す術はありますでしょうか?
回答よろしくお願いします。
619名無しさん@そうだ選挙にいこう:2013/07/31(水) 11:06:04.96
>>618
追記です。
セルをコピーした後、矢印キーでカーソルの位置を移動させても、
同じ症状が出ました。
620名無しさん@そうだ選挙にいこう:2013/07/31(水) 11:41:25.70
>>618
・ctrlが固定キー設定になっている→ctrlを5連打で設定が出てくるのでそれで解除
・変なマクロが入っている→ALT+F11で調べてみる
・キーボードがおかしい→一度抜き差ししてみる
あと、どれぐらいの拡大率になるかも教えて
621名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:01:36.87
質問です。
IF関数[例えばIF(A1<>B1,1,0)]でセルの値の比較する時、
セルの数値の値が同じでも、右詰め、左詰めが違うと不一致になります。
値だけ比較して一致にさせるにはどうすれば良いのでしょうか?
622名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:05:02.81
>>621 ならねえっつの
623名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:06:42.31
どうせ文字列が入っちゃってんだろw
624名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:08:55.85
>>622
レスありがとうございます。
すみません。間違ってました。
[表示形式]の[分類]が、一方が「文字列」で、もう一方が「標準」の時に、
セル内データが数字の時不一致になります。文字列の場合は一致します。
625名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:12:51.65
>>620
 早速返信有難う御座います。
>・ctrlが固定キー設定になっている→ctrlを5連打で設定が出てくるのでそれで解除
もともと解除されてました。
windows+uでコンピューターの簡単相談センターを開き、解除になっているのも確認しました。
>・変なマクロが入っている→ALT+F11で調べてみる
変なマクロは入っておりませんでした。
ThisWorkBookを見てもまっさらでした。
新規作成からならマクロもないだろうし、症状も出ないと思い確認しましたが、
やはり、同じ症状が出ます。
>・キーボードがおかしい→一度抜き差ししてみる
ノートパソコンにワイヤレスキーボードを設置しておりますが、
ワイヤレスキーボードでもノートパソコンのキーボードでも、同じ症状がでます。

>あと、どれぐらいの拡大率になるかも教えて
よく見たら、拡大だけでなく、縮小もしているようです。
画面の右下に、シートの倍率が「%」て表示さておりますが、
画面の倍率が変わっても表示されている値に変化はありませんでした。

現在再現させているシートにおいて、倍率の変化は、
130%→コピー→100%→130% となっているようです
(変化が一瞬なので、表示される列がはっきりとは見えませんが、おそらく、これぐらいです。
626名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:16:30.85
>>624
A1が文字列、B1が数値として
文字列にあわせたいなら
IF(A1<>(B1&""),1,0)
数値に合わせたいなら
IF(A1*1<>B1,1,0)]
627名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:21:05.66
>>625
うーん、タブン解決しそうにないなぁ
一度そのPCで作ったファイルを他のPCで試して見る
それで何事もなければ、再インストールかなぁ
628名無しさん@そうだ選挙にいこう:2013/07/31(水) 12:37:56.85
>>627
 ググっても、同じ症状の人がいないんですよねぇ。。。
 わざわざ お話聞いてくれて、ありがとうございます。
629名無しさん@そうだ選挙にいこう:2013/07/31(水) 13:23:39.13
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
質問は2件です
1、年数を入力する際
XXXX/X/Xという入力なら正常にXXXX年X月X日と出るのですが
XXX/X/Xと言う風に年を3桁にすると年月日が出ずただの
XXX/X/Xと言う文字列として処理されてしまいます
3桁の年数を多用するので、かなり困っています
(ちなみに上に2や1をつけてはいけないです
998年なら1998年ではなく998年です)
表示形式の設定でなんとかする方法はないでしょうか?
2、数字に()を付けたい場合
表示形式を(0);"(-"0);"(  )"(←スペースは半角4つ)とすれば
0の場合は未記入扱いとして(  )、それ以外の場合は(XX)と出るのですが
1桁の場合、(8)(4)のように寸詰まりになってしまいます
(括弧内は一桁もしくは二桁なので三桁は考えなくていいです)
寸詰まりにならない方法はないでしょうか?
非常に小さいセルに()付きで表示させるので、セルを()用に分割して
ってのもできません(具体的には24ピクセルに7ポイントで括弧付き2桁
他の行のレイアウトの兼ね合いもあり、セルの分割は不可能です)
また、08、04などではダメで、( 8 )もしくは( 4)でなければなりません
表示形式をどう設定したらいいでしょうか?
630名無しさん@そうだ選挙にいこう:2013/07/31(水) 13:46:53.10
>>629
エクセルは1900年以降しか扱えない
たとえ4桁でも19世紀以前の年号は年月日として認識されない
631名無しさん@そうだ選挙にいこう:2013/07/31(水) 14:14:31.30
>>630
ありがとうございます
では諦めてXXX/X/Xで何とかなるよう切り抜けます
最悪(以下、日付を年/月/日と表記する)と書き添えます

質問2に関してはどうでしょうか?
632名無しさん@そうだ選挙にいこう:2013/07/31(水) 15:49:53.07
>>629
他のセルに入力してカメラ機能で飛ばしたほうが早い気もする
633名無しさん@そうだ選挙にいこう:2013/07/31(水) 16:16:04.94
>>632
カメラ機能ですね
ありがとうございました
634名無しさん@そうだ選挙にいこう:2013/07/31(水) 16:42:20.57
>>629
2番目の質問
新しいExcelに変える
Excel2007以降なら( 2)みたいにスペースを入れて表示できる
635二見玲菜:2013/07/31(水) 18:29:35.33
(C) ←これをセルに入れたいんだけど変な記号に変わってすまいます。
どーすればいいですか?
636名無しさん@そうだ選挙にいこう:2013/07/31(水) 18:49:12.59
>>635
笑った。こんな機能があったとは
(C)がコピーライトのマークに変換されるのね

="("&"C"&")"
でいけたけど、めんどくさいな
637名無しさん@そうだ選挙にいこう:2013/07/31(水) 19:13:55.90
="(C"&")"に一応短縮できる
638名無しさん@そうだ選挙にいこう:2013/07/31(水) 19:34:20.11
>>635
バージョンわからんけど 2010 だと、ファイル - オプション - 文章校正 - オートコレクトのオプション(A)... - 入力中に自動修正する(T) のチェックをオフにする。
639二見玲菜:2013/07/31(水) 19:47:21.15
>>636,367
ありがと

>>638
2003ですが、ないっぽいです。
640名無しさん@そうだ選挙にいこう:2013/07/31(水) 20:15:45.54
>>638-639
仮に2003にそのオプションがあってOFFにしても
他人がそのExcelシートを開いたら&#169に化けるよ
根本的な解決にはならない

自分だけ警告OFFにしてマクロ使ってるシートを平気で回してくる奴とか
結構いるし、そういうのマジで腹立つんだよなぁ
641名無しさん@そうだ選挙にいこう:2013/07/31(水) 20:17:10.52
セミコロン忘れた、&#169=&#169;な
642名無しさん@そうだ選挙にいこう:2013/07/31(水) 20:18:43.87
&#169;=(C)
この板はコード入力に禁則かかってるんだなw
スレ汚しすまん
643名無しさん@そうだ選挙にいこう:2013/07/31(水) 20:45:06.17
>>639
ないわけないと思うが...
2003 手元にないから Excel 2003 オートコレクト とかでググってみて

>>640
入力時の変換なのに、警告とかなに言ってるんだ?
644名無しさん@そうだ選挙にいこう:2013/07/31(水) 22:22:30.75
DMAX関数で質問です
Criteriaの指定は列じゃないとダメですか?

例えばB列に

1月1日  
1月2日
1月3日


と縦にデータがあって、
各日付ごとにCriteriaの指定をしたいのです

1月1日  別のDBにある1月1日のデータのうち最大値
1月2日  別のDBにある1月2日のデータのうち最大値
1月3日  別のDBにある1月3日のデータのうち最大値


のような表を作りたいのです。
この場合、Criteriaの指定は、A1:B1のようにしないとできません
Criteriaを行で使うには、または代替方法はありませんか?
645名無しさん@そうだ選挙にいこう:2013/07/31(水) 22:29:14.80
>>644
わかりづらいのでもう1回書き直します


【元のデータベース】
日付  時刻 値
1月1日 1:00 100
1月1日 2:00 30
1月1日 3:00 400

という時間ごとのデータがある

【作りたい表】
1月1日  @その日の最大値  Aその時刻  Bその最大値の行番号
1月2日  @その日の最大値  Aその時刻  Bその最大値の行番号
1月3日  @その日の最大値  Aその時刻  Bその最大値の行番号


【知りたいこと】
@をDMAXで記載するときのCriteriaの指定方法

Aの求め方

Bの求め方

その日の最大値の出る時刻までの間の最小値とその時刻
646名無しさん@そうだ選挙にいこう:2013/07/31(水) 22:56:19.68
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excel2010の印刷プレビューなんですが、画面にあわせた縮小表示と編集画面と同じ倍率の等倍表示の2種類しかプレビューできないんですが
300%とか400%の拡大表示は出来ないんでしょうか?
できれば印刷する前に画面内で0.1mm単位で印刷の仕上がりを確認したいのですが…
647名無しさん@そうだ選挙にいこう:2013/07/31(水) 23:13:18.31
プレビューで、印刷の仕上がりを細部まで確認するのは無理

てゆーか、画面内で0.1mmってアフォですか?
画面内でズレを確認するならピクセル単位だ
648名無しさん@そうだ選挙にいこう:2013/08/01(木) 00:07:39.96
>>646
印刷プレビューと実際に印刷された物はズレるから、プレビュー画面でいくら確認しても無駄だよ
プリンターの機種によっては印刷前にプレビューを出せる物があるから、そっちの方が正確
649名無しさん@そうだ選挙にいこう:2013/08/01(木) 04:16:40.63
>>646
pdf出力するとか
dopdfってソフト使えば紙じゃなくてファイルに出力できるから画面で確認できる
650名無しさん@そうだ選挙にいこう:2013/08/01(木) 04:40:07.41
>>646
画面上じゃ図形の大きさをミリ単位で指定できるけど、実際に印刷して測ってみると全然違う大きさになってる
縦方向と横方向がそれぞれバラバラの比率で大きくなったり小さくなったりして手に負えない
Excelで寸法を指定するのは無駄
正確さが必要なら別のソフトを使うしかない
651名無しさん@そうだ選挙にいこう:2013/08/01(木) 06:56:36.47
>>629
2.については、マイナス値が無いなら「[>=10](0);[=0](  );( 0 )」とかでそれっぽくなる
652名無しさん@そうだ選挙にいこう:2013/08/01(木) 12:20:40.55
確かにプレビューで罫線の太さがメチャクチャに表示されるのは迷惑だな
参考にするためのプレビューなのに全く参考にならない
OpenOffice Calcさんのプレビューならそれこそ1ドット単位で印刷内容が出るのにな
あっちはあっちで編集画面での画像やグラフの位置ズレが酷いんだが

いっその事xls出力してCalcでプレビューしたら?
653名無しさん@そうだ選挙にいこう:2013/08/01(木) 20:06:22.37
「参考」の意味も分からないバカ
654名無しさん@そうだ選挙にいこう:2013/08/01(木) 21:38:32.33
そもそもExcelは計算ソフトであって
DTPソフトや作図ソフトみたいに、印刷結果が重要視されるものじゃない

Excelの印刷結果に文句言ってる奴は、適材適所ってものを弁えていない
あとExcelを方眼ワープロと勘違いして、文書作成機能や文字修飾の貧弱さに文句言ってる奴もな
655名無しさん@そうだ選挙にいこう:2013/08/01(木) 22:19:06.10
>>654
印刷機能が印刷結果を重要視してないって開発者アホすぎだろw
普通に考えたらバグだと思うけどな
656名無しさん@そうだ選挙にいこう:2013/08/01(木) 23:09:09.08
質問です。

ccleanerを使ってCドライブを整理してから家計簿のエクセルファイルが開けなくなりました…。

開こうとすると『家計簿.xlsxには読み取れない内容が含まれています。このブックの内容を回復しますか?ブックの発行元〜』
というメッセージが出て、はいをクリックすると修復ログファイルが別窓で出て、何も書かれていないエクセルが開きます。

ずっと使ってきた家計簿なので何としても復元したいです…。
どなたか解決方法を知っていたら教えて下さい。
(システムの復元は、復元ポイントが一日前のものしかなく、ccleanerを使う前に戻せませんでした)

OSはVISTAでexcelは2007です。 よろしくお願いします。
657名無しさん@そうだ選挙にいこう:2013/08/01(木) 23:37:02.33
スレ違い
658名無しさん@そうだ選挙にいこう:2013/08/01(木) 23:40:45.64
>>655
適材適所を弁えられない人にとって不都合だから
印刷機能を強化して、価格アップや動作を鈍くし
適材適所を弁えていて現状で何も困ってない人にまで負担を押しつけるのが正しいとでも?
659名無しさん@そうだ選挙にいこう:2013/08/02(金) 00:10:26.07
>>655
主力戦車に大砲が搭載されてなかったらバグだけど
乗用車に大砲が搭載されて無くてもバグじゃない
660名無しさん@そうだ選挙にいこう:2013/08/02(金) 07:43:26.05
見た目どおりに印刷されることがそんなにとんでもないことなのかな・・・
見た目どおり印刷されることでExcelの動作が重くなるならそれこそ開発者はアホ
印刷機能が大砲ってw例え話するならもうちょっとセンス磨いてくれ
661名無しさん@そうだ選挙にいこう:2013/08/02(金) 13:12:53.91
>>660
よく頑張ったよ
もういいから安め
662名無しさん@そうだ選挙にいこう:2013/08/02(金) 15:13:36.38
カメラで画面を撮影し、現像、プリントしる
663名無しさん@そうだ選挙にいこう:2013/08/02(金) 16:05:09.28
>>661
おっと頭ハネ、こっちは高めだ
664名無しさん@そうだ選挙にいこう:2013/08/02(金) 18:29:05.83
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否
シート名が加藤、佐藤、近藤のように適当な文字列でついているブックがあります。
その各シートのセルに、シート順の左からシート番号(連番)を振りたいのですが
印刷時に使うグループ機能だと画面上に表示されないですよね?
シート順を替えても自動で変わる連番を各シートに表示する方法はないものでしょうか。
665名無しさん@そうだ選挙にいこう:2013/08/02(金) 22:47:02.08
>>656
別PCで試す
oooを試す
>>660
俺は非常に不便きわまりないと感じてるがなー
エクセル2030ぐらいでは改善されてるんじゃないかな
>>664
使いドコロがイマイチ分からんのでいい回答かわからんけど、下のマクロを実行すればok
1加藤、2佐藤、3近藤
といった感じになる
Sub a()
For Each c In Worksheets
c.Name = c.Index & c.Name
Next
End Sub
666名無しさん@そうだ選挙にいこう:2013/08/03(土) 06:28:28.96
>>664は、VBAは使えるけどVBAでの解決は否とのことなので
答えは「無理」でしょ

そもそもそのコードだと
> シート順を替えても自動で変わる連番
にならずに、再実行するとしても
 1加藤、2佐藤、3近藤
から「佐藤」を先頭に持ってきて再実行すると
 12佐藤、21加藤、33近藤
になり、今度は佐藤を末尾に移動して再実行すると
 121加藤、233近藤、312佐藤
となってしまう

そもそも、仮にVBAでの解決をOKとされても
シートの並び順を変えた場合に自動で実行されるイベントは無いから
VBAでも望み通りのものは無理
667名無しさん@そうだ選挙にいこう:2013/08/03(土) 08:59:06.22
>>665-666
>>664はセルに連番を振りたいと言ってるんだよ?
668名無しさん@そうだ選挙にいこう:2013/08/03(土) 14:16:09.75
>>667
ただ連番振るのではなく、その連番がシートの順番変更に
追従するようにしたいということなので
その機能は無いのかと。
669名無しさん@そうだ選挙にいこう:2013/08/03(土) 15:06:51.54
>>666-667
あー、セルか、見てなかったわ
>>668
イベントのことなら、あるのかなー、ないような気もするなぁ
こんなん書いてみたけど、シートの順番変えても動かなかった

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
For Each c In Worksheets
c.Cells(1, 1) = c.Index
Next
Application.EnableEvents = True
End Sub
670名無しさん@そうだ選挙にいこう:2013/08/03(土) 17:10:36.42
>>665-669
マクロ使用不可の環境なのでVBA以外でどうにかできないかと考えた次第です。
いずれにせよ専用のイベントハンドラはないんですね
どこかにシート名と番号を保存して連動させてみようと思います
ありがとうございました
671名無しさん@そうだ選挙にいこう:2013/08/03(土) 18:06:33.42
【4 VBAでの回答の可否】 否 って回転のに、マクロで答えてるバカは何なの?
672名無しさん@そうだ選挙にいこう:2013/08/03(土) 18:15:02.12
>>671
マクロが使える環境になればできるってことでは
そんなにつっかかっても仕方ないと思うが
673名無しさん@そうだ選挙にいこう:2013/08/03(土) 18:51:36.63
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
=SUMPRODUCT(A1:A3*INDIRECT(A$100)) ※A100の中身は「名前定義した名前のうちいずれか」

この関数でA100で条件を満たした場合係数を掛けるようなセルがあります
とりあえず問題なく動いていたのですが、いつの間にか#VALUEになっていました
何かあったとすればOOoのcalcで誰かが見たと言うことが考えられるんですが
関数の互換性表見てみると問題ないように思えます
何か他に問題になる点ってありますか?
674名無しさん@そうだ選挙にいこう:2013/08/03(土) 19:02:37.01
>>673
INDIRECT(A$100)

A1:A3
に文字列が入っている
=SUMPRODUCT(A1:A3*1)
=SUMPRODUCT(indirect(a100)*1)
とでもやって調べてみて
もしくは数式の検証
675名無しさん@そうだ選挙にいこう:2013/08/03(土) 19:19:41.17
>>674
ありがとうございます
その数列を入れようとして気づいたんですが、数式を選択(F2)して
Enterを押すだけで元に戻ります。当然*1をして数字に戻してもうまくいきます
こういった場合どう対処するのがいいんでしょうか…
676673:2013/08/03(土) 19:22:41.85
ちなみに数式の検証をチェックしたところ
#VALUE!が表示されている場合はSUMPRODUCTの
配列が代入される時点でVALUEになってました
Enter押して修正したところだときちんと配列が[0:0:0]のように代入されていました
677名無しさん@そうだ選挙にいこう:2013/08/03(土) 19:54:20.90
>>675
自動計算が止まってる気がする。
後はブックをあげてもらわないと分からん。
678名無しさん@そうだ選挙にいこう:2013/08/03(土) 20:10:17.46
>>677
自動修正はONになってますね。F9で再計算しても一括して
#VALUE!が再計算はされないようです
ワークシートの必要な部分だけ切り出してみました
これの4行目が#VALUE!になってしまうことがあるようです
ttp://www.dotup.org/uploda/www.dotup.org4386341.xls
679名無しさん@そうだ選挙にいこう:2013/08/03(土) 20:46:43.14
#VALUEになった状態であげてほしいけど、それは難しいかな。まぁいいか
>>675
1つ思い出した。その数式や周りの数値をペーストしてないかな。
ペーストした場合、なんらかの原因で数値や計算式が文字列になることがある
この場合一旦F2→enterが必要だったと思う
>>678
うーん、問題はないと思う。
あと、最後に半角スペースと全角スペースを検索してみて
式の途中に入ってたら、消すと改善されるかもしれない。

これぐらいしかわからないや、スマンね
680名無しさん@そうだ選挙にいこう:2013/08/04(日) 18:40:59.76
すでにたくさんのセルに数値が入っていて
その各セルの値をある数字で割りたいんですが
元の数値を生かして置換することってできますか?

現状すでにB1に「6」、C5 に「10」と入力されている状態。
これを一括置換でB1 には「=6/2]、C5には「=10/2」に
変更したいということです。説明下手ですいません。
手で変更するには数が多くて;
681名無しさん@そうだ選挙にいこう:2013/08/04(日) 19:14:21.70
VBAなら簡単
682名無しさん@そうだ選挙にいこう:2013/08/04(日) 19:16:22.01
形式を選択して貼り付けで
683名無しさん@そうだ選挙にいこう:2013/08/04(日) 19:28:16.06
形式を指定して貼り付けだと元の数値を残すこと出来ないだろ
684名無しさん@そうだ選挙にいこう:2013/08/04(日) 19:51:29.61
>>680
どこかに2を入力、コピー
「=6/2」なら
貼り付ける際に 演算 で 除算
「3」にしたいなら
値にして貼り付け
685名無しさん@そうだ選挙にいこう:2013/08/04(日) 23:06:56.88
>>684は、>>682を少し詳しく書いただけであって>>683に行き着く。
>>681のようにVBAなら簡単だが、テンプレで示されるような
条件書いてないから答え難い。
686名無しさん@そうだ選挙にいこう:2013/08/05(月) 08:19:42.91
つーか、ちょっと手間だが数式でも普通に出来るだろ?
手間と言っても処理は全て一括で出来るから、数が多くても手間は増えないし

>>680
とりあえずB:C列を使ってるなら、
D1="="&B1&"/2"
って入力すると、数式ではなく文字列として「=6/2」のような結果が表示される
それをD:E列に必要なだけフィルコピーした上で、範囲コピーし
元のセル(B:C列)に値の貼り付けをしたら、置換機能で「=」を「=」に置換する
「=」を「=」に置換することで、文字列として貼り付けた式が、数式として認識される

値の貼り付けと「=」を「=」へ置換する方法は、数式で数式を作る常套手段だよ
まあ俺はVBAでやっちゃうことが多いけどね

因みに、空セルがあるなら「=」置換の前に「=/2」を空白へ置換すれば良い
687名無しさん@そうだ選挙にいこう:2013/08/05(月) 08:40:51.59
>>686
的外れ乙
688名無しさん@そうだ選挙にいこう:2013/08/05(月) 10:03:03.89
質問者がなにか言ってくれないとわからんな
689名無しさん@そうだ選挙にいこう:2013/08/05(月) 11:39:36.81
悔し紛れ?
690名無しさん@そうだ選挙にいこう:2013/08/05(月) 13:19:53.59
【1 OSの種類         .】 Windows7 8でも同様のエラーが
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい 使った事は1,2回ですが使用可能と思います
【4 VBAでの回答の可否】 可 VBAで関数定義する辺りの事の方が妥当という様な話ならそれでも構いません


起こっている事態は次のようなものです

 次の様に書くと正常に働くのですが
=VLOOKUP($J9,INDIRECT($D9&K$8&"!a1:b300"),VALUE($F9),0)

 次の様に書くと正常に働きません #REF!になります
=VLOOKUP($J9,INDIRECT($D9&K$8&"!"&$E9),VALUE($F9),0)
E9の値は、"a1:b300"

何か根本的に間違えているのでしょうか?
691名無しさん@そうだ選挙にいこう:2013/08/05(月) 13:43:36.90
>>690
すまんが、D9とK8とF9には何が入ってるの?
692名無しさん@そうだ選挙にいこう:2013/08/05(月) 13:47:04.90
>>690
俺なら、別のセルに・・・たとえばJJ9とする。
列丸ごとつかってないセルならなんでもいいに、
JJ9=$D9&K$8&"!"&$E9
を入れて、JJ9は列丸ごと非表示にして、
INDIRECT(JJ9)にするな
693名無しさん@そうだ選挙にいこう:2013/08/05(月) 13:55:20.36
>>691
すいません他のセルも必要でしたか
今の話には関係ないとして省略してしまいました
以下の様になっています(各セルに定義されている関数の結果です)

D9 親和_基準価格一覧_
K8 2013_08_05
F9 2
694名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:00:10.88
>>692
日付と銀行名のの違うシートが、3か月分程有るのですが
全部、1つにシートにコピーした方が効率的でしょうか?
695名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:02:37.33
>>690
同じシート作ってみたけど問題なく動いた
E9は
"a1:b300"
ではなく
a1:b300
だよね?
696名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:06:48.54
>>694
好き好きで
つか、そのシート・ブックを参照する人間はあなた一人じゃあるまい
その人たち全員が使いやすいかどうかを考えて・・・だろうね
697名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:25:13.14
>>695
成程
"1a:b300"
とするのでなく
a1:b300
だったら、動くようですね
どうも、ありがとうございました

皆さんも色々教えて頂いてありがとうございました
698名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:37:53.14
1a・・・だと・・・?
そら、エラー出るわw
699名無しさん@そうだ選挙にいこう:2013/08/05(月) 14:42:16.01
>>698
すいません。それは単なるタイプミスです
正確には
"a1:b300"
でなく
a1:b300
でした
700名無しさん@そうだ選挙にいこう:2013/08/06(火) 15:06:04.97
【1 OSの種類         .】 WindowsXP Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 若干 コードは追える程度
【4 VBAでの回答の可否】 可


例えばC列に住所の一覧があってその住所をクリックすると
D1にクリックした住所のgooglemapが表示される

もしくは
C1に住所を入れるとD1に入力した住所のgooglemapが表示される

可能でしょうか?
HTMLでやれって言われそうですが・・・
701名無しさん@そうだ選挙にいこう:2013/08/06(火) 16:42:11.97
>>700
なんかあるかねーとおもって検索してたらそのものズバリがあって笑った
http://stabucky.com/wp/archives/4280
Excelの住所録からGoogleマップにリンクを張るには次のように入力します。
=HYPERLINK("https://maps.google.co.jp/maps?q="&{住所が入力されたセル})

リンク自体はこんな感じ
https://maps.google.co.jp/maps?q=%E6%97%A5%E9%8A%80
702名無しさん@そうだ選挙にいこう:2013/08/06(火) 16:47:35.10
Googleさんはほんまに優秀すぎやで
703名無しさん@そうだ選挙にいこう:2013/08/06(火) 17:46:01.61
同じような質問を見つけても、GoogleMAPをキャプチャーして貼り付けてくださいみたいな回答しかなくて絶望してたのに・・・

>>701
それをブラウザが遷移するのではなく
excel内に埋め込みたいんですよね・・・
704名無しさん@そうだ選挙にいこう:2013/08/06(火) 17:55:10.02
前後してしまって申し訳ございません。

>>701
ありがとうございます!
705名無しさん@そうだ選挙にいこう:2013/08/06(火) 18:45:34.19
質問です。欄A1A3にはアルファベット(A)ならA5にG判定が出、かつ、A2A4には数値≦20でA5にG判定が出るシートを作りたいです。欄がBLANKの時は空白が返される様に‥可能ですかね??
706名無しさん@そうだ選挙にいこう:2013/08/06(火) 18:52:14.03
>>705
a5=IF(AND(A1="A",A3="A",A2<=20,A4<=20),"G","")
707名無しさん@そうだ選挙にいこう:2013/08/06(火) 19:03:26.01
>>706
即答
708名無しさん@そうだ選挙にいこう:2013/08/06(火) 19:26:47.51
>>706
即答ありがとうございました。さらに質問なのですが上記の条件にA1A3にそれぞれ(A)だけでなく(B)を入力した場合もA5に判定Gが返されそれ以外のアルファベットが入力された場合はNGが返されるようにしたいのです。宜しくお願いします。
709名無しさん@そうだ選挙にいこう:2013/08/06(火) 19:37:10.74
>>708
小出しにするのはやめて
=IF(A1&A2&A3&A4="","",IF(AND(OR(A1="A",A1="b"),OR(A3="A",A3="B"),A2<=20,A4<=20),"G","ng"))
優先順位はてtきとーなのであとはテキトーに作り替えればいけると思う
710名無しさん@そうだ選挙にいこう:2013/08/06(火) 21:07:55.85
>>709
すいません!ありがとうございました(^ω^)
711名無しさん@そうだ選挙にいこう:2013/08/07(水) 00:33:08.20
A1:E1の五つのセルにある検査結果例えば(白)または(黒)を入力して結果がその2色だけならF5セルにOKと出てそれ以外の色ならNGと出る式を教えて下さい。また、Gならセルの中が青になりNGなら赤にすることって出来ますか?
712名無しさん@そうだ選挙にいこう:2013/08/07(水) 00:39:14.98
>>711
F5=IF(AND(OR(A1="siro",A1="kuro"),OR(B1="siro",B1="kuro"),OR(C1="siro",C1="kuro"),
OR(D1="siro",D1="kuro"),OR(E1="siro",E1="kuro")),"ok","ng")
色を付けるのは説明めんどくさいから
http://www2.odn.ne.jp/excel/waza/cformat.html
ココを見て頑張れ
713名無しさん@そうだ選挙にいこう:2013/08/07(水) 00:51:42.63
>>712
あざーす、頑張ってみます!
714名無しさん@そうだ選挙にいこう:2013/08/07(水) 01:41:36.92
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

会社でネットワーク上に共有されているエクセルファイルを編集する必要があるのですが
ファイルを開く時に「読み取り専用で開きますか?」と聞かれずいきなり読み取り専用で開かれてしまい、編集できず困っています。

名前を付けて保存から、対象のファイルに上書き保存しようとしても拒否されてしまいます(「アクセスできません」みたいなメッセージ)。
同じ職場の他の人のPCからそのファイルを開くと、読み取り専用で開くかを確認され、「いいえ」を選択すれば編集して保存も出来ます。
「読み取り専用の設定/解除」のコマンドを試してみましたがダメでした。
ネットワーク上にある全てのエクセルファイルが編集できないわけではなく、一部のファイルだけでこの現象が発生しています。

何か考えられる原因や対策はあるでしょうか?

今の職場に来て1ヶ月程度であまりよく解っていません。
自分だけアクセス権限が無いんじゃないかと思いましたが、会社の人に聞いたところそれは無いだろうという話でした。
715名無しさん@そうだ選挙にいこう:2013/08/07(水) 01:48:23.97
>>714
エクセル 読み取り専用 ネットワーク上
または
読み取り専用で開きますか? ネットワーク上 開かない
辺りでぐぐれ

さんざんそのエラー見てきたけど原因はMSがやらかしているバグとしか思えない
原因の多くはtempファイル、鯖のHDD空き容量辺りだと思う。
しっかり空いてるなら知らん。俺が聞きたい。
716名無しさん@そうだ選挙にいこう:2013/08/07(水) 02:14:12.08
俺もアクセス権じゃないかと思うんだけどなあ
Vista以降のアクセス権はかなり複雑だから、管理者が本当のIT専門家じゃなくて、
ちょっとパソコンに詳しい程度の人がやらされてる場合、ちゃんと理解できてないことが多い
717名無しさん@そうだ選挙にいこう:2013/08/07(水) 23:14:49.47
>>714です

>>715 >>716

回答頂きありがとうございます。

どうもエクセル限定の問題ではないようで
今日他の種類のファイルでも同様の現象が発生したのでネットワーク管理者に問い合わせる事になりました。

スレ違いの質問になってしまって申し訳ないです。
718名無しさん@そうだ選挙にいこう:2013/08/07(水) 23:34:47.87
>>712ですがこの数式にもし検査結果に空白がある場合にF5セルも空白になるようになる数式を入れたいのですが可能でしょうか?1時間粘ったけどムリポでした‥
719名無しさん@そうだ選挙にいこう:2013/08/07(水) 23:51:32.56
>>718
=if(or(isblank(a1),isblank(b1),
,
IF(AND(OR(A1="siro",A1="kuro"),OR(B1="siro",B1="kuro"),OR(C1="siro",C1="kuro"),
OR(D1="siro",D1="kuro"),OR(E1="siro",E1="kuro")),"ok","ng")
konnnankanji
720名無しさん@そうだ選挙にいこう:2013/08/07(水) 23:51:51.84
=if(or(isblank(a1),isblank(b1),
,"",
IF(AND(OR(A1="siro",A1="kuro"),OR(B1="siro",B1="kuro"),OR(C1="siro",C1="kuro"),
OR(D1="siro",D1="kuro"),OR(E1="siro",E1="kuro")),"ok","ng")
)
kouka
721名無しさん@そうだ選挙にいこう:2013/08/08(木) 00:09:43.54
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

「1995/7/5」から「2010/6/8」を引くことによって
5452日経過した事が分かったんですが、
これを何年と何日経ったかを求めたい場合はどうすればいいんでしょうか?
365で割った場合はうるう年が考慮されないので困ってます。
回答お願いします。
722名無しさん@そうだ選挙にいこう:2013/08/08(木) 00:48:54.52
>>721
DATEDIFの第三引数を"yd"にする。
YD: 1年未満の日数を出す
http://www.excel-jiten.net/functions/datedif.html
もちろん年数は"y"ね。

知らなかった。こんなのあったのねぇ
723名無しさん@そうだ選挙にいこう:2013/08/08(木) 00:53:23.30
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 多少
【4 VBAでの回答の可否】 否

B列にはA列を参照にしたTRIM関数の式【=TRIM(A1)】を、C列には【=IF(COUNTIF($B$1:B1,B1)>1,"重複","")】という式をいれて
A列に品名を入力して重複があったらC列に「重複」と表示されるようにしたんですが、
COUNTIF関数は式が入力されていれば空白もカウントする使用なので入力するまで重複が表示されます。
これをどうにか、空白はカウントしないで重複の文字だけカウントするようにしたいのですが、方法はありますか?
724名無しさん@そうだ選挙にいこう:2013/08/08(木) 00:59:49.69
""だったらカウントしないIF文をつくる
725名無しさん@そうだ選挙にいこう:2013/08/08(木) 01:01:19.94
>>723
そのまんまだけど
=IF(B1="","",IF(COUNTIF($B$1:B1,B1)>1,"重複",""))
726名無しさん@そうだ選挙にいこう:2013/08/08(木) 01:11:32.15
>>722
ありがとうございます
727名無しさん@そうだ選挙にいこう:2013/08/08(木) 01:42:45.57
>>725
ありがとうございます
728名無しさん@そうだ選挙にいこう:2013/08/08(木) 05:23:20.81
>>720
ありがとうございました!
729名無しさん@そうだ選挙にいこう:2013/08/08(木) 18:10:51.49
726
どういたしまして
730名無しさん@そうだ選挙にいこう:2013/08/08(木) 18:11:21.99
727
どういたしまして
731名無しさん@そうだ選挙にいこう:2013/08/08(木) 18:11:52.59
728
どういたしました!
732ぴころ ◆lHG3Yzo0a6 :2013/08/08(木) 21:02:29.59
ふ〜(^▽^)
733名無しさん@そうだ選挙にいこう:2013/08/09(金) 02:38:40.37
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
大量のMATCHとVLOOKUPの使いすぎでシートが実用不可能レベルまで重くなったのですが
(具体的には自分のPCだと1項目入力するとエンターを押してから次の行に移るまで2〜4秒待たされる)
どうにかして軽量化したいのですが、MATCHでサーチするのは仕方ないとして、
MATCHを別セル(仮に今回の例はV10=MATCH(A8,L1:L200,0)とします)で決め打ちしておいて、
直のVLOOKUP(A8,L1:M200,2,0)と、
L1:M200に名前を付けてVLOOKUP(A8,名前,2,0) と、
OFFSET(M1,V10,0,1,1)と、
INDIRECT("L"&V10)では、どれが一番計算が軽くなるでしょうか?
また、これらよりもっと軽くなる式があれば、そちらを教えてくださると助かります。
それぞれ内容が様々なVLOOKUP式が1000個近くあり、全部を全方法で書き直して、
全方法を自分で確かめるってのはちょっと無理なので、
ご存知の方がいらっしゃいましたら、よろしくお願いします。

正直、シートを使う人全員にOpenOfficeで開いてくださいと名言しちゃった方が楽なんですけど、
(大量複雑計算セルありのシートの入力レスポンスがExcelと比べ物にならない程早く、
どんなに滅茶苦茶込み入った計算でも一瞬でレスポンスを返す)
Excelでも使いたいというか、Excelしか入れてない人が結構いるので。
734名無しさん@そうだ選挙にいこう:2013/08/09(金) 02:49:23.48
>>733
シートを作りなおしたほうがいい気がするが・・
index+matchが最高。一列ならmatchでもok
vlookupは重い。一列ならmatchと多分同じ。

indirectが揮発性関数の性質的にも最強に重い。これは今回はやめとけ

名前をつけて軽くなるかは知らん。

あとはシートの内容によるので、
vbaでかかった時間を計測するのがいいと思う。
が、vbaがつかえるようになればそんな事は不要になるので

新規ブックに全シートをコピーする。
また、使っていない列、行を一旦削除する。
ついでにoooのcalcで読み込み、保存し直す。
こうすることでゴミデータが消えて軽くなる可能性がある。
735名無しさん@そうだ選挙にいこう:2013/08/09(金) 02:52:28.04
733の補足です。
これらの式は全て
=IF(ISERROR(V10),0, 式本文 )や=IF(ISERROR(V10),"", 式本文 )などの、
MATCHしなかった時のエラー対策IFが付いてます。
あと、OFFSETは(M1,V10,0,1,1)ではなく(M1,(V10-1),0,1,1)ですね。失礼しました。
736名無しさん@そうだ選挙にいこう:2013/08/09(金) 02:56:33.99
>>734
INDEX()関数がMATCHと組み合わせて使えるんですね…。
浅学で申し訳ありませんでした。

シート自体は、何度もCALCとEXCELで行き来をしてるので
結構ゴミデータは消えてると思います。

頓狂な質問を丁寧に答えていただき、本当にありがとうございました。
737名無しさん@そうだ選挙にいこう:2013/08/09(金) 10:58:29.29
1000行で重くなる時点で無駄な処理してるとしか思えん
実際にはもっと莫大なデータでもあるのか?
738名無しさん@そうだ選挙にいこう:2013/08/09(金) 11:58:46.15
>>737
おかげさまで、VLOOKUP()をINDEX(MATCH())にしたら、心持ち早くなりました。

1セルあたりの計算式が、別セルを所謂変数のように使って、
(1セル内で何度も同じ計算や参照をする場合、別セルに参照計算させて、それを何度も呼び出す)
一番重い式で、メインセル600文字分の計算式+別セル各50〜200文字で7セル、これで1計算式。
これの同一式(列違い)が数十〜二百個並びます。
1セルの計算式でMATCH、VLOOKUPを1〜10個使っていました。
さらにそれと似たような感じでメイン200〜400文字の、サブ50〜200文字×3〜4セルが、
何セットもずらりとあるって状態です。
非常にイレギュラーな引数と計算結果が多く、最大効率で計算式を書いてもそうなりました。
普通に1セルに平打ちしたら1セルの計算式が軽く1000文字突破します。

あれから気になって、ほかの重くなるものを確認したら、FIND(これも200個使っていた)が一番重かったようで、
FINDを全部SEARCHに変更したら半分以下の軽さになったという笑い話です。

あとは、どうしても外れなかったINDEX8個をどうやって代用するかって所です。
VLOOKUPと同じ使い方ですが、右に55セル離れたデータ群を参照をしたり、
左に3セルの位置なんて逆方向の参照が必要なので、これをどうするかで悩んでいます。

ひょっとしたら、LEFTやSUBSTITUTEも重いのかもしれない。
LEFT+SEARCH(以前はLEFT+FIND)やSUBSTITUTEで、入力用セルで入力された不要な文字をカットしているのですが。
(とはいっても、その計算での不要文字は他のセルでの計算に必要で、その不要文字をなくす事はできない。
例としては入力セルが「43*」とされたら、その計算では43を計算して、*は別のセルの計算や参照で使うとか、
「○○部XX課」と入力されたら、○○だけと、XXだけに分けてそれぞれ別のセルでの計算に使い、
尚且つ「○○部」を1セル、「XX課」を1セルという分割もしてはいけないとか。あくまで例なので「部課」ではないです)
739名無しさん@そうだ選挙にいこう:2013/08/09(金) 13:14:40.89
たぶんレイアウトが悪いんだろ
行単位で処理してみ?
740名無しさん@そうだ選挙にいこう:2013/08/09(金) 13:25:07.02
>>738
VLOOKUP()→INDEX(MATCH())
も知らないのに最大効率とかイレギュラーと言われてもなぁ
シートまるごとアップすれば誰かがなんとかしてくれるよ
741名無しさん@そうだ選挙にいこう:2013/08/09(金) 13:47:35.88
>>739
ちょっとレイアウトは変更不能です。
まあ右55とかはなんとかなるかもですが、左参照はどうしても必須です。

あ・・・ちょっとまてよ。左参照が必要なものを、
左右反転しながら別セルに丸コピーして、それをINDEXで参照すれば良いのか。
INDIRECT1回と、20セル丸コピー×2回してからINDEX、どっちが重いだろう・・・。
20セル程度なんで自分で試して見ます。

>>740
セル内の文字数的な意味です。>最大効率
だからSEARCHじゃなくてFINDを使ってた訳でもありますが。
同じ計算が1セル中に2回以上出るなら、別セルで計算させて2回参照させるとか、
イレギュラー計算は別セルでやった上で、あとで計上するとか。
自分の本来の作成環境がCalcで、Calcではサクサク動くシートだったのですが、
EXCELに掛けた途端、何入力しても重くなったってのが実情です。

まあ、>>738は愚痴みたいなものなんで、無視してくださってもOKです。
742名無しさん@そうだ選挙にいこう:2013/08/09(金) 13:50:13.36
とりあえず、色々やってみます。
本当にありがとうございました。
743名無しさん@そうだ選挙にいこう:2013/08/09(金) 15:15:05.45
頭固すぎ
744名無しさん@そうだ選挙にいこう:2013/08/09(金) 18:28:21.31
Calcだと軽いは甘え
10万行扱ってようやく許される愚痴
745名無しさん@そうだ選挙にいこう:2013/08/10(土) 11:26:07.21
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

すみません質問お願いします。下記のような票がありA列の1〜6の数字を元に
別シートに1ならAに、2ならCにと、列毎に振り分けはできるでしょうか?
詳しい方宜しくお願いします。

  A B C D E
1  1 りんご
2  2 すいか
3  2 すいか
4  2 すいか
5  2 すいか
6  3 もも
7  3 もも

  A B  C  D   E  F
1  1 りんご
2       2 すいか
3        2 すいか
4        2 すいか
5        2 すいか
6               3 もも
7               3 もも
746名無しさん@そうだ選挙にいこう:2013/08/10(土) 11:39:23.18
>>745
データが全部で5種類程度なら、がんぱればできるけど
それ以上だとVBA使わないと無理
747名無しさん@そうだ選挙にいこう:2013/08/10(土) 11:57:24.98
>>746
すみません、早速の返信ありがとうございます。
書き方が簡単すぎかもしれなかったので補足させてもらうと数字は1〜6までですが
1がつくのはりんごだけではなくナシとかバナナとかもある場合は難しいですか?

  A B C D E
1  1 りんご
2  1 なし
3  2 すいか
4  2 キウイ
5  2 ばなな
6  3 もも
7  3 みかん

  A B   C D   E
1  1 りんご
2  1 なし
3        2 すいか
4        2 キウイ
5        2 ばなな
6             3 もも
7               3 みかん
748名無しさん@そうだ選挙にいこう:2013/08/10(土) 12:22:13.28
ピボットテーブルで
749名無しさん@そうだ選挙にいこう:2013/08/10(土) 13:18:36.03
>>748
ピボットテーブルでできるんですね。すみません勉強してみます。
ありがとうございました。
750名無しさん@そうだ選挙にいこう:2013/08/10(土) 13:45:28.61
>>747
sheet2!a1=IF(Sheet1!$A1=INT((COLUMN()+1)/2),IF(0=MOD(COLUMN(),2),Sheet1!$B1,Sheet1!$A1),"")
後は範囲を広げる
751名無しさん@そうだ選挙にいこう:2013/08/10(土) 13:50:02.54
>>745
sheet2での作業↓

a1 =IF(Sheet1!$A1<>INT((COLUMN()+1)/2),"",Sheet1!$A1)

b1 =IF(A1=COLUMN()/2,Sheet1!$B1,"")

A1:b1選択しそれをL列までコピー、のちA1:L1選択した状態を下方向へコピー

※ セル右上に三角マークが出てウザい場合は、オプション→数式→エラーチェック
→「バックグラウンドでエラーチェックを行う」のチェックを外すなどしてください
752名無しさん@そうだ選挙にいこう:2013/08/10(土) 14:27:55.82
>>750
>>751
ありがとうございました。今外出先なので帰ったら試させてもらいます!
753名無しさん@そうだ選挙にいこう:2013/08/10(土) 14:34:52.93
>>751
数式のコピペって2回に分けなくても、一発でできなかったっけ?
754名無しさん@そうだ選挙にいこう:2013/08/10(土) 20:48:31.61
>>753
セル右下の十字マークを引っ張り伸ばす方法だと一発は無理です。

>>751で誤字訂正
×セル右上→〇セル左上
755名無しさん@そうだ選挙にいこう:2013/08/10(土) 21:22:39.83
セル右下のカーソルが十字になるところ→フィルハンドル
756名無しさん@そうだ選挙にいこう:2013/08/11(日) 00:03:24.77
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 はい(少し)
【4 VBAでの回答の可否】 可

マクロを実行すると、
かなりの確率でエクセルの画面が止まってしまいます。
バックグランドで計算はしてくれているので
待っていれば計算は終了するのですが、
現時点でどこまで進んでいるかはESCで中断しないと分かりません。

Application.StatusBar =
でステータスバーに記載しても
止まってしまったら表示はその時点の情報でストップしていまいます。

画面が止まってしまっても
現時点の進捗状況を知る方法はありませんか?
757名無しさん@そうだ選挙にいこう:2013/08/11(日) 04:24:53.43
>>756
Sub Test()
  Dim i As Long
  For i = 0 To 10
    Application.StatusBar = i
    Application.Wait Now + TimeValue("00:00:01")
  Next
End Sub

これを実行してみて、これでも画面が固まってしまうならExcelかOSが壊れてるので
Excelの再インストール、それでもダメならOSの再インストール
面倒かもしれないが、あとは現状で我慢するのとExcelやOSを再インストールする手間とを
天秤に掛けてどっちを取るかは君が決めれば良い

上記は問題なくて、君のコードでは画面固まるならコードを見ないとなんとも言えない
なので、コード見せても良いならブックごとうp、見せたくないなら自分の力だけで頑張るか諦めて
758名無しさん@そうだ選挙にいこう:2013/08/11(日) 23:08:20.66
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel 2010
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Excel で日課表を書くには、どうしたらいいのでしょうか?

どうも私の調べた事からのつもりでは

睡眠      7:00   0:00
体操      8:00   7:00
今日のまとめ 20:00  22:00
就寝     22:00  24:00

この様なテーブルを作り、これをドーナツの形式でプロットすればいいのではないかと思い
色々試行錯誤しているのですが、
どうも自力ではよく分かりません。
3項目(名前-終了時間-始り時間)のデータが必要か?
2項目(名前-終了時間)のデータで十分なのかもよく分かりません

 それどころか、24:00というデータがどうも正常かどうか確信が持てない
24時を入れているつもりなのですが、セルの表示形式を変えると、12:00 am と出たりする
0:00 am と強引に入れても 12:00 am と表示される
時間のデータをエクセルで扱うのは初めてなので、
データの入力すらこうすればいいという方法がよく分からない始末です

 取りあえず、日課表の作成方法を教えて頂いたら、後は自分で試してやってみる積もりですが
上に挙げたような事についてアドバイスが有ったらよろしくお願いします
759名無しさん@そうだ選挙にいこう:2013/08/11(日) 23:27:57.06
>>757
SUGEEEEEEEEEEEE
画面は相変わらず固まったり白くなったりだけど
ちゃんとステータスバーは現在の状況を吐き出すようになりました
ありがとうございます!!!!
760名無しさん@そうだ選挙にいこう:2013/08/11(日) 23:36:46.48
>>758
ごめん言ってる意味が全然わからないし何をしたいかもわからない
https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSKYi-PSznX8DAQk9SllmJ9MHy3d_Ml_ycTfanKnUP0Z56fhm7Lkw
こういうのを作りたいの?
俺はその10行目の表で十分と思うけど
761名無しさん@そうだ選挙にいこう:2013/08/11(日) 23:38:50.77
>>758
睡眠         =D1-C1  0:00    7:00
体操         =D2-C2  7:00    8:00
その他       =D3-C3  8:00    20:00
今日のまとめ  =D4-C4  20:00  22:00
睡眠         =D5-C5  22:00  24:00

というテーブルを作り、A1:B5をデータソースとしてドーナツグラフにすれば良い
見た目邪魔ならB列は非表示にしても構わない

ドーナツグラフってのはそれぞれの要素の比率を表すものなので
それぞれの項目が1日(24時間)の中の何%に当るかを「終了-開始」で出してやればいいだけ
但し、君が作ったテーブルのように、空き時間があってはダメなので、24時間全てきっちり埋めること

24:00については、表示形式のユーザー定義で「[h]:mm」とすればOK
確認としては表示形式「yyyy/mm/dd hh:mm:ss」とした時に
22:00が「1900/01/00 22:00:00」
24:00が「1900/01/01 00:00:00」となれば問題ない

Excelでは時刻だけ入力しても、それは日付を含むものと解釈され
日付の1が1900/1/1の為、日付の0は本来はあり得ない1900/1/0になる
普通に時刻を表示する表示形式だと24時は翌日の0時扱いになるが
hを[ ]で囲むと、日付分を24時間換算で時刻に表示出来るので
3日+12時間は、日時としては「1900/1/3 12:00:00」だが、これが24*3+12で84:00って表示になる
762760:2013/08/11(日) 23:40:38.72
>>761
まいりました。
763名無しさん@そうだ選挙にいこう:2013/08/12(月) 09:12:34.24
>>745です。
遅くなりましたが自分の希望通りに振り分けできました。
レス頂いた方ありがとうございました。
764名無しさん@そうだ選挙にいこう:2013/08/12(月) 10:12:36.05
>>761
 仰られた通りにやってみて
プロットしているデータをa, b入れ替えてみると
どうにか思ってい様な形になりました
 色々と細かい丁寧なご指導ありがとうございました
後の日課表らしく見せる為の細かい飾りつけは自分で試行錯誤してみるつもりです

 しかし、こういう技術的な事柄についての日本語でに検索は
ゴミの様なページが多すぎてさっぱり使い物になりませんね
○単なる馬鹿が答えたとしか思えない回答をベスト回答としている多くの質問ページ
○プロットするデータを次々と変えて意味があるとも思えない変更を繰り返した訳の分からない説明をし、
 おそらく解説している本人が何をやっているのか理解もしていない解説ページ
そういうページが次々と最初の方に連続してしかも何度も出て来ました

それどころか英文で検索しても、こと日課表に関しては色々と訳の分からない事を解説しているページが多く
貴方の様に適格に短く説明して下さるページはなかなか見つけられませんでした
どうも貴重な情報をありがとうございました
765名無しさん@そうだ選挙にいこう:2013/08/12(月) 11:19:02.13
技術的ww
766名無しさん@そうだ選挙にいこう:2013/08/12(月) 12:10:44.64
自分がゴミにも劣るという純然たる事実を受け入れたくないんだろうな、可哀想に
767名無しさん@そうだ選挙にいこう:2013/08/12(月) 12:53:30.59
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 否
Excelの水色の色はVBAではcolor=VBblueになるんですか
http://www1.axfc.net/uploader/Sc/so/480184.jp
この色なんですが
768名無しさん@そうだ選挙にいこう:2013/08/12(月) 13:03:38.26
そう定義されてるからだろ
そんな面倒くさいろだ使うくらいならカラーコード書いてくれればいいのに
769名無しさん@そうだ選挙にいこう:2013/08/12(月) 14:26:46.17
>>765-766
質問者に知識が無いのは当然の事
知識が無いからこそ先達に聞いてくるんだよ
それを見下して煽るだけどか下種の極み
ゴミにも劣るのはおまえの性格だろ
770名無しさん@そうだ選挙にいこう:2013/08/12(月) 14:32:38.31
>>769
荒らしたいだけならお引取り下さいませ
771名無しさん@そうだ選挙にいこう:2013/08/12(月) 14:44:07.42
>>768
そのカラーコードがわからんのです
772名無しさん@そうだ選挙にいこう:2013/08/12(月) 15:07:41.66
マクロの記録すれば出てくるよ
773名無しさん@そうだ選挙にいこう:2013/08/12(月) 15:20:15.73
【1 OSの種類         .】 Win7
【2 Excelのバージョン   】 2010
【3 VBAが使えるか    .】 ちょこっと
【4 VBAでの回答の可否】 可
VBAにて、あるシートを別のブックにコピーした後、
シートに付随しているマクロのコマンドボタンを、一度押すと消えてしまう現象が起きます。
デザインモードで一度触れば、現象は起きないのですが、誰でも使えるようにしたいので、その変な問題を解消したいです。
ご存知の方がいらっしゃいましたら、原因を教えていただけますか?
774名無しさん@そうだ選挙にいこう:2013/08/12(月) 15:29:37.45
>>773
エクセル コマンドボタン 消える
でぐぐってみたけど原因は複数あるみたい。

コマンドボタンをもう一つ新しく作ってhandleしたほうが早いかも
(消えてしまうコマンドボタンのマクロを新しいコマンドボタンに移す)
775名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:12:51.75
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】コピーして使うくらいなら
【4 VBAでの回答の可否】 否

例えばセルA1に「○」という文字があります。
そこでB1に「×」という文字が入ると、A1が「△」に変更されるという仕組みを作るのは可能でしょうか?
作業列が必要な場合でもおkです
776名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:14:35.55
無理です
777名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:14:42.11
>>775
a1=if(b1="×","△","maru")
○を直接入力しているならvbaのselection_changeなどを使う
778名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:21:07.24
>>776-777
回答ありがとうございます。
やはり直接入力じゃやりようがないですか。どうもです
779名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:47:47.90
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】ほんのり
【4 VBAでの回答の可否】 可
intWeekDay = Weekday("2013/4/31")
とした場合に、型の不一致でエラー13が出るのですが、
ありえない日付を入力した場合に普通にスキップする方法はありますか?
on error goto 以外でスキップしたいのですが
お願いします
780名無しさん@そうだ選挙にいこう:2013/08/13(火) 15:49:47.13
あ、resume next もなしでお願いします。
エラーの場合に別の処理をループ内でしたいのですが、
エラー分岐で処理させるってできるんですかね?
781名無しさん@そうだ選挙にいこう:2013/08/13(火) 16:26:53.12
嫌です
782名無しさん@そうだ選挙にいこう:2013/08/13(火) 16:26:59.69
>>779
それそのままresumenextだと思うけど・・・
普通はtrycatchを使う
と思ったらvbaってtrycatch無かった

http://officetanaka.net/excel/vba/function/IsError.htm
iserrorで判定して、

if(iserror(Weekday("2013/4/31"))) then
スルー処理(何も書かない、もしくはmsgboxでも出すとか)
else
正式な処理
endif

こんなトコロじゃないかな
783名無しさん@そうだ選挙にいこう:2013/08/13(火) 16:48:41.52
>>779
>on error goto 以外でスキップしたいのですが 
の理由がわからん。エラー処理を理解していないだけか?
1、intWeekDay = Weekday("2013/4/31")でのエラーを回避する
   代入前に"2013/4/31"が日付として有効かどうかを(IsDate等で)チェックする
2、エラー処理ルーチンの中で好きにする
   この場合On Error Resume NextでintWeekDayに代入直後に処理が一般的
   例)If Err.Number = 13 Then ’エラーが型の不一致なら云々
どちらが良いかは具体的な全体仕様がわからんと何とも言えない。両方とも実装が必要かもしれない。
784名無しさん@そうだ選挙にいこう:2013/08/13(火) 16:49:29.08
IsDate使えよ
785名無しさん@そうだ選挙にいこう:2013/08/13(火) 16:59:25.30
>>784
そのほうがはやかった
786名無しさん@そうだ選挙にいこう:2013/08/14(水) 13:44:22.64
【乞食速報】

マイクロソフトオフィスフルパックが4000円!!!!!

http://www.amazon.co.jp/o/ASIN/B0076ECI5I/lkfoia-22

逆輸入品=海外の正規品≠海賊版
787名無しさん@そうだ選挙にいこう:2013/08/14(水) 13:51:39.31
2010は持ってるしなあ
788名無しさん@そうだ選挙にいこう:2013/08/14(水) 16:14:10.82
最近、Excelベースで時系列の文字列(予定とか気になったKeywordとか)の処理に使ってます。
後での見直しや操作が便利なのですが、逐次Excelを立ち上げるのが面倒です。
PCベースかスマホベースで、Excelフォーマットで保存できる軽いソフトはないでしょうか?
Excelベースの軽いメモ帳という感じです。ご教授頂ければ幸いです
789名無しさん@そうだ選挙にいこう:2013/08/14(水) 16:41:59.73
EXCEL2003を使っています。VBAはできません。

計算の結果が特定の数字より高い低い場合(例:0〜255)
0未満の数値の場合(−10、−36等)が算出された場合でも最低値として0が出るように
255より高い場合(400、530等)が算出された場合でも最大値として255の数値が
結果として出るようにしたいのですが、どうすればできるでしょうか?
また、その数式にはROUND関数を使っています。
アドバイスよろしくお願いします。
790名無しさん@そうだ選挙にいこう:2013/08/14(水) 16:49:44.50
>>788
oooは軽かったと思う
それかCSVで保存してCSVの編集ソフトを使うとか
>>789
A1に数値が入ってるとして
B1=IF(255<A1,255,A1)+IF(A1>0,0,0)
791名無しさん@そうだ選挙にいこう:2013/08/14(水) 17:26:20.86
>>790
ありがとう、解決しました。感謝です。
792名無しさん@そうだ選挙にいこう:2013/08/14(水) 17:28:39.57
>>786
学割じゃん
793名無しさん@そうだ選挙にいこう:2013/08/14(水) 21:48:59.63
>>790
その式はA1が負の数のとき0にならない気がする
794名無しさん@そうだ選挙にいこう:2013/08/14(水) 22:34:44.92
=(A1>255)*255+(A1<255)*(A1>0)*A1+(A1<0)*0
795名無しさん@そうだ選挙にいこう:2013/08/14(水) 23:56:52.24
=IF(A1<0,0,IF(A1>255,255,A1))
796名無しさん@そうだ選挙にいこう:2013/08/14(水) 23:58:31.69
MINとかMAX使った式を書こうと思ったけどあまり綺麗にならなかった
797名無しさん@そうだ選挙にいこう:2013/08/15(木) 00:25:32.98
>>290
2項目のIF関数の3番目の引数は、0でなく-A1
798名無しさん@そうだ選挙にいこう:2013/08/18(日) 06:03:33.34
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

=SUMPRODUCT(($A$1:$A$100=$B$1)*(略)*(略) )

B1に何かを入力して 「($A$1:$A$100=$B$1)」 の部分が常に1(true)になるように
することは可能でしょうか?
799名無しさん@そうだ選挙にいこう:2013/08/18(日) 07:25:01.30
>>798
それは入力する人がB1に常にtrueになる値を入力していれば可能です
800名無しさん@そうだ選挙にいこう:2013/08/18(日) 14:07:30.66
>>798
=SUMPRODUCT((1)*(略)*(略) )
801名無しさん@そうだ選挙にいこう:2013/08/18(日) 14:07:54.79
あ、この1もいらんか
=SUMPRODUCT((略)*(略) )
802名無しさん@そうだ選挙にいこう:2013/08/19(月) 06:14:35.39
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可

Option Explicit

Sub test()

Dim A As Range
Dim B As Range
Dim C As Range

Set A = Range("A1:A10")
Set B = A.Offset(0, 1)
Set C = A.Offset(0, 2)

[ If B.Value = "" Then ] B.Value = A.Value
If C.Value = "" Then C.Value = A.Value

If A.Value > B.Value Then B.Value = A.Value
If A.Value < C.Value Then C.Value = A.Value

End Sub


Aをソースに、BCが空白ならAを入れて、A>BならBを更新、A<CならCを更新
という風にしたいのですが、[]をつけた部分で「型が一致しません」と言われました。どうしたらいいのでしょうか
803名無しさん@そうだ選挙にいこう:2013/08/19(月) 07:22:59.12
>>802
×If B.Value = "" Then
△If B.Value = Empty Then
○If IsEmpty(B.Value) Then

空白セルは""ではなくEmptyね
「1」と「あ」はどちらが大きいですかと聞かれても困るように
セルの値が数値の場合、文字列である""と比較しようとすれば、比較型不一致でエラーになる

ただ、△の方法でも大抵問題ないが
= Emptyは0や""を返す式が入力されている、実際には空じゃないセルでもTrueを返すので
IsEmptyを使うのが一番確実
IsEmptyは0や""ではFalseを返してくれるので
804名無しさん@そうだ選挙にいこう:2013/08/19(月) 07:41:50.99
>>803
ありがとうございました!
805名無しさん@そうだ選挙にいこう:2013/08/19(月) 19:12:17.61
【1 OSの種類         .】 Windows 7
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 Excel 2003でちょっと
【4 VBAでの回答の可否】 可

2点質問させて貰います
@「A」「B」「A(Aに12.5%の網掛け)」「B(Bに12.5%の網掛け)」「定休」「有給」の6種類をリストから選ぶ入力規則にしましたが、
網掛けの部分が反映されません。網掛けになる部分には規則性が無いのですが、チマチマ入力せずに網掛け出来る方法はあるのでしょうか?

A「A」「B」「A(Aに12.5%の網掛け)」「B(Bに12.5%の網掛け)」「定休」「有給」で「定休」「有給」のフォントサイズは14で、
「A」「B」「A(Aに12.5%の網掛け)」「B(Bに12.5%の網掛け)」のフォントサイズは18に指定したいのですが、
条件付き書式ではフォントサイズを設定出来ませんでした。他に手法(VBA?)があれば教えてください。
適用するセルの範囲はsheet全体ですが、実質は列がA〜DZで行が150行程度です。
806805:2013/08/19(月) 19:19:03.44
「A(Aに12.5%の網掛け)」「B(Bに12.5%の網掛け)」のぶぶんですが、セルを灰色にするでも構いません
セルを灰色か網掛けで塗らない「A」「B」と、灰色か網掛けで塗る「A」「B」があるので
条件付き書式での分別が出来ないみたいで悩んでいます・・・
807名無しさん@そうだ選挙にいこう:2013/08/19(月) 19:38:10.61
>>805
めんどいから全部VBAにしたほうが良さそう。これを「sheet1」に記述。
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row <= 150 And Target.Column <= 150) Then
If (Target.Value = "A" Or Target.Value = "B") Then
With Target.Interior
.Pattern = xlGray16
End With
With Target.Font
.Size = 18
End With

ElseIf (Target.Value = "定休" Or Target.Value = "有給") Then
With Target.Interior
.Pattern = none
End With
With Target.Font
.Size = 14
End With

Else
With Target.Interior
.Pattern = none
End With
With Target.Font
.Size = 11
End With
End If
End If
End Sub
808名無しさん@そうだ選挙にいこう:2013/08/20(火) 00:52:39.13
>>805
@とAを合わせた解決法?
セルが空白ならサイズ18で網掛け無しのAをセルに入力、
セルが網掛け無しのAならサイズ18で網掛け無しのBをセルに入力、
セルが網掛け無しのBならサイズ18で網掛けのAをセルに入力、・・・
というようなコードでいかがでしょう? 具体的には今PC立ち上げていないため。。。
809名無しさん@そうだ選挙にいこう:2013/08/20(火) 01:06:55.80
もしくはそんな凝ったものでなく、
選択セルの内容が希望のものになるコードを6種類用意するとか。
具体的には同上。。。
810名無しさん@そうだ選挙にいこう:2013/08/20(火) 17:02:41.89
質問です。例えば、A1セル=sumif($B:$B,"1",$D:$D)の様な式を作り既存のシートより式を当てはめたい範囲をマウスで選択して適応させる事は可能でしょうか?出来ればB2:F5のように関係無い範囲も含めても適応されるようにしたいです。お知恵をお貸し下さい。
811名無しさん@そうだ選挙にいこう:2013/08/20(火) 17:05:41.36
>>810
・コピー
・B2:F5範囲選択
・ctrl押しながらenter
相対参照とか上手く使わないと循環参照になるよ
812名無しさん@そうだ選挙にいこう:2013/08/20(火) 17:32:43.54
>>810ですが回答ありがとうございます。
すいませんが当方初心者でしてもう少し詳しく教えて頂ければ幸いです。すいません‥
813名無しさん@そうだ選挙にいこう:2013/08/20(火) 17:52:51.96
あれ、解釈が間違っていたのかな。
どこのセルをどうしたいの?
A1=sumif($B:$B,"1",$D:$D)
B2=sumif($B:$B,"1",$D:$D)
B3=sumif($B:$B,"1",$D:$D)
・・・
F5=sumif($B:$B,"1",$D:$D)
と思ってたけど違うのかな
814名無しさん@そうだ選挙にいこう:2013/08/20(火) 19:55:04.18
>>813
A1のセルは式は入っているが表示は基本的には空の状態で段々増えていくデータをある区切りごとにsumifを使って集計しては消しての繰り返しが出来る様にしたいのです。B1:F5までを集計したりB6:F10を集計したりと‥
815名無しさん@そうだ選挙にいこう:2013/08/21(水) 01:05:07.89
Somebody here?
816名無しさん@そうだ選挙にいこう:2013/08/21(水) 01:39:05.62
>>814
うーん、悪い、俺にはちょっと>>814さんが何言ってるかわからない。
indirectかな?

頑張れ。
817名無しさん@そうだ選挙にいこう:2013/08/21(水) 02:24:25.94
>>816
やっぱり!自分で書いてて意味不明でしたから‥ありがとうございました。
818名無しさん@そうだ選挙にいこう:2013/08/21(水) 07:42:43.84
Excel2013が頻繁に止まってしまい困っています、入力中に止まったりします
Excel2013を使い続ける前提で解決したいのですが無理でしょうか?
819名無しさん@そうだ選挙にいこう:2013/08/21(水) 07:51:35.54
ありがとうございましたって自ら謎のまま締めてしまうのか?
820名無しさん@そうだ選挙にいこう:2013/08/21(水) 07:52:20.18
>>818
再インストール
PCがよほど古いor他のソフトが大量に動いてるならOSの再インストールを一度してみたほうがいいかも
821名無しさん@そうだ選挙にいこう:2013/08/21(水) 08:01:30.60
>>818
そういうのは環境も影響している場合も大きいのでテンプレ使っ
て尋ねた方が良いですよ。
822名無しさん@そうだ選挙にいこう:2013/08/21(水) 09:27:32.54
>>819
すいません、勉強してました。改めて質問なのですが、まずA1セルの式をB2:F5の範囲で適応されるようなマクロを組みたいのですが手順としてマクロ記録→範囲込みの関数をA1に入力→停止と言う方法は正しいですか?すでに式があるのにそれを生かす方法がわかりません‥
823名無しさん@そうだ選挙にいこう:2013/08/21(水) 09:45:04.24
>>822
indirect・・・なのか?
例えばSUMで、SUMの引数を自由に変えたいなら
A1=SUM(INDIRECT(A2,1))
A2=b1:b2
とすればB1:B2の範囲でSUMで足し算ができる。
A2=F1:F2
ならF1:F2で足し算な。
こういうことをやりたいわけではないのか
824名無しさん@そうだ選挙にいこう:2013/08/21(水) 14:29:28.33
>>823
それで少し頑張ってみます。ありがとうございます(^ν^)
825名無しさん@そうだ選挙にいこう:2013/08/21(水) 19:28:15.70
>820
PCは新しい方と思います
Windows8 x64
IvyBridge Celeron G1610
メモリ8GB
HDD500GB

他に同時に使うソフトは、ワード、ブラウザ、メーラぐらいです。

>821
上記の環境では不足でしょうか?
826名無しさん@そうだ選挙にいこう:2013/08/21(水) 19:32:31.91
>>825
環境は問題無さそう
エクセル本体のファイルが破損してるか、tmpファイルがおかしな事になってるかも
とりあえず再インストール
それでも続くようならまたおいで
827名無しさん@そうだ選挙にいこう:2013/08/21(水) 21:04:47.66
彼がどうかは解らないが、OS再インストールしろって言うと、駄々こねる奴もいるよな
他の方法でお願いします、とかw

でもOS再インストールは、それで解決することも多いし
少なくともハードウェア依存の問題か、ソフトウェア異存の問題かを判別する
一番手っ取り早い方法

普段からバックアップとかしてないと、いろいろ手間掛かるが
OS再インストールが極端に面倒になるような使い方自体、色々と問題を孕んでいるので
根本から見直す良い機会だと思えばいいさ
828名無しさん@そうだ選挙にいこう:2013/08/21(水) 21:48:26.70
インストールして終わりじゃないし
あらゆるソフトをカスタマイズして使ってるから、設定を何もかも元に戻すのに何日もかかる
829名無しさん@そうだ選挙にいこう:2013/08/21(水) 22:06:34.81
>>828
ワード、ブラウザ、メーラの設定を戻すのに何日もかかるってすごいな・・・
それこそOSクリーンインストールしてExcelだけでまずは使ってみたら?
830名無しさん@そうだ選挙にいこう:2013/08/21(水) 22:45:35.92
>>829
おまえがOfficeとメールとブラウザしか使ってないことはわかった
俺は50本以上の色々なソフトをインストールしてるから、再インストールだけで大仕事
カスタマイズはもっと大変
831名無しさん@そうだ選挙にいこう:2013/08/22(木) 01:12:19.86
>>830
へぇ、そりゃすごい







アホだな (w
832名無しさん@そうだ選挙にいこう:2013/08/22(木) 05:36:41.13
>826
OSもOffice2013もプリインストールで
PCも最近購入したばかりですが、OSの再インストールしかないでしょうか?
Office2013の再インストールではダメでしょうか?
833名無しさん@そうだ選挙にいこう:2013/08/22(木) 05:44:20.46
>>832
Excel が応答しない、停止する、フリーズする、動作しなくなる
http://office.microsoft.com/ja-jp/excel-help/HA103989782.aspx
・最新の更新プログラムをインストールする
・Excel が別のプロセスに使われていないことを確認する
・問題がある可能性があるアドインを調査する
・Office プログラムを修復する
・ウイルス対策ソフトウェアが最新であり、Excel と競合していないことを確認する

Office 2013 の既知の問題
http://office.microsoft.com/ja-jp/support/HA102919019.aspx
834名無しさん@そうだ選挙にいこう:2013/08/22(木) 09:56:42.75
【1 OSの種類         .】 WindowsXP・7・8
【2 Excelのバージョン   】 Excel2007・2010・2013
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

宜しくお願いします。

A列に日付形式で「平成25年8月15日」と連続して入ってるのを、
B列に250815という形で抜き出して整理していきたいのですがどのようにしたら良いでしょうか?

A1 平成25年8月15日  B1 250815
A2 平成24年12月2日  B2 241202
といった以降行も同様に。
835名無しさん@そうだ選挙にいこう:2013/08/22(木) 10:39:29.74
>>834
B1=TEXT(A1,"emmd")
あとはフィルハンドルで
836名無しさん@そうだ選挙にいこう:2013/08/22(木) 10:42:12.13
ごめんこっちか
=TEXT(A1,"emmdd")
値だけならフィルしたあと値のみ貼り付けするか
最初からVBAでやらないと無理
837名無しさん@そうだ選挙にいこう:2013/08/22(木) 10:50:14.68
>>834
=TEXT(A1,"eemmdd")
838名無しさん@そうだ選挙にいこう:2013/08/22(木) 11:19:58.38
>>834
ちょっと変化球

B1 セル書式設定→ユーザー設定→「yymmdd」

更にB1へ下記数式を入力
=A1+4383
839名無しさん@そうだ選挙にいこう:2013/08/22(木) 11:31:37.51
>>810
ですが度々申し訳ないのですが質問です。=sumif($B:$B,"1".$D:$D)-sum($F:$F)という式にindirectでB2:F10の範囲を適応させるという組み合わせを作りたいのですがどうやっても出来ません‥すいませんが教えて下さい。よろしくお願いします。
840名無しさん@そうだ選挙にいこう:2013/08/22(木) 11:45:52.09
>>828,>>830
それ、全部手動でやってるの?
そりゃ大変だw

俺は設定ファイルやレジストリをバックアップしてあるので、
「解凍するだけ」みたいなのを除いても100本はソフト入れるが
開始から完了まで3時間、その中で実際に作業するのは計1時間程度で
OSクリーンインストール&後入れソフトインストール&OSとソフトのカスタマイズまで完了する
841834 ◆upmIvMVKO6 :2013/08/22(木) 13:14:48.95
835-838 ありがとうございました^^無事処理ができました。
842名無しさん@そうだ選挙にいこう:2013/08/22(木) 13:17:48.75
最初のOSとOfficeとVisual StudioのWindowsアップデートだけで1時間かかるは…
ほっとけばいいと思ってたら、なんか確認ダイアログとか出て止まってるし

あと電子地図がインスコに1時間かかる
途中4回DVDの入れ替えが必要だし
843名無しさん@そうだ選挙にいこう:2013/08/22(木) 13:22:18.58
経験上、パソコンが得意な人の「1時間で終わるよ」が本当に1時間でできたためしがない
最低でも3倍、ヘタするとその日に終わらないことも少なくない

>>840
いっぺん3時間でできるか測ってみ
「今回はたまたまネットが重くてパッチがなかなか落ちてこなかった」みたいな言い訳はもう聞き飽きたわ
そういうトラブルも織り込んだ見積もりが出せないやつは素人認定だからな
844名無しさん@そうだ選挙にいこう:2013/08/22(木) 13:39:49.88
>>842
仮想化しておいたほうがいいんじゃないか。
VSは死ぬほど時間かかるよな。これが一番邪魔臭い
845名無しさん@そうだ選挙にいこう:2013/08/22(木) 13:54:08.59
Adobe Creative Suiteも死ねるぜ
846名無しさん@そうだ選挙にいこう:2013/08/22(木) 16:58:14.50
どんなに効率よくやったとしても、再インストールと環境構築がたった3時間なんて、よっぽど簡単な使い方しかしてないんだな
847名無しさん@そうだ選挙にいこう:2013/08/22(木) 18:59:03.36
>>843
再インストールに当ってネットから落とす物など何もないけど?
アップデートとかはネットワークインストールが主流になっているが
ローカル用も配布しているので、それを用意しておけば良いだけだし

時間については、待たされる時に飯食ったり外出したりすることも多いので
必ず3時間で終しているわけではないが、ずっとパソコンの前にいて、本でも読みながら
パソコン側の応答があったらすぐに次の作業に移れば確実に3時間以内で終る
再インストール時間を計ったというか、用事があって、3時間弱で終らなかったら
帰ってきてから続きをやろうと思っていたら、その用事の前に終せたってことがあったので間違いない

それと、君の知り合いがどんだけヘタレなのかは知った事じゃないので、紹介してくれなくていいよ

>>846
うん、ソフトのインストールと設定復元をバッチスクリプトで自動化するなど、かなり簡単にできるようにしてる
848名無しさん@そうだ選挙にいこう:2013/08/22(木) 19:08:18.40
良かったね。
849名無しさん@そうだ選挙にいこう:2013/08/22(木) 19:50:43.43
嫉妬しすぎだろw
850名無しさん@そうだ選挙にいこう:2013/08/22(木) 19:57:32.23
>>847
用意するには落とす必要があるんじゃないの?
851名無しさん@そうだ選挙にいこう:2013/08/22(木) 20:05:08.04
まっさらな仮想環境を用意している俺に隙はない
852名無しさん@そうだ選挙にいこう:2013/08/22(木) 20:16:44.78
>>850
アップデートが出た時に、ローカルアップデートファイルをDドライブに落としてインストールする
すると、今後CドライブのOSをクリーンインストールしても、Dドライブには前回使った
ローカルアップデートファイルが残っているので、改めて落とす必要なんて無い
853名無しさん@そうだ選挙にいこう:2013/08/22(木) 20:37:33.91
たまたま再インストールを始めた直後に最新版が公開されるという罠が…
854名無しさん@そうだ選挙にいこう:2013/08/22(木) 21:18:18.07
その分だけなら+数分程度じゃね?
855829:2013/08/22(木) 22:15:11.92
あー、なんかゴメンな
俺が>>825>>828を同じ人だと思っちゃったのが原因みたいだね
無駄なソフトのインストール自慢は誰も興味ないしスレチなので止めてくださって結構です
ホント申し訳ない
856名無しさん@そうだ選挙にいこう:2013/08/22(木) 22:16:27.18
精一杯の負け惜しみ、乙
857名無しさん@そうだ選挙にいこう:2013/08/22(木) 22:23:51.20
バカが盛るからこんな事になるんだよ。ほんと使えねーな。
858名無しさん@そうだ選挙にいこう:2013/08/23(金) 03:05:50.53
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可

重複しない整の乱数を返したいと思いまして
検索して下記のサイトに辿り着きました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1053921050

作業列を二つ作り一つにRAND、もう一つにRANK関数を
用いるというもの何ですが疑問に思いました。

RANDによる乱数は重複する事はないんでしょうか?
確率は低そうですが重複する確率は0じゃない様に思って質問させて頂きました。
もし、重複するなら他の方法を教えて頂ければ幸いです。
859名無しさん@そうだ選挙にいこう:2013/08/23(金) 03:34:24.32
>>858
「乱数」ってのは「重複する可能性のある物」だから、そもそも「重複しない乱数」というのが定義に反している、矛盾している
敢えて言うなら「乱数から重複を取り除いた物が欲しい」などのように書くべき

もちろんExcelのRANDも重複する
ただしExcelのRANDは本物の乱数じゃない
人間には乱数のように見えるけど、実際には一定の計算式で計算した結果なので
式を知っていれば次の数字は100%予測できてしまう。これは乱数の定義に反する
ユーザーは知らないふり、気付かないふりをして乱数だと思い込むのがお約束になっているだけのこと

で、元の質問に戻るけど、「乱数から重複を取り除いた物が欲しい」のなら、
「RANDで数字を出し、重複があったらやり直す」とか、
範囲が決まってるなら先に数列を用意して、RANDを使って順番を入れ替えていく、などの方法がある

ついでに言うと、その知恵遅れの回答、乱数を100倍する必要がないしAの前の$も必要ない
860名無しさん@そうだ選挙にいこう:2013/08/23(金) 03:53:09.57
整の乱数って整数の書き間違い?正の数?どっち?
いくつ欲しいの?
861名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:00:21.93
>>859
回答ありがとうございます。
やはりRANDも重複しますよね。
excelに完全な乱数を期待すること自体が間違いなんですね。
862名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:01:28.56
>>860
整数の中からダンダムで数を取り出すという意味でした。
863名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:07:33.84
数字の範囲と個数は?
864名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:13:57.69
>>863
1〜10の正数の中から重複しない5個を取り出したいです。
865名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:19:34.97
>>864
知恵袋の方法で10まで出してから、上から5個を採用、とか
866名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:25:06.44
>>865
その方法でもRANDが重複した場合には結局同じじゃないですか?
867名無しさん@そうだ選挙にいこう:2013/08/23(金) 04:50:13.73
>>858
エクセルのRAND関数では65535だっけかな?それぐらいしか作れない

で、リンク先はA列が間違っている
=INT(RAND()*100)+ROW()/1000
これなら100%重複することがない。

1000を超える個数でやりたいなら最後の1000を100000なりなんなりにしてくれ
ただし、あまり多くなると今度は小数誤差(エクセルの仕様。詳細はググってね)が発生するから
=INT(round(RAND()*100000,-3))+ROW()
こんな感じになったりしてめんどくさい
868名無しさん@そうだ選挙にいこう:2013/08/23(金) 05:03:11.13
>>867
ありがとうございました。
解決致しました。
869名無しさん@そうだ選挙にいこう:2013/08/23(金) 05:24:21.15
> excelに完全な乱数を期待すること自体が間違いなんですね。
そもそも、君の求めているものが「自分の目的通りの数列」であって「乱数」じゃない
Excelの乱数は完全な乱数ではないけど、重複は完全な乱数でも出るので
君の望みに合わないのは、Excelの乱数の不備ではなく、
乱数という物を理解していないことによるもの
870名無しさん@そうだ選挙にいこう:2013/08/23(金) 09:53:37.88
>>839
ですが誰か教えて下さい。た、頼む〜
871名無しさん@そうだ選挙にいこう:2013/08/23(金) 10:37:40.71
>>870
どこのセルにどういう数値があって、どういう結果を出したいか言ってくれればその式を1から作るよ
なんか根本的にやり方が間違ってる気がする
872名無しさん@そうだ選挙にいこう:2013/08/23(金) 11:57:35.45
>>870
スクリーンショットや図解AAを駆使して何をどうしたいか説明して
みればどうよ?
873名無しさん@そうだ選挙にいこう:2013/08/23(金) 13:00:33.97
>>867
それRANDが重複した際に
行の数が大きい列程、RANKの順位が上がりやすくなるじゃん
874名無しさん@そうだ選挙にいこう:2013/08/23(金) 13:05:30.74
>>871
まずB列には1から3までの設備番号が順不同に並んでいて、D列には各設備での製品の処理枚数が入っていてさらにF列には各号機で処理した枚数からマイナスとなる不良数が入っている。
これが各行にだんだん増えていくという表があり、ここからある一定でない連続した範囲での設備別の合計処理枚数を出したいのです。
 1号機 200枚
 2号機 100枚
 3号機 150枚 といったふうに…
この計算をその都度行う方法はわかるのですがそれでは凄く手間がかかるので例えば対象の範囲をマウスでアクティブな状態に
することでA1〜A3セルに合計が簡単に表示されるような数式がしりたいのです。ちなみにC列、E列にはこの計算には無関係な情報が入っています。
おそらくマクロを使わないと実現できないような気がしますがまず手順がさっぱりです…
875名無しさん@そうだ選挙にいこう:2013/08/23(金) 13:21:38.36
ある連続した範囲って日付?ピボットテーブルでいんじゃないの
876名無しさん@そうだ選挙にいこう:2013/08/23(金) 13:35:59.61
日付というか三交代勤務の一勤で集計、二勤で集計というような勤務ごとの範囲です。ピポッドテーブル難しそうですね‥調べてみます。
877名無しさん@そうだ選挙にいこう:2013/08/23(金) 13:42:10.86
じゃあその勤務区分も列に入力しておかないと ピボットでなくても集計できない
878名無しさん@そうだ選挙にいこう:2013/08/23(金) 14:03:07.75
>>867
>エクセルのRAND関数では65535だっけかな?それぐらいしか作れない
嘘も程々にしとけよ
879ぴころ ◆lHG3Yzo0a6 :2013/08/23(金) 15:03:24.39
ふ〜(^▽^)
880名無しさん@そうだ選挙にいこう:2013/08/23(金) 15:29:40.17
お前等、頭悪いなw
乱数から重複を除いた物を抜き出す簡単な方法があるだろ
IFとCOUNTIFとRANDを組み合わせればいいだけw
881名無しさん@そうだ選挙にいこう:2013/08/23(金) 15:59:11.05
>>874
http://www.dotup.org/uploda/www.dotup.org4429872.xlsx.html
http://www.dotup.org/uploda/www.dotup.org4429876.png
作業列とオートカルクを使えばok

作業列の場所はあくまで一例なので、別のシートに作っても良い。別のbookでもいい。
オートカルクは選択範囲の合計などが出せる。ぐぐれ
>>878
俺の言ってることが嘘ってソースあるのー?
http://www001.upp.so-net.ne.jp/isaku/rand.html
>もっと大きな問題は、乱数を初期化する Randomize にある。 これは与えられた種を16ビットの整数に変換して初期化する。従って、65536種類の 系列しか得られない。
>>880
へー
882名無しさん@そうだ選挙にいこう:2013/08/23(金) 16:41:31.00
>>881
>俺の言ってることが嘘ってソースあるのー?
ソースなんていらないだろ
RANDで5桁を有に超える少数を扱えるのに
65536個しか乱数を作れないってなんだよwww
65536種類の系列って書いてあるとおり
Excelで扱える列数の数は最大65536って事だろ
A…Z…列はA…Z…65536までしか扱えないとういうこと
883名無しさん@そうだ選挙にいこう:2013/08/23(金) 17:12:31.84
>>867
>=INT(RAND()*100)+ROW()/1000
>これなら100%重複することがない。
もう一つ突っ込ませてもらうと
それをやっても重複する可能性は全く変わらない。

列番号を足したものが他と重複すれば結局意味が無い

やるんならROUNDDOWNをつかって

=ROUNDDOWN(INT(RAND()*100000),0)+ROW()/100

としないとね
884名無しさん@そうだ選挙にいこう:2013/08/23(金) 17:28:09.03
>>881>>882
どっちも誤り。
系列とは65536種類の乱数の出し方と思っていればいい。
最終的な乱数の数は16777216個。
885名無しさん@そうだ選挙にいこう:2013/08/23(金) 17:50:31.78
>>883
どこで笑えばいいの?
886名無しさん@そうだ選挙にいこう:2013/08/23(金) 17:56:17.70
>>885
父さんが倒産したって辺り
887名無しさん@そうだ選挙にいこう:2013/08/23(金) 17:58:22.35
>>885
鏡でも見て笑ってなさいw
888名無しさん@そうだ選挙にいこう:2013/08/23(金) 18:08:11.65
自己紹介、乙w
889名無しさん@そうだ選挙にいこう:2013/08/23(金) 22:59:40.79
間違えてVBA質問スレに書いてしまいましたのであちら取り消しの上こちらに失礼します



シートAに以下のようなものがあるとします

A  B
1/1  10
1/2  20
1/3  30
1/4  40
1/5  50


このとき別のシートBに日付を2つ入力し、その2点間の平均を求める関数を書きたいです
(例えばシートBのA1に1/2、A2に1/4と記入したらA5には20,30,40の平均=40が出力される)

それについて以下のように考えました

=AVERAGE(INDIRECT(ADDRESS(MATCH(シートB!A1,シートA!A:A,0),2,4,1,"シートA")):INDIRECT(ADDRESS(MATCH(シートB!A2,シートA!A:A,0),2,4,1,"シートA")))

または

=AVERAGE(INDIRECT("シートA!A"&MATCH(シートB!A1,シートA!A:A,0)):INDIRECT("シートA!A"&MATCH(シートB!A2,シートA!A:A,0)))


このとき、AVERAGEの真ん中にあるコロン( : )が コンマ( , )の場合動きましたがコロンの場合どうしても動きませんでした
上記の方法では2点間の範囲という選び方はできないのでしょうか?
また、このほかにもっと良い方法ありましたら教えていただければ幸いです
890名無しさん@そうだ選挙にいこう:2013/08/24(土) 01:41:52.48
シートA
a b
1月1日 10
1月2日 20
1月3日 30
1月4日 40
1月5日 50

シートB
a b c
1月1日 1月2日 15
1月3日 1月3日 30
1月2日 1月4日 30
1月4日 1月5日 45
1月5日 1月1日 30

c1に
=(VLOOKUP(A1,a!$A$1:$B$5,2)+VLOOKUP(B1,a!$A$1:$B$5,2))/2
後はc5までオートフィル
891名無しさん@そうだ選挙にいこう:2013/08/24(土) 02:06:27.07
あっそw
892名無しさん@そうだ選挙にいこう:2013/08/24(土) 02:12:05.30
893名無しさん@そうだ選挙にいこう:2013/08/24(土) 15:01:10.63
>>877さん
ピポッドテーブルで正解でした!ありがとうございます。さらに質問があります‥B2:F10の範囲で集計したピポッドテーブルに適応セル範囲を変更させてB11:F20の範囲を当てはめたいのですが方法がわかりません。そんな事できますかね?
894名無しさん@そうだ選挙にいこう:2013/08/24(土) 16:26:02.58
集計したい行とそうでない行を区別する列をつくらないと集計できない
895名無しさん@そうだ選挙にいこう:2013/08/24(土) 21:28:17.74
基礎を習ってない人って結構多いんだね。
職業訓練でただで習っちゃった♪

>>893
セルの選択範囲を変更するのではなくて、
一行ずつをグループ化してアウトラインにして、欲しい行だけを表示するってのはいかが?
896名無しさん@そうだ選挙にいこう:2013/08/24(土) 23:20:24.22
>>889
日付が文字列でなくシリアル値なら
=AVERAGEIFS(A!B1:B5, A!A1:A5, ">="&A1, A!A1:A5, "<="&A2)

excel2003とか後出しは無しね。
897名無しさん@そうだ選挙にいこう:2013/08/25(日) 14:47:55.90
Excel2000を使ってます。
VBA不可でお願いします。

作業列を用いずに、例えば1〜10の間の中からランダムで
一つ正数を取り出したいんですが、この時数が大きくなるほど出づらいというようにしたいのです。
良い方法を教えてください。
=(RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND()+RAND())
これであってますかね?
898名無しさん@そうだ選挙にいこう:2013/08/25(日) 15:42:15.47
出にくいってことは確率を小さくすればいいんだろう
通常はどの数字も10%だから10の確率は1%にするとか。そういう式をつくればいいよ
899名無しさん@そうだ選挙にいこう:2013/08/25(日) 15:46:13.48
>>898

例えばどんな式になりますか?

IFを複数組合せたり、作業列を作らずに
できるだけ簡単に式で対応したいと思ってます。
ご指導お願いします。
900名無しさん@そうだ選挙にいこう:2013/08/25(日) 15:55:32.67
1なら50% 2なら30%とかにしたいんじゃないの? IF文の入れ子じゃないと無理だよ
901名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:00:26.55
ありがとうございます。

やはりIFを入れ子にしないとダメなんですね。。。
数が1から10ならそれでいいですが、
例えば1から1000で確率を細かく設定したい場合は式が長くなりすぎて
入らないですよね?
その場合方法はないんでしょうか?
902名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:03:16.24
作業列使うが、例えばX列に
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
として
=MATCH(RAND(),X:X,1)
1を大きくしたいなら10%?30%とか調節しる
903名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:04:26.95
文字化けした
?じゃなくて矢印→
904名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:15:44.10
>>902
ありがとうございます。
今回、作業列を使う方法をで対応させて頂きます。
905名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:26:39.28
求めたいのは10%とかの数値じゃなくて、その確率で得た1−10の整数だろ
906名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:31:44.89
>>905
そうです。
>>902では求められませんでした。。
907名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:34:03.08
>>906
そのままコピペしてやってみ
908名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:45:03.80
>>907
1の出る確率を上げたい場合、
作業列で10%の数を増やして調整するって事でしょうか?
909名無しさん@そうだ選挙にいこう:2013/08/25(日) 16:58:32.39
畜生!騙されてた事に気づいた。。。。
でもMATCHって新しい関数を覚えたのでよしとします。
910名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:10:39.88
たとえば1を50%、2を30%、3を20%で出したいときはこんな方法がある

A   B
1   1
2   1
3   1
4   1
5   1
6   2
7   2
8   2
9   3
10  3

=VLOOKUP(INT(RAND()*10+1,A1:B10,2,0)
911名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:17:49.33
>>910
VBA可ならSelect caseで、乱数のとる値の範囲を割合に応じて配布すればいける
なと思ってたがそれをシート上に展開してるわけか
912名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:22:49.99
>>910
ありがとうございます
その方法とIFを組み合わせれば1から1000でも対応できそうですね。
913名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:32:49.75
y=ax^2使えばxが大きいほどyが拡散して
実質xとyが少ない側が多くなる
914名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:42:50.85
int((RAND()*10)^2/10)とか
915名無しさん@そうだ選挙にいこう:2013/08/25(日) 17:49:53.55
>>913 >>914
細かい確率を設定しない場合その方法も使えますね!
ありがとうございます。
916名無しさん@そうだ選挙にいこう:2013/08/25(日) 18:59:21.20
>>908
なぜやってみない; 

rand():0 から 1までの乱数
0%: rand()が0から0.1までだったらマッチ、このとき1が帰る →1が出る確率10%
10%: rand()が0.1から0.2までだったらマッチ、このとき2が帰る →2が出る確率10%
20%: rand()が0.2から0.3までだったらマッチ、このとき3が帰る →3が出る確率10%
90%: rand()が0.9から1までだったらマッチ、このとき10が帰る →10が出る確率10%

10%のとこを30%にしてみ
0%: rand()が0から0.3までだったらマッチ、このとき1が帰る→1が出る確率30%
917名無しさん@そうだ選挙にいこう:2013/08/25(日) 19:13:46.74
>>902のX列を
0%
30%
50%
65%
75%
83%
88%
91%
95%
98%
とでもしたら
1: 30%
2: 20%
3: 15%
4: 10%
5: 8%
6: 5%
7: 3%
8: 4%
9: 3%
10: 2%
918名無しさん@そうだ選挙にいこう:2013/08/25(日) 20:47:46.31
>>914
指数部分を分数にする時はカッコがいるぜ
int((RAND()*10)^(2/10))
919名無しさん@そうだ選挙にいこう:2013/08/25(日) 20:48:13.52
と思ったらそういう意味じゃなかったのか、スマン
920名無しさん@そうだ選挙にいこう:2013/08/25(日) 21:13:19.03
>>916
すいません。
やっと意味が分かりました。
%の間を開けて確率を調節するって事だったんですね!
ありがとうございます。
921名無しさん@そうだ選挙にいこう:2013/08/25(日) 21:32:51.67
>>889
「数式の検証」使ってみ。なぜコロンがだめでコンマでいけてるかわかるよ。

シート名違うけど、一つ目の式を修正するならこれでいけるよ。
=AVERAGE(INDIRECT("Sheet1!"&ADDRESS(MATCH(A1,Sheet1!A:A,0),2,4,1)&":"&ADDRESS(MATCH(A2,Sheet1!A:A,0),2,4,1)))

コロンも含めてINDIRECTしてないからあなたの式は最終的にAVERAGE(20:40)になってます。こういうのは「数式の検証」使えば理解しやすいよ。
922名無しさん@そうだ選挙にいこう:2013/08/25(日) 22:35:14.48
ある文字を含むセルを抽出して計算したいんですがSUMPRODUCTだけではできないんですか?
http://www.dotup.org/uploda/www.dotup.org4435845.jpg
お願いします
923名無しさん@そうだ選挙にいこう:2013/08/25(日) 22:37:06.59
やべ勉強が勉教になってる恥ずかしい死にたい
924名無しさん@そうだ選挙にいこう:2013/08/25(日) 22:40:12.86
日時をテキストで扱うとか糞
925名無しさん@そうだ選挙にいこう:2013/08/25(日) 22:50:42.41
ふぇぇわかんないよぉ
926名無しさん@そうだ選挙にいこう:2013/08/25(日) 22:56:49.16
leftで2取って配列数式って出来たっけか。無理か
927名無しさん@そうだ選挙にいこう:2013/08/25(日) 23:08:03.75
一般的な話をすればSUMPRODUCTは完全一致
「4月」という文字列に完全一致するB列のセルはない
部分一致させるには>>926等の他の関数を使って切り出してやる必要がある
また、>>924の言うように日時として扱えばSUMPRODUCTだけでいけるはず
928名無しさん@そうだ選挙にいこう:2013/08/25(日) 23:16:04.93
日付になってたらなーsumifで集計できるんだけどな
http://allabout.co.jp/gm/gc/297820/3/
929名無しさん@そうだ選挙にいこう:2013/08/25(日) 23:33:28.02
寧ろ文字列を数式に変換する関数や方法方ってない?

例えば
=A1+A2
って文字列を数式にすることってできる?
930名無しさん@そうだ選挙にいこう:2013/08/25(日) 23:39:34.64
>>927
物凄く分かりました!
テキストではなく日時を表す方法、leftをググってきます!
931名無しさん@そうだ選挙にいこう:2013/08/25(日) 23:52:55.34
>>929
面倒臭かったけど出来なくもない
http://officetanaka.net/excel/function/tips/tips57.htm
932名無しさん@そうだ選挙にいこう:2013/08/26(月) 00:06:11.30
>>931
おお、こんなことができるんだ!
ありがとう。
933名無しさん@そうだ選挙にいこう:2013/08/26(月) 00:49:36.48
>>931
これめっさ便利やね
934名無しさん@そうだ選挙にいこう:2013/08/26(月) 00:51:03.01
そ、そうか
ちなみに逆はformulatext関数とか言うやつで2013から導入されたらしい
俺はどっちも使わないけど、需要あるんかな
935名無しさん@そうだ選挙にいこう:2013/08/26(月) 00:55:50.28
ランダムでセルを選んでそれを更に式に組み込むなんて使い方ができる
936名無しさん@そうだ選挙にいこう:2013/08/26(月) 01:40:43.44
子供用に数学の問題を作って後から解答する時に使える
937名無しさん@そうだ選挙にいこう:2013/08/26(月) 02:07:20.00
>>924
>>926
>>927
MONTHを使った抽出とLEFTを使った抽出、どちらのやり方も覚えました!
ありがとうございました!
938ぴころ ◆lHG3Yzo0a6 :2013/08/26(月) 07:07:52.46
どういたしましゅた(^▽^)
939名無しさん@そうだ選挙にいこう:2013/08/26(月) 14:09:27.73
>>883
何パーセントか教えてあげると優しい
940名無しさん@そうだ選挙にいこう:2013/08/26(月) 15:10:55.20
本人、勘違いしてるんだから、聞いてもしゃーないよ
941名無しさん@そうだ選挙にいこう:2013/08/26(月) 15:47:01.42
>>883は間違ってるの?
詳しい解説頼む
942名無しさん@そうだ選挙にいこう:2013/08/26(月) 16:00:53.04
>>941
俺にはどちらも似たような内容にしか見えない
不安ならcountifで常に同じものが2つあるかどうか監視するといいんでない
943名無しさん@そうだ選挙にいこう:2013/08/26(月) 21:03:35.52
=AVERAGE(SUMPRODUCT((RIGHT(A4:A22,4)="ブレンド")*(LEFT(C4:C22,3)="保管庫")*(D4:J22)),((SUMPRODUCT((RIGHT(A4:A22,4)="ブレンド")))))

ブレンドを含むコーヒーの在庫数の平均を出すときに 
知ってる関数 AVERAGE SUMPRODUCT LEFT RIGHT だけを使って平均を出しました

プロの皆さん どの関数を使えばスマートに表すことができるんですか!

そしてどうやって関数覚えていけばいいかもアドバイスくださいお願いします
944名無しさん@そうだ選挙にいこう:2013/08/26(月) 21:25:32.81
>>943
あぁ、質問する時は>>1->>10ぐらい読もうな。あとテンプレ使え
それとどの列にどんな内容が入ってるか分からん。全部教えてくれ
最後に、スマートに出す必要は特にない。間違っていなければそれでok。
重いとか結果がおかしいなら見るよ
あともしかするとピボットテーブルを使ったほうがいいかもしれない。使わなくていいかもしれない
945名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:00:08.71
>>944
申し訳ありませんでした・・・

【1 OSの種類         .】 Windows7 64bit home
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

スクリーンショットになります
ピボットテーブルは関数をある程度覚えて使ってみたいです 理解するまではフィルタもあまり使いたくありません
http://www.dotup.org/uploda/www.dotup.org4438052.jpg
できればスマートに表せるようになりたいです
こういう泥くさいコード書いていけばスマートなコードかけるようになれますか

みなさんはどのように覚えていったのですか?
できれば課題というか道のりを知りたいです
946名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:36:21.32
>>945
平均って何のどういう平均?
D25はD24を2で割っただけに見えるんだけど
イマイチその数値になる根拠が分からない
947名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:38:11.68
単純に合計の列を足したほうがいい気がする
948名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:45:57.78
>>945
そもそも合計が間違ってね?
949名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:47:31.58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

セルA1:300 セルB1:800 セルC1:=A1+B1
セルC1でA1とB1の合計を出す時、上記の演算にしてます
A1とB1の両方に数字が入力された時のみC1で合計値が出る様にするには
どうしたらいいですか?
私はMOS2010でSPしか持ってないレベルです。
950名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:47:44.11
え、間違えてるの…よくわからないっす…エクセルよくわかんねぇっす
951名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:51:02.07
>>943
の後半、
((SUMPRODUCT((RIGHT(A4:A22,4)="ブレンド")))))
これの結果はどうやっても0にしかならない。
>>945
で、平均は多分これが正しいと思う。知らんけど
=(SUMPRODUCT((RIGHT(A4:A22,4)="ブレンド")*(LEFT(C4:C22,3)="保管庫")*(D4:J22)))/SUMPRODUCT((RIGHT(A4:A22,4)="ブレンド")*(LEFT(C4:C22,3)="保管庫")*(D4:J22>1))
>>948
合計は合ってるけど色塗ってるとこが間違ってる
>>950
エクセルが分からんなら自分で計算しないと。
足し算と平均出すぐらいは電卓で出して、合わせた方がいい。
さすがにそれもできないなら、悪いけど死んだほうがいいと思う
952名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:53:00.27
>>949
=IF(0<COUNT(A1:B1),A1+B1,"")
953名無しさん@そうだ選挙にいこう:2013/08/26(月) 22:59:20.96
ごめん
訂正
=IF(COUNTA(A1:B1)>1,A1+B1,"")
954名無しさん@そうだ選挙にいこう:2013/08/26(月) 23:02:45.59
>>951 
泣き事言ってすみませんでした
今書き起こしてもらった数式を検証して理解しているところです 
本当に有難うございます!
955名無しさん@そうだ選挙にいこう:2013/08/26(月) 23:07:47.25
>>954
ブレンドって文字の判定をしたいんなら普通に作業列を作ればいいのに
956名無しさん@そうだ選挙にいこう:2013/08/26(月) 23:08:41.07
>>953
ありがとう
そういう組み合わせは全く浮かばなかった
957名無しさん@そうだ選挙にいこう:2013/08/26(月) 23:16:02.05
乞食速報!!!!!
リンクはいずれもアマゾン短縮URL

■Microsoft Office2010
http://rlu.ru/yoO
4000円台でMSオフィス正規版が手に入る。
※並行輸入品=海外の正規品≠海賊版
但し、家庭での使用か、学生である必要あり。
尤も、その調査はなされない。

■クアッドコア ASUSタブレッド
http://rlu.ru/yoM
クアッドコアのコスパ最強タブレッド


■超高性能マウス
http://rlu.ru/yoQ
※ロジクールは三年保障。
カカクコムでも売上トップクラス。


■Nexus 7 Wi-Fi+モバイル
http://rlu.ru/yoR
次世代が発売が発表された今こそ、これは買い。
最安値。
958名無しさん@そうだ選挙にいこう:2013/08/27(火) 00:19:25.14
>>945は結局なんの平均を出したかったのだ?
959名無しさん@そうだ選挙にいこう:2013/08/27(火) 00:33:15.35
>>958
まだ勉強し始めたばかりなんで手当たり次第にテンプレ落としては自分で問題を作って
この関数はどんな事が出来るのか、この関数と組み合わせて見ようとか
そういう事をしてるだけです
過程しか考えてないです
高校卒業までにオフィスマスターになりたい
960名無しさん@そうだ選挙にいこう:2013/08/27(火) 01:07:58.34
(なんだそりゃ!)
961名無しさん@そうだ選挙にいこう:2013/08/27(火) 01:23:47.78
まあ、がんばれ
962名無しさん@そうだ選挙にいこう:2013/08/27(火) 01:36:16.51
あの、本当に答えていただきたいんですけど、皆さんはどういうやり方で関数を覚えたんですか?
今のやり方だとすぐ壁にぶち当たるんです
963名無しさん@そうだ選挙にいこう:2013/08/27(火) 02:02:48.82
仕事で使ってたら誰でも覚える。一日8時間近く使うわけだからな
小数誤差なんて見本とにらめっこしててもまず気づかない。
それに、全部覚えても仕方ないよ。dsumとか個人的には全然使わない、グラフも棒グラフぐらいしか知らん。データの整形ばっかりやってる。
MOSなんて絶対無理。
何がいいたいかって言うと、使う分野を極めた方が役に立つってことだ。
試験に受かりたいだけなら過去問延々やってればいい。
964名無しさん@そうだ選挙にいこう:2013/08/27(火) 02:04:20.34
必要なものは以下の3つ

・日本語や基礎数学に対する理解力
・すぐに安直に匿名掲示板等での他人頼りに逃げない根気
・資格みたいな、それだけでは無意味なものではなく、
 それを以て具体的に何を成し遂げたいのかという目標や熱意

以上
965名無しさん@そうだ選挙にいこう:2013/08/27(火) 04:57:14.69
>>962
壁にぶち当たったらここにまた来ればいいさ
966名無しさん@そうだ選挙にいこう:2013/08/27(火) 06:46:51.58
【1 OSの種類         .】 Windows7
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
A1〜A5にはどの計算式を使うか
B1〜B5には計算させたい数値
C1〜C5にそれぞれ別の計算式を入れて
D1〜B5に計算結果を表示させたいのですが

具体的には下図のABを入れるとDが出るようにしたいのですが
Cの式の[?]とDにはどんな式を入れたら良いのでしょうか?

   A   B     C      D
1  C1  12   [?]*3+2   38(←B1をA1にある、”C1”の*3+2で計算した結果)
2  C1   5    [?]*2+6   17(←B2をA2にある、”C1”の*3+2で計算した結果)
3  C4   6   [?]*3.5+5    6(←B3をA3にある、”C4”の*1で計算した結果)
4  C2   8    [?]*1    22(←B4をA4にある、”C2”の*2+6で計算した結果)
5  C5   2   [?]*1-1    1(←B5をA5にある、”C5”の*1-1で計算した結果)
967名無しさん@そうだ選挙にいこう:2013/08/27(火) 07:55:15.03
>>966
http://officetanaka.net/excel/function/tips/tips57.htm
を参考に、
参照範囲を=EVALUATE(SUBSTITUTE(INDIRECT(Sheet1!A1,1),"[?]",Sheet1!B1))
に変更
D1=計算

なんだこりゃ
968名無しさん@そうだ選挙にいこう:2013/08/27(火) 07:58:08.97
変な方法だけど文字列を数式扱いにするのはvba抜きだとこれぐらいしか無い、と補足しておく
969名無しさん@そうだ選挙にいこう:2013/08/27(火) 08:00:31.60
>>967
ありがとうございます!
970名無しさん@そうだ選挙にいこう:2013/08/27(火) 08:20:41.38
>>966
数パターンの数式の結果をだすだけなのに、見た目に分かりにくく、文字列を数式に変換するのにも手間がかかる
数式群の数がそんなにないのであれば、単純に横1列に全数式の解を出す
値  *3+2 *2+6 *3.5+5
12 38   30   47
5  17   16   22.5
シンプルでわかりやすく、データの追加、管理もしやすい

どうしても最初の方法でやりたいなら、文字列の数式をsubstituteかなんかでオペレータごとに分解して、値を代入して計算させる。
しかもその数式はA列のアドレス指定をindirectしてmatchさせて指定しておくと、、めんどくせ;
971名無しさん@そうだ選挙にいこう:2013/08/27(火) 13:49:17.77
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

  A   B   C
1 名前 特技 趣味
2 鈴木 剣道 音楽
3 山田 数学 映画
4 高橋 物理 剣道
5 小林 国語 料理
6
7 剣道

こんな感じで名前、特技、趣味の表がある時、
A7に入力された文字と一致する、趣味あるいは特技を持つ者の名前を
B7に並べて表示させたいです。
「鈴木、高橋」というように表示させる方法を教えてください。
972名無しさん@そうだ選挙にいこう:2013/08/27(火) 14:47:52.17
数式ってのは1つの結果を返すものなので
不定件数の結果を返そうとすると、ものすごく面倒になる

出来ないことはないが、数式でやるのは面倒すぎ不適切すぎなので
冗長な数式書くのが好きな人にパスする

フィルタやVBAなどの適した手段で結果を出せれば良いってならアドバイスするが
973名無しさん@そうだ選挙にいこう:2013/08/27(火) 15:08:55.30
>>972
VBAを使えない環境でも使えるものを作りたいです。
フィルタを使った方法をアドバイスお願いします。
974971です:2013/08/27(火) 15:44:28.96
E列を作業列としてE1に
=IF(COUNTIF(C3:D3,$B$8)>=1,B3,"")
と入れてE6までオートフィルしてC8に
=+E2&"、"&E3&"、"&E4&"、"&E5&"、"&E6
と入れる方法を考えたんですが
「、鈴木、、高橋、」となって読点が不格好になってしまい
困ってます。

この方法の解決策でも分かる方がいたらアドバイスお願いします。
975971:2013/08/27(火) 15:49:19.75
すいません。
>>974の読点の乱れは事故解決しました。。。
他によい方法があったらアドバイスお願いします。
976名無しさん@そうだ選挙にいこう:2013/08/27(火) 18:59:46.52
>>974
D2=IF($A$7=B2,A2&",","")
E2=E1&D2
下にオートフィル
最後にleftとlenを使って最後の点を取り除く
b7=left(e7,len(e7)-1
977名無しさん@そうだ選挙にいこう:2013/08/27(火) 19:25:42.20
>>976
ありがとう!
978名無しさん@そうだ選挙にいこう:2013/08/27(火) 19:26:05.50
ピボットテーブルで
979名無しさん@そうだ選挙にいこう:2013/08/27(火) 22:53:19.37
数値(時刻)を読み込んだら、その数値を返し、アルファベットを読み込んだら、それにあうVLOOKUP関数を返す。
誰かで着ませんか?
980名無しさん@そうだ選挙にいこう:2013/08/27(火) 23:01:49.73
日本語でおk
981名無しさん@そうだ選挙にいこう:2013/08/27(火) 23:10:32.65
久しぶりに強力なエスパーの出番が必要そうだ
982名無しさん@そうだ選挙にいこう:2013/08/27(火) 23:19:42.84
>>979
a1=if(istext(vlookup(この中は知らん)),vlookup(この中は知らん),a1)
こういうことがしたいのだと予想
983名無しさん@そうだ選挙にいこう:2013/08/28(水) 01:13:30.67
>>959
解りました
では屏風の中の虎を追い出して下さい
フン捕まえてご覧にいれましょう
984名無しさん@そうだ選挙にいこう:2013/08/28(水) 01:47:34.99
>>983
すみません・・・
平均を出したかったのはそうなんですが、なんの平均が欲しかったのかと言われると
AVERAGEIFSやSUMPRODUCTで何ができるのか勉強していただけなので うまく答えられませんでした
日本語が変ですみませんでした
985名無しさん@そうだ選挙にいこう:2013/08/28(水) 03:16:02.46
【1 OSの種類         .】 Windows ビスタ
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Excelを使って自動的に文章を作りたいです。
例えばA1に「男」B1に「7月」C1に「23時」と入力されてる時に

こんばんは。
俺の趣味はゲームです。
しかし、昨日は海水浴に行ってきました。

A1の性別を判定して第一人称→「俺」
B1の季節を判定して→「海水浴に行ってきました」
C1の時間を判定して→「こんばんは」

こんな具合に一行目に筆者と、日時の設定をすると
自動的にランダムで設定に合った自然な文章を作れるようにしたいです。
できるだけ長文で自然な文章を作る方法を教えて下さい。
986名無しさん@そうだ選挙にいこう:2013/08/28(水) 03:23:48.55
>>985
vbaなしのエクセル単体では無理すぎる。
人工無能でググった方がいい。多分lispを使うことになるが、vbaも使えないんじゃ無理。諦めよう
987名無しさん@そうだ選挙にいこう:2013/08/28(水) 03:31:23.25
ありがとうございます。
VBAをまなべばいいのですね。
988名無しさん@そうだ選挙にいこう:2013/08/28(水) 05:33:47.91
989名無しさん@そうだ選挙にいこう:2013/08/28(水) 12:28:49.95
990名無しさん@そうだ選挙にいこう:2013/08/28(水) 17:52:34.49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2010
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
MOS2010SP資格保有程度の知識しかありません

B1に文字を入力した時に、A1へ日付が自動入力されるようにするにはどうしたらいいですか?
TODAYだとデータを開くたびに現在の日付へと自動更新されてしまうので困ってます
991名無しさん@そうだ選挙にいこう:2013/08/28(水) 18:02:09.87
そういうのはVBA使わないと無理じゃないかな。
VBA嫌なら手作業でA1選んで[Ctrl]+[;]とか。
992名無しさん@そうだ選挙にいこう:2013/08/28(水) 18:27:07.61
あれ、スペシャリストはVBAやらないんだっけ?
VBAはその上のエキスパートからか?
993990:2013/08/28(水) 19:05:18.50
ワードのExpで少しVBAやったけど、範囲が狭かったから忘れてしまった。
最近エクセルExpの勉強始めたばかりだから、VBA使えるようになるにはもうちょっと時間かかりそう。
VBAで出来るのであれば、回答ください。
明日参考書見て試したいです。
994名無しさん@そうだ選挙にいこう:2013/08/28(水) 20:25:16.93
>>990
a1ha tekito-ni syosikisetteisiteoite

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 1 And Target.Column = 2) Then
Cells(1, 1) = Now()
End If
End Sub
995名無しさん@そうだ選挙にいこう:2013/08/28(水) 20:29:18.74
996名無しさん@そうだ選挙にいこう:2013/08/28(水) 20:31:31.98
Excel総合相談所 110
http://toro.2ch.net/test/read.cgi/bsoft/1377689186/
つぎ
997名無しさん@そうだ選挙にいこう:2013/08/28(水) 20:43:24.45
998名無しさん@そうだ選挙にいこう:2013/08/28(水) 20:54:39.44
999銀河鉄道:2013/08/28(水) 21:00:43.73
999
1000ぴころ ◆lHG3Yzo0a6 :2013/08/28(水) 21:02:40.33
(^▽^)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。