約 4,053,746 件
https://w.atwiki.jp/stat_semi/pages/19.html
データをテキストで直打ちしてベクトルにするのも慣れればなんてことはないですが,それでもデータの入力・管理はExcelやCalcのような表計算ソフトのほうがやりやすいと思います.ここでは,データをExcelやCalcからRへ引っ張ってくる方法を説明します. データフレームの作成 Rで作成することのできるデータの構造には、ベクトルのほか行列?、配列?、これらを組み合わせたリスト?などがありますが、まずはExcel形式と親和性の高いデータフレームについて説明します。データフレームはRの標準的なデータ構造ですから、ベクトルとデータフレームさえ知っていればかなり色々なことができるようになります。 データフレームは同じ長さのベクトルを複数個集めたものだと考えるとわかり易いと思います。データフレームはdata.frame()関数により作成します。引数としては同じ長さのベクトルを与えます。 name - c("a", "b", "c", "d", "e", "f") point - c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7) rate - c("C", "A", "A", "B", "B", "B") data.frame(name, point, rate) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは、長さ6のベクトル3つをまとめてデータフレームを作りました。上の例のではベクトルは最初にオブジェクトに格納しましたが、必ずしもこの手順に従う必要はありません。次のように直接data.frame()関数の中で指定することも可能です。 data.frame( + name = c("a", "b", "c", "d", "e", "f"), + point= c(1.0, 1.5, 2.0, 1.1, 1.3, 0.7), + rate = c("C", "A", "A", "B", "B", "B") + ) name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B ここでは「name=...」などとしてベクトルの名前を指定しましたが、指定しなかった場合は入力した命令に応じて自動で名前がつきます。ただしデータの参照の際などに困ることがありますから、名前を指定する、もしくはあらかじめオブジェクトにしたベクトルを利用してデータフレームを作成するようにしましょう。 data.frame(1 3,2 4,3 5) X1.3 X2.4 X3.5 1 1 2 3 2 2 3 4 3 3 4 5 代入と呼び出し 実際にはベクトルと同じで何かオブジェクトに代入しておいてから使うのが賢いやり方です。 my.data - data.frame(name, point, rate) こうしておけば、オブジェクト「my.data」の中にはがんばって作ったデータフレームを保存しておくことができます。使うときは、ベクトルと同じで名前を呼んでやります。 my.data name point rate 1 a 1.0 C 2 b 1.5 A 3 c 2.0 A 4 d 1.1 B 5 e 1.3 B 6 f 0.7 B また、最初に「データフレームは同じ長さのベクトルを複数個集めたものだ」といいました。ですから、データフレームを構成しているベクトルを一部だけ引っ張ってくることもできます。それには、名前に続いて$マークをタイピングし、それに続けてベクトルの名前を打ち込んでやります。「データフレーム名$ベクトル名」といった具合です。実際にやってみましょう。 my.data$rate [1] C A A B B B Levels A B C 呼び出せました。なにやらLevelsというものが付いていますが、これはこのベクトルが「因子」ベクトルとして認識されていることを表しています。因子ベクトルはベクトルの要素の文字や数字によってグループ分けがなされます。ここではA B Cという3つのグループが認識されていることになります。このグループ分けはグラフを要素ごとに分けて書いたり、多重比較のような統計処理をしたりするときに重要となりますから頭の片隅にでも置いておいてください。必要な箇所では改めて説明します。 エクセルからデータを持ってくる データフレームのデータの並び方は表計算ソフトっぽいです。データ入力は表計算で行って、そいつをパパっとRに持ってきて統計処理やらなにやらができたら便利ですね。Rにはそういった要望にこたえるためのread.○○○()という一連の関数があります。クリップボード(Windowsとかでコピーのコマンド[Ctrl+Cとか]を実行したときに、データが一時的に収納される場所)へコピーしたExcel、またはオープンオフィスのCalcのデータをRへ移すには、read.delim()関数を使います。例えば、Excel上で次のような形のデータがあったとしましょう。 動物 頭数 サイズ ネコ 100 small シカ 10 middle シロナガスクジラ 1 ultimate そうしたらこのデータの範囲を選択してクリップボードにコピーします。[Ctrl+C]ですね。Macではコマンドキーとやらを使うと風のうわさに聞いたことがあります。ともかく、コピーができたらRのコンソールへ移動します。そこで「read.delim("clipboard")」とコマンドすればさきほどコピーしたデータを使って次のようにデータフレームを作ってくれます。 read.delim("clipboard") 動物 頭数 サイズ 1 ネコ 100 small 2 シカ 10 middle 3 シロナガスクジラ 1 ultimate read.delim()関数ではコピーした範囲の最初の行が勝手にベクトルの名前と認識されます。引数を設定することでこの認識をさせなくしたり、名前を自由に設定したりすることもできますが、さしあたってはExcelにデータを打ち込む時点で「最初の行を名前にする、データは縦に並べる」というルールを設けておくということにしましょう。 Rへのデータの取り込み方はこれだけではありません。例えば僕が以前ロガーを用いて採取していた温度と湿度のデータはテキストファイルにして10万行を超えるものもあり、そもそもExcelでの表示が無理でした。しかし、幸いロガーはデータをCSV形式で吐き出してくれていたので、Rのread.csv()関数によって読み込むことができました。 このように外部からのデータの取り込み方には色々あるわけですが、とりあえずここはRへのデータの取り込み?というページだけを作成しておいて説明はそっちにまわすことにします。 おそらくはこのクリップボードを介してのデータ取り込みが一番わかり易いでしょう。データの動きをイメージしやすいですし、ミスも少ないと思います。
https://w.atwiki.jp/lmes2/pages/46.html
HTMLをExcelファイルとしてDLさせる 概要 webページとしてブラウザで表示されるASP.NETの出力を、ExcelファイルとしてDLさせる。 前提条件 新しいwebサイトの作成 デフォルトのエンコードをshift-JISにする 手順 デザイン部分を右クリック - [コードの表示] not found (81.jpg) 以下のように表示される。 not found (82.jpg) 以下のコードを貼り付ける。 Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.ContentType = "application/vnd.ms-excel; charset=Shift_JIS" Response.AddHeader("Content-Disposition", "attachment; filename=Sample1.xls") Response.Flush() Response.Write("hoge") Response.End() End Sub End Class not found (83.jpg) デバッグ開始。以下のように表示される。 not found (84.jpg) 保存してExcelで開くとこんな感じ。 not found (85.jpg) なお、この項の作業では、ブラウザは以下のようになってしまうが、これはPageLoadイベント中にファイルをダウンロードさせたからである。 button等を配置し、クリックした時にファイルをダウンロードさせるようにすると、画面表示に影響は出ない。 not found (86.jpg)
https://w.atwiki.jp/taxfaq/pages/5.html
売掛金一覧表テンプレートファイル 売掛金管理用のExcelファイルを作成しました。 「使い方」シート見ても使い方わからなかったら聞いてください。 Excel2000で作成しています。2000以上のバージョンで問題なく開けると思いますが、 不具合があれば教えて下さい。 売掛金一覧テンプレート(Excel)
https://w.atwiki.jp/monkocho_0514/pages/17.html
ショートカット セルの書式設定:CTRL+1 置換:CTRL+H 複数セルへ一括入力:CTRL+ENTER 1つ上のセルを複写:CTRL+D 1つ左のセルを複写:CTRL+R 数式の絶対参照を設定:F4 印刷プレビュー:CTRL+F2 シート追加:SHIFT+F11 オートサム:ALT+SHIFT+= アクティブ列全体を選択:CTRL+SPACE アクティブ行全体を選択:SHIFT+SPACE セル、列、行の削除:CTRL + -(マイナス) セル、列、行の挿入:SHIFT + CTRL+ +(プラス) データが連続しているセル選択:SHIFT+CTRL+矢印キー 数式が参照しているセルを確認:F2 設定 自動保存 [ファイル]→[オプション]→[保存] →[ブックの保存]で[次の間隔で自動回復用データを保存する]にチェック →保存間隔を1分に設定) 自動でハイパーリンクにならないようにする [ファイル]→[オプション]→[文書校正]-[オートコレクトのオプション] →[入力フォーマット]タブから[インターネットとネットワークのアドレスをハイパーリンクに変更する]からチェックを外す 関数 掛け算:PRODUCT(範囲) セルの値の結合: 例) =A1 B1 CONCATENATE(xx,xx,…) 空白以外のセルを数える: COUNTA(範囲) 数値列のセルを数える: COUNT(範囲) 条件指定で合計 SUMIF(集計の基準となる範囲,第1引数で指定した範囲で合計したい行の条件,合計したい範囲) 条件指定で件数 COUNTIF(数える範囲,第1引数で指定した範囲で数える条件) VLOOKUP
https://w.atwiki.jp/endomutsumi/pages/18.html
AccessでExcelシートをリンク 1.手動で実行 Access2003以前とAccess2007では手順が違うので注意。 【Access2003】 ファイル→外部データの取り込み→テーブルのリンク ファイルの種類でMicrosoft Excel(*.xls)を選択する。 【Access2007】 1.外部データ→Excel 2.Excelファイルを指定し、リンクテーブルを作成してソースデータにリンクするを選択して「OK」 3.あとは、ウィザードの指示に従う。 2.VBAでコード組む場合 すでにExcelシートがリンクされているかどうかの存在チェックをTable_chk()でチェックし、存在すれば、リンク情報を更新し、なければ新たにリンク接続を作成する。 Accessバージョン:2003 【VBAコード例】 Sub sdb_xls_link() Dim MyDb As Database Dim ExcelSheet As TableDef Dim xlsfile As String Set MyDb = CurrentDb xlsfile = GetFileName ←「ファイルを開く」ダイアログで指定(Accessで「ファイルを開く」ダイアログを使用を参照) If xlsfile = "" Then Exit Sub End If If Table_chk("Excelシート名") = False Then ←存在チェックをする Set ExcelSheet = MyDb.CreateTableDef("Excelシート名") ExcelSheet.SourceTableName = "Excelシート名$" ExcelSheet.Connect = "Excel 5.0;HDR=NO;IMEX=2;DATABASE=" xlsfile ";TABLE=Excelシート名$" MyDb.TableDefs.Append ExcelSheet Else Set ExcelSheet = MyDb.TableDefs("Excelシート名") ExcelSheet.Connect = "Excel 5.0;HDR=NO;IMEX=2;DATABASE=" xlsfile ";TABLE=Excelシート名$" ExcelSheet.RefreshLink End If Set ExcelSheet= Nothing MyDb.Close Set MyDb = Nothing End Sub Function Table_chk(strTable As String) As Boolean Dim tdf As TableDef Table_chk = False For Each tdf In CurrentDb.TableDefs If strTable = tdf.name Then Table_chk = True Exit For End If Next End Function お名前 コメント
https://w.atwiki.jp/acil/pages/41.html
進捗管理表のフォーマットサンプル ガントチャート-free 開発マイルストーン インサート文生成マクロExcelのシートに記述したデータを、SQLのInsert文に変換するマクロ ■使用例 以下の要領でシートにデータを記述します。 1行目に列名 2行目に列の型 3行目以降は列の値 最後の次の行の1列目のセルに、エンドマーク『#END』 上記の要領で書き上げたシートが下図です。(クリックで拡大) ExcelからSQLのINSERT文を作成するマクロ Option Explicit Sub createInsertSql() Dim newbook As Workbook Dim currentCell As Range 前処理 Dim srcSheet As Worksheet Set srcSheet = ActiveSheet Dim targetRange As Range Set targetRange = srcSheet.UsedRange INSERT文の前半 Dim head As String head = "INSERT INTO " srcSheet.Name " (" Dim first As Boolean first = True Dim currentColumnIndex As Integer For currentColumnIndex = 1 To targetRange.Columns.Count If (first) Then first = False Else head = head "," End If Set currentCell = srcSheet.Cells(1, currentColumnIndex) head = head currentCell.Value Next head = head ") " 新しいBook作成 Set newbook = Workbooks.Add INSERT文のvalues以降 Dim currentRowIndex As Integer For currentRowIndex = 2 To targetRange.Rows.Count Dim sql As String sql = head "values (" first = True For currentColumnIndex = 1 To targetRange.Columns.Count If (first) Then first = False Else sql = sql "," End If Set currentCell = srcSheet.Cells(currentRowIndex, currentColumnIndex) If IsNull(currentCell) Or Trim(currentCell.Value) = "" Then sql = sql "null" ElseIf IsNumeric(currentCell.Value) Then sql = sql currentCell.Value Else sql = sql " " currentCell.Value " " End If Next sql = sql ");" newbook.ActiveSheet.Cells(currentRowIndex - 1, 1).Value = sql Next End Sub EOF
https://w.atwiki.jp/ohden/pages/395.html
Excel Excel 2007 Excel 2010 Excel for Office365 ※主にExcel for Office365を利用。 ~tools~ RelaxTools Application/Excel/tools/ ~tips~ Excel関数だけでフルパスからファイル名を取り出す Excelで日付を扱いたい Excelで時間を扱いたい オートシェイプの中の文字を検索したい 相対指定で任意のセルの値を取得したい 当該シートのシート名を取得したい VLOOKUPで正しい値を入力してもN/Aが表示される Wordの表をExcelにcopyしたい xls fileを開くだけで構成管理上で差分が発生する シート名一覧の取得 シーケンシャルな値(ID)を自動で採番したい 複数条件分岐の書き方 コンテキストメニューが出ない ※未解決 Application/Excel/tips/ ~memo~ 日付フォーマットで曜日を漢字で出力したい 元日付 書式 変換後 2011/11/11 yyyy"年"mm"月"dd"日("aaa")" 2011年11月11日(金) 更新日: 2021年10月13日 (水) 10時54分34秒 Excel-DNAとCSを使ってExcelの機能を追加できる Excel-DNAを使って関数を作る Excel-DNAを使ってC-Sharpで関数を作る Excel-DNAを使ってC-Sharpで作った関数をDLL化する -- (s1n) 2018-08-23 09 31 03 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/yatteyoruby/pages/24.html
概要 rubyからWindowsのCOMを叩くとExcelのデータの中身を操作・閲覧できます。 やり方は下記のページなんかに記述されています。 Rubyist Magazine - Win32OLE 活用法 【第 2 回】 Excel excel_lib rubyのWIN32OLEライブラリを用いるとExcelが操作できます。 しかし、ExcelにはWorkbook,Worksheet,Rangeオブジェクトなどがありますが、 rubyのWIN32OLEで扱うオブジェクトはすべてWIN32OLEクラスになってしまいます。 その問題を解決し、Workbook,Worksheet,Rangeオブジェクトを別個のクラスとして扱うためのライブラリがRubyでExcelのexcel_libとなります。 このライブラリを使うと以下の利点があると思います。 要するにWIN32OLEレベルでExcelをさわるよりこのライブラリを使った方が扱いやすいと思います。 Workbook,Worksheet,Rangeオブジェクトを別個のクラスとして扱えるためわかりやすい。 Workbook,Worksheet,Rangeオブジェクトを拡張したい場合、対応するクラスを拡張すればよい。 各クラスは元のオブジェクトを保持しており、実装していないメソッドも実行でき、拡張が容易に行える。 ライセンスもrubyライセンスなので改変・配布が容易に行える。 ライブラリはrubyスクリプト1ファイルなので解析が容易に行える。 my_excel_lib excel_libを自分に使いやすいように変更してmy_excel_libとしました。 使用例 以下を実行すると、すべてのセルの値を出力し、2列目のセルの値が存在する場合testに変えたtest2.xlsを作成します。 -例 require my_excel_lib Excel.run(false) { |excel| book = excel.copy_book("test.xls") book.worksheets.each { |sheet| sheet.used_range.rows.each { |row| puts row.value.join(",") if row[1] row[1] = "test" end } book.save("test2.xls") } }
https://w.atwiki.jp/kojintekinawiki/pages/26.html
EXCEL豆知識 EXCELで共有設定にしていると、他人の「表示しない」「再表示する」操作は反映されない。 最初からの罫線(薄いやつ)の表示の仕方/消し方 ページレイアウト>枠線>表示(チェックを外す) または 該当箇所を指定>右クリック>セルの書式設定>塗りつぶし>背景色(色なし)>OK 行の高さがめちゃめちゃになる現象の治し方 [Excelのオプション]>[詳細設定] > [挿入したオブジェクトをセルと共に切り取り、コピー、並べ替えを行う]にチェック。 フッターに章番号入れる方法。 ページ番号挿入。←でうまくいかない場合 挿入>参照>相互参照で入れる。あと整形。 フッターに各種情報挿入 [パス] [ファイル名] [シート名] [日付] [時刻] [ [ページ番号] / [総ページ数]] 日付表示を文字列整形する 日付⇒文字列 =IF(ISNUMBER($C$20),TEXT($C$20,"YYYYMMDD"),"YYYYMMDD") 文字列⇒日付 =IF(ISNUMBER($C$20),DATEVALUE(TEXT($C$20,"0000!/00!/00")),"YYYYMMDD") シート名をセルに =RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))) ミリ秒の書式 yyyy/mm/dd hh mm ss.000 最後に登場する「\」より手前の文字列を取得する =LEFT(A1, FIND("*", SUBSTITUTE(A1, "\", "*", LEN(A1) - LEN(SUBSTITUTE(A1, "\", ""))), 1) - 1) 最後に登場する「\」から先の文字列を取得する 空白考慮なし =RIGHT(A1, LEN(A1) - FIND("*", SUBSTITUTE(A1, "\", "*", LEN(A1) - LEN(SUBSTITUTE(A1, "\", ""))))) 空白考慮あり =IF(F3="","",RIGHT(F3, LEN(F3) - FIND("*", SUBSTITUTE(F3, "\", "*", LEN(F3) - LEN(SUBSTITUTE(F3, "\", "")))))) 新規のブックのシート数を変更する。 ファイル>オプション>基本設定>新しいブックの作成時>ブックのシート数 アニメーションを無効化する ファイル>オプション>簡単操作>操作の結果のオプション>□操作をアニメーションで表示する 更新日時 2018年12月23日 (日) 15時57分28秒 ここを編集
https://w.atwiki.jp/papi601106/pages/29.html
+目次はこちら グラフが表示通りに印刷されない グラフが表示通りに印刷されない 2012.01.31 グラフの凡例などが印刷されなくなるという現象が発生したので調べたらMSで発見。 2011 年 10 月以降に公開された Excel 2007 の更新プログラムを適用すると表示通りに印刷できない 良かれと思いあてた更新プログラムのせいでした・・・ 該当の更新プログラムのアンインストールでOKとのこと。 ちなみにこちらのKBです。 KB2596535 KB2596539 KB2596545 KB2596596 KB2596991 KB2597045